Skip to content

build: repository scaffold for Phase 1 - #12

Merged
jalmena merged 8 commits into
developfrom
feature/scaffold
Sep 23, 2026
Merged

jalmena merged 8 commits into
developfrom
feature/scaffold

Conversation

@jalmena

@jalmena jalmena commented Sep 23, 2026

Copy link
Copy Markdown
Owner

Phase 1 foundation:

  • Backend: FastAPI factory, settings, structured logging, SQLite/PostgreSQL engine, /healthz, host allowlist, security headers, static serving with placeholder, Alembic environment, tests.
  • Frontend: Vite + React 19 + TypeScript, design tokens (brand palette, Epilogue self-hosted), EN/ES translations, PWA manifest with the identity icons, lint/format/test configuration.
  • Deploy: multi-stage image (219 MB locally), setpriv entrypoint with PUID/PGID, compose with CasaOS metadata on host port 8455.
  • CI: commit lint, backend on both engines, frontend, image smoke tests, security audits; commitizen, pre-commit, Renovate.
  • Docs: development guide and justfile.

Verified locally: ruff, mypy, pytest; tsc, eslint, stylelint, prettier, vitest, build; podman image build and smoke tests (health, index 200, 421 for unknown hosts, uid 1000, PUID 1500).

…urity middleware

FastAPI application factory, environment-driven settings (SQLite by default, PostgreSQL through NEVUS_DATABASE_URL), structured logging, engine with SQLite pragmas, /healthz, host allowlist against DNS rebinding, security headers, static serving of the built interface with a placeholder, Alembic environment for both engines, and tests.

Signed-off-by: Jose David <josedalmena@gmail.com>
…e web app manifest

Vite, React 19 and TypeScript in strict mode; design tokens from the brief with Epilogue self-hosted; the brand block on the dark paper; English and Spanish catalogues with a persistent language choice; PWA manifest with the identity icons; eslint, stylelint (no raw colours outside the tokens), prettier and vitest.

Signed-off-by: Jose David <josedalmena@gmail.com>
…e metadata

Multi-stage image (Node builds the interface, uv installs the backend) on Debian slim, non-root with PUID/PGID through setpriv, health check, one data volume; compose file with the CasaOS metadata on host port 8455 (free in the official and BigBear stores).

Signed-off-by: Jose David <josedalmena@gmail.com>
Conventional-commit check on pull requests; backend lint, types, tests and migrations on SQLite and PostgreSQL; frontend type check, lint, format, tests and build; container image build with size budget, health, index, user and PUID checks; secret and dependency audits. Commitizen, pre-commit and Renovate configuration.

Signed-off-by: Jose David <josedalmena@gmail.com>
Prerequisites, layout, everyday commands, configuration, tests, conventions and migrations.

Signed-off-by: Jose David <josedalmena@gmail.com>
The suite also runs with NEVUS_DATABASE_URL set to PostgreSQL; the default test now clears it.

Signed-off-by: Jose David <josedalmena@gmail.com>
pip-audit resolves on its own interpreter; per-wheel hashes from the export do not match there.

Signed-off-by: Jose David <josedalmena@gmail.com>
Signed-off-by: Jose David <josedalmena@gmail.com>
@jalmena
jalmena merged commit 610790a into develop Sep 23, 2026
5 checks passed
@jalmena
jalmena deleted the feature/scaffold branch September 23, 2026 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant