Zum Inhalt springen

Wie installiere ich Notory (self-hosted)?

Notory läuft als Container-Stack (Backend + Web/Reverse-Proxy + Datenbank). Empfohlen wird PostgreSQL oder MariaDB; SQLite dient nur zum Ausprobieren ohne separate Datenbank. Du hinterlegst die Konfiguration in einer .env, startest den Stack mit Docker Compose, führst die Datenbank-Migrationen aus und legst beim ersten Aufruf den ersten Mandanten und Administrator an. Ohne gültige Lizenz läuft die Installation im Nur-Lese-Modus: Daten bleiben sichtbar, aber Änderungen sind gesperrt, bis eine gültige Lizenz (mindestens Starter) eingespielt wird.

  • Docker + Docker Compose
  • Eine Datenbank: PostgreSQL 16+ oder MariaDB 11.x (als Container oder extern)
  • Optional, aber für Produktion empfohlen: Reverse-Proxy (nginx/Traefik) mit TLS-Zertifikat
  1. Umgebungsvariablen (.env) anlegen. Datenbank-Verbindung, ein langer zufälliger SECRET_KEY und optional der Lizenzschlüssel:

    .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 gültige Lizenz nur Lese-Modus, keine Änderungen)
    LICENSE_KEY=
    # Der öffentliche Verifizierungsschlüssel ist im Produkt gebündelt;
    # alternativ eigener Pfad:
    # LICENSE_PUBLIC_KEY_PATH=/keys/license_public.pem
  2. docker-compose.yml erstellen.

    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:
  3. Starten & Migrationen ausführen.

    Terminal-Fenster
    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.

  4. Ersten Mandanten und Admin anlegen. Beim ersten Aufruf führt dich Notory durch das Anlegen des ersten Mandanten und eines Administrator-Kontos. Danach kannst du dich anmelden.

  5. TLS / Reverse-Proxy einrichten (Produktion). Setze für den Produktivbetrieb einen Reverse-Proxy mit Zertifikat (z. B. Let’s Encrypt) vor und leite HTTPS auf den web-Dienst (Port 8080).

  6. Lizenz einspielen (optional). Trage den LICENSE_KEY in die .env ein und starte den backend-Dienst neu. Details, Instanz-Bindung und Status prüfen: Lizenz einspielen.

  • Nur-Lese-Modus als Fallback. Ohne gültige Lizenz läuft die Installation im Nur-Lese-Modus: Daten bleiben sichtbar, aber Änderungen sind gesperrt, bis eine gültige Lizenz (mindestens Starter) eingespielt wird. Ein später eingespielter Schlüssel schaltet Tarif, Limits und Module frei - Daten bleiben erhalten.
  • Instanz-ID. Beim ersten Start erzeugt Notory eine eindeutige Instanz-ID (sichtbar unter Verwaltung → Lizenz). Sie wird für instanzgebundene Lizenzen benötigt.
  • Migrationen sind wiederholbar. alembic upgrade head bringt das Schema auf den aktuellen Stand; denselben Befehl nutzt du nach jedem Update.