backupchecks/docs/manifest.md

2.2 KiB
Raw Permalink Blame History

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.