# Backupchecks repository manifest This document describes the main directories and important files in the Backupchecks repository. ## Top-level - `containers/backupchecks/` Docker build context for the application image. Everything under this directory is copied into the image. - `docs/` Documentation that is not baked into the image (design notes, migration policy, etc.). - `deploy/` Portainer stack files and deployment notes. These files are NOT copied into the image. ## containers/backupchecks - `Dockerfile` Builds the Backupchecks application image. - Installs Python dependencies from `requirements.txt`. - Copies the `src/` tree into `/app/src`. - Starts the app using Gunicorn and the `create_app()` factory. - `requirements.txt` Python dependencies for the application. - `src/backend/app/` Backend application package. - `__init__.py` Application factory (`create_app()`), database initialization and migrations bootstrap. - `config.py` Reads configuration from environment variables (database connection, app env, timezone). - `database.py` SQLAlchemy database instance (`db`). - `models.py` ORM models, including: - `User` – login user with `username`, optional `email`, `password_hash`, `role`. - `SystemSettings` – persisted configuration for Graph, folders and import behaviour. - `auth/` Authentication and authorization: - `__init__.py` – login manager setup. - `routes.py` – login, logout, initial admin setup, password reset placeholder. - `main/` Main UI and navigation: - `routes.py` – dashboard, Inbox, Customers, Jobs, Daily Jobs, Overrides, Reports, Settings, Logging. - `migrations.py` In-image SQL migrations. See `docs/migrations.md` for details. - `src/templates/` Jinja2 templates used by the Flask application. - `layout/base.html` Base layout, navbar, flash messages. - `auth/*.html` Authentication templates (login, initial admin setup, password reset request). - `main/*.html` Page templates for dashboard, Inbox, Customers, Jobs, Daily Jobs, Overrides, Reports, Settings, Logging. - `src/static/` Static assets (CSS, JS, images). Currently minimal, can grow as the UI is developed.