Skip to content
Diese Seite wurde mit KI-Unterstützung erstellt und übersetzt. Falls Ihnen Ungenauigkeiten auffallen, helfen Sie gerne bei der Verbesserung. Auf GitHub bearbeiten

Installation ​

OpenPR unterstützt drei Installationsmethoden. Docker Compose ist der schnellste Weg zu einer vollständig funktionsfähigen Instanz.

Empfohlen

Docker Compose startet alle Dienste (API, Frontend, Worker, MCP-Server, PostgreSQL) mit einem einzigen Befehl. Keine Rust-Toolchain oder Node.js erforderlich.

Voraussetzungen ​

AnforderungMinimumHinweise
Docker20.10+Oder Podman 3.0+ mit podman-compose
Docker Compose2.0+In Docker Desktop enthalten
Rust (Quellcode-Build)1.75.0Nicht für Docker-Installation benötigt
Node.js (Quellcode-Build)20+Für das Erstellen des SvelteKit-Frontends
PostgreSQL (Quellcode-Build)15+Docker-Methode enthält PostgreSQL
Festplattenspeicher500 MBImages + Datenbank
RAM1 GB2 GB+ empfohlen für Produktion

Methode 1: Docker Compose (Empfohlen) ​

Repository klonen und alle Dienste starten:

bash
git clone https://github.com/openprx/openpr.git
cd openpr
cp .env.example .env
docker-compose up -d

Dies startet fünf Dienste:

DienstContainerPortBeschreibung
PostgreSQLopenpr-postgres5432Datenbank mit automatischer Migration
APIopenpr-api8081 (mapped zu 8080)REST-API-Server
Workeropenpr-worker--Hintergrundaufgaben-Prozessor
MCP-Serveropenpr-mcp-server8090MCP-Tool-Server
Frontendopenpr-frontend3000SvelteKit Web-UI

Verifizieren, dass alle Dienste laufen:

bash
docker-compose ps

Erster Benutzer

Der erste registrierte Benutzer wird automatisch zum Admin. Das Admin-Konto registrieren, bevor die URL mit anderen geteilt wird.

Umgebungsvariablen ​

.env bearbeiten, um die Bereitstellung anzupassen:

bash
# Datenbank
DATABASE_URL=postgres://openpr:openpr@localhost:5432/openpr
POSTGRES_DB=openpr
POSTGRES_USER=openpr
POSTGRES_PASSWORD=openpr

# JWT (in Produktion ändern!)
JWT_SECRET=change-me-in-production
JWT_ACCESS_TTL_SECONDS=2592000
JWT_REFRESH_TTL_SECONDS=604800

# Frontend
VITE_API_URL=http://localhost:8080

# MCP-Server
MCP_SERVER_PORT=8090

Sicherheit

JWT_SECRET und Datenbankpasswörter immer vor der Bereitstellung in der Produktion ändern. Starke, zufällige Werte verwenden.

Methode 2: Podman ​

OpenPR funktioniert mit Podman als Docker-Alternative. Der wesentliche Unterschied besteht darin, dass Podman --network=host für Builds aufgrund der DNS-Auflösung benötigt:

bash
git clone https://github.com/openprx/openpr.git
cd openpr
cp .env.example .env

# Images mit Netzwerkzugang erstellen
sudo podman build --network=host --build-arg APP_BIN=api -f Dockerfile.prebuilt -t openpr_api .
sudo podman build --network=host --build-arg APP_BIN=worker -f Dockerfile.prebuilt -t openpr_worker .
sudo podman build --network=host --build-arg APP_BIN=mcp-server -f Dockerfile.prebuilt -t openpr_mcp-server .
sudo podman build --network=host -f frontend/Dockerfile -t openpr_frontend frontend/

# Dienste starten
sudo podman-compose up -d

Podman DNS

Der Frontend-Nginx-Container verwendet 10.89.0.1 als DNS-Resolver (Podmans Standard-Netzwerk-DNS), nicht 127.0.0.11 (Dockers Standard). Dies ist bereits in der enthaltenen Nginx-Konfiguration eingestellt.

Methode 3: Aus dem Quellcode erstellen ​

Backend ​

bash
# Voraussetzungen: Rust 1.75+, PostgreSQL 15+
git clone https://github.com/openprx/openpr.git
cd openpr

# Konfigurieren
cp .env.example .env
# .env mit der PostgreSQL-Verbindungszeichenfolge bearbeiten

# Alle Binärdateien erstellen
cargo build --release -p api -p worker -p mcp-server

Die Binärdateien befinden sich unter:

  • target/release/api -- REST-API-Server
  • target/release/worker -- Hintergrundworker
  • target/release/mcp-server -- MCP-Tool-Server

Frontend ​

bash
cd frontend
npm install    # oder: bun install
npm run build  # oder: bun run build

Die Build-Ausgabe befindet sich in frontend/build/. Mit Nginx oder einem beliebigen statischen Dateiserver bereitstellen.

Datenbank einrichten ​

Datenbank erstellen und Migrationen ausführen:

bash
# Datenbank erstellen
createdb -U postgres openpr

# Migrationen laufen automatisch beim ersten API-Start
# Oder manuell anwenden:
psql -U openpr -d openpr -f migrations/0001_initial.sql
# ... verbleibende Migrationen der Reihe nach anwenden

Dienste starten ​

bash
# Terminal 1: API-Server
./target/release/api

# Terminal 2: Worker
./target/release/worker

# Terminal 3: MCP-Server
./target/release/mcp-server --transport http --bind-addr 0.0.0.0:8090

Installation verifizieren ​

Sobald alle Dienste laufen, jeden Endpunkt verifizieren:

bash
# API-Health-Check
curl http://localhost:8080/health

# MCP-Server-Health
curl http://localhost:8090/health

# Frontend
curl -s http://localhost:3000 | head -5

http://localhost:3000 im Browser öffnen, um auf die Web-UI zuzugreifen.

Deinstallation ​

Docker Compose ​

bash
cd openpr
docker-compose down -v  # -v entfernt Volumes (Datenbankdaten)
docker rmi $(docker images 'openpr*' -q)

Quellcode-Build ​

bash
# Laufende Dienste stoppen (Strg+C in jedem Terminal)
# Binärdateien entfernen
rm -f target/release/api target/release/worker target/release/mcp-server

# Datenbank löschen (optional)
dropdb -U postgres openpr

Nächste Schritte ​

Released under the Apache-2.0 License.