build: repository scaffold for Phase 1 - #12
Merged
Merged
Conversation
…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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Phase 1 foundation:
/healthz, host allowlist, security headers, static serving with placeholder, Alembic environment, tests.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).