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
| Variable | Beschreibung |
|---|---|
| DATABASE_URL | PostgreSQL Connection String |
| EMAIL_PROVIDER | smtp, plunk, oder console |
| SMTP_HOST | SMTP-Server (nur bei EMAIL_PROVIDER=smtp) |
| SMTP_PORT | SMTP-Port (Standard: 587) |
| SMTP_USER | SMTP-Benutzername |
| SMTP_PASS | SMTP-Passwort |
| SMTP_FROM | Absender-Adresse |
| MAGIC_LINK_BASE_URL | Basis-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.