Main page. Just simple HTML, CSS and JS.
https://asxp.io
- Ruby 57.4%
- HTML 22.2%
- CSS 10.3%
- JavaScript 7.5%
- Nix 1%
- Other 1.6%
Mounts AdminAuth (HTTP Basic on /admin/*) and adds two route groups: - Admin (/admin/invoices): list, new form, create, show, toggle-paid. POST /admin/invoices builds the Invoice, renders the PDF, uploads to MinIO, then persists the row with the resulting pdf_key. - Public (/i/:uuid): an HTML landing page showing client name, number, total, and status badge, plus /i/:uuid/pdf which 302s to a short-lived MinIO presigned URL. Anyone with the UUID can fetch the PDF — that's the whole point of the link-based delivery. The Invoice model is required only when DATABASE_URL is set, so the contact-form site still boots in dev without Postgres. Invoicing routes return 503 in that mode rather than crashing on first request. |
||
|---|---|---|
| .forgejo/workflows | ||
| db/migrations | ||
| lib | ||
| public | ||
| views | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| asxpio.rb | ||
| CLAUDE.md | ||
| config.ru | ||
| docker-compose.yml | ||
| Dockerfile | ||
| flake.lock | ||
| flake.nix | ||
| Gemfile | ||
| Gemfile.lock | ||