Anleitung

Self-Hosting

FairOrder ist unter AGPL-3.0 lizenziert. Du kannst das System vollständig auf deiner eigenen Infrastruktur betreiben.

Voraussetzungen

  • -Node.js 20+ (empfohlen: 22 LTS)
  • -pnpm 9+
  • -PostgreSQL 14+
  • -Ein Linux-Server mit mindestens 1 GB RAM (z.B. Hetzner, Netcup, DigitalOcean)

1. Repository klonen

git clone https://github.com/RayNCooper/fairorder.git
cd fairorder

2. Umgebungsvariablen

Kopiere die Beispieldatei und passe die Werte an:

cp .env.example .env
VariableBeschreibung
DATABASE_URLPostgreSQL Connection String
EMAIL_PROVIDERsmtp, plunk, oder console
SMTP_HOSTSMTP-Server (nur bei EMAIL_PROVIDER=smtp)
SMTP_PORTSMTP-Port (Standard: 587)
SMTP_USERSMTP-Benutzername
SMTP_PASSSMTP-Passwort
SMTP_FROMAbsender-Adresse
MAGIC_LINK_BASE_URLBasis-URL der App (z.B. https://app.deine-domain.de)

3. Abhängigkeiten installieren

pnpm install

4. Datenbank einrichten

pnpm db:generate    # Prisma Client generieren
pnpm db:push        # Schema auf die Datenbank anwenden

Optional: pnpm db:seed erstellt Demo-Daten zum Testen.

5. Produktions-Build

pnpm build:local    # Next.js Production Build
pnpm start:local    # Server starten (Port 3000)

6. Reverse Proxy (Nginx)

Beispielkonfiguration für Nginx mit SSL:

server {
    listen 443 ssl http2;
    server_name app.deine-domain.de;

    ssl_certificate     /etc/letsencrypt/live/app.deine-domain.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.deine-domain.de/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

7. Process Manager

Verwende pm2 oder systemd, um den Node.js-Prozess am Laufen zu halten:

# Mit pm2
npm install -g pm2
pm2 start pnpm --name fairorder -- start:local
pm2 save
pm2 startup

Updates

So aktualisierst du auf die neueste Version:

git pull origin main
pnpm install
pnpm db:generate
pnpm db:push        # Migriert das Schema
pnpm build:local
pm2 restart fairorder

AGPL-3.0 Lizenz

Wenn du Änderungen am Quellcode vornimmst und das System als Dienst anbietest, musst du den modifizierten Quellcode ebenfalls unter AGPL-3.0 veröffentlichen. Für reine interne Nutzung gelten keine besonderen Auflagen.