No description
Find a file
Christopher Mühl ab92937e95 feat: nix flake with OCI image + Forgejo CI
Add Nix flake build system with automated container image building:

**Nix Flake (flake.nix)**
- Built with flake-parts for modularity
- `solidhaus` package: builds SvelteKit app with buildNpmPackage
- `solidhaus-image` package: OCI image with nginx serving app
- `push-solidhaus-image` app: pushes to registry.toph.so
- Dev shell with Node.js 22

**OCI Image**
- Based on nixpkgs nginx
- Serves SvelteKit build/ as static SPA
- SPA fallback routing configured
- Security headers (X-Frame-Options, X-Content-Type-Options, X-XSS-Protection)
- Gzip compression for text assets
- 1-year cache for immutable static assets

**Forgejo CI (.forgejo/workflows/build-image.yml)**
- Runs on 'nix' runner (uses nix-runner-image)
- Builds OCI image on every push
- Pushes to registry.toph.so on main branch
- Tags with :latest and :${commit-sha}

**Build commands**
- `nix build .#solidhaus` — build app
- `nix build .#solidhaus-image` — build OCI image
- `nix run .#push-solidhaus-image` — push to registry

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-27 00:00:00 +01:00
.claude chore: log request #req_20260226_234700_photo 2026-02-26 23:45:59 +01:00
.forgejo/workflows feat: nix flake with OCI image + Forgejo CI 2026-02-27 00:00:00 +01:00
e2e test: E2E test suite + handoff documentation 2026-02-26 20:53:08 +01:00
src feat: PWA photo capture with IndexedDB storage 2026-02-26 23:44:46 +01:00
static chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
.gitignore chore: add Forgejo PR workflow 2026-02-26 17:10:07 +01:00
ADDENDUM_V2.md chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
bun.lock test: E2E test suite + handoff documentation 2026-02-26 20:53:08 +01:00
capacitor.config.ts chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
CLAUDE.md chore: add Forgejo PR workflow 2026-02-26 17:10:07 +01:00
flake.lock feat: nix flake with OCI image + Forgejo CI 2026-02-27 00:00:00 +01:00
flake.nix feat: nix flake with OCI image + Forgejo CI 2026-02-27 00:00:00 +01:00
HANDOFF.md test: E2E test suite + handoff documentation 2026-02-26 20:53:08 +01:00
package-lock.json feat: PWA photo capture with IndexedDB storage 2026-02-26 23:44:46 +01:00
package.json feat: PWA photo capture with IndexedDB storage 2026-02-26 23:44:46 +01:00
PROJECT_SPECIFICATION.md chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
RESEARCH_SUMMARY.md chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
solidhaus.ttl chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
svelte.config.js chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
tsconfig.json chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
vite.config.ts chore: scaffold SvelteKit project with Capacitor and Tailwind 2026-02-26 14:50:10 +01:00
vitest.config.ts feat: UI components — ItemCard, ItemForm, LocationTree, LocationPicker 2026-02-26 15:36:56 +01:00