Installation (Self-hosted)

Notory läuft als Container-Stack. Empfohlen: PostgreSQL oder MariaDB. SQLite dient nur zum Testen ohne separate Datenbank.

Voraussetzungen

1. Umgebungsvariablen (.env)

# Datenbank (eine Zeile wählen)
DATABASE_URL=postgresql://inv:secret@db:5432/notory
# DATABASE_URL=mariadb://inv:secret@db:3306/notory

# Sicherheit
SECRET_KEY=bitte-langen-zufallswert-setzen

# Lizenz (optional - ohne Key läuft Community, max. 30 Assets)
LICENSE_KEY=
# Öffentlicher Verifizierungsschlüssel ist im Produkt gebündelt;
# alternativ eigener Pfad/Inhalt:
# LICENSE_PUBLIC_KEY_PATH=/keys/license_public.pem

2. docker-compose.yml

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: inv
      POSTGRES_PASSWORD: secret
      POSTGRES_DB: notory
    volumes: [ "dbdata:/var/lib/postgresql/data" ]

  backend:
    image: notory/backend:latest
    env_file: .env
    depends_on: [ db ]

  web:
    image: notory/web:latest
    ports: [ "8080:80" ]   # nginx reverse proxy
    depends_on: [ backend ]

volumes:
  dbdata:

MariaDB statt PostgreSQL: den db-Dienst auf mariadb:11 umstellen und die DATABASE_URL entsprechend setzen.

3. Starten & Migrationen

docker compose up -d
# Datenbank-Schema anlegen/aktualisieren:
docker compose exec backend alembic upgrade head

Anschließend ist die Oberfläche unter http://SERVER:8080 erreichbar. Legen Sie beim ersten Aufruf den ersten Mandanten und Admin an.

4. TLS / Reverse-Proxy

Für Produktion einen Reverse-Proxy mit Zertifikat vorschalten (Let's Encrypt). Leiten Sie HTTPS auf den web-Dienst (Port 8080).

5. Lizenz einspielen

Tragen Sie den LICENSE_KEY in die .env ein und starten Sie den backend-Dienst neu. Status prüfen unter Admin → Lizenz. Siehe Lizenzierung.

Hinweis: Image-Namen/Tags sind Platzhalter - die konkreten Bezugsquellen erhalten Sie mit Ihrer Bestellung. Fragen?