1. Installation & Setup
Willkommen bei MeinCMS (wissen-ahrensburg.de). Dieses Kapitel führt dich Schritt für Schritt durch die Vorbereitung der Systemumgebung, das Klonen, das Kompilieren sowie die initiale Einrichtung der Datenbank und des Administrator-Accounts.
📋 Systemvoraussetzungen
Stelle sicher, dass folgende Softwarekomponenten auf deinem Linux-System installiert sind:
- Rust & Cargo: Version
1.80oder neuer (rustup.rs) - PostgreSQL: Version
14oder neuer - Git: Zum Klonen des Quellcodes
- (Optional) Nginx oder Caddy: Als Reverse Proxy für TLS/HTTPS im Produktionsbetrieb.
1. Repository klonen
Klone das Repository auf deinen Zielserver:
git clone https://github.com/thorstenkloehn/wissen-ahrensburg.de.git
cd wissen-ahrensburg.de
2. PostgreSQL Datenbank einrichten
MeinCMS benötigt eine PostgreSQL-Datenbank. Erstelle eine neue Datenbank und einen Datenbank-Benutzer:
-- In psql (als postgres-User):
CREATE USER meincms WITH PASSWORD 'dein_sicheres_passwort';
CREATE DATABASE meincms OWNER meincms;
GRANT ALL PRIVILEGES ON DATABASE meincms TO meincms;
Setze anschließend die Umgebungsvariable DATABASE_URL:
# Option A: TCP Connection (Entwicklung)
export DATABASE_URL="postgres://meincms:dein_sicheres_passwort@localhost:5432/meincms"
# Option B: Unix Domain Socket (Produktions-Server)
export DATABASE_URL="postgres://meincms:dein_sicheres_passwort@/var/run/postgresql/meincms"
3. Projekt kompilieren (Build)
Der Rust Workspace besteht aus den vier Crates:
meincms_parser: Markdown & MediaWiki Compilermeincms_web: Axum Webbackendmeincms_backup: Backup & Repair CLImeincms_admin: Admin & Benutzer-Verwaltung
Entwicklungs-Build (Debugging)
cargo build
Produktions-Build (Optimiert)
Für maximale Performance kompiliere die Anwendung im Release-Modus:
cargo build --release
Die fertigen Binaries befinden sich anschließend unter target/release/.
4. Admin-Benutzer erstellen
Vor dem ersten Start solltest du deinen Administrator-Account anlegen. Nutze dafür das CLI-Tool meincms_admin:
cargo run -p meincms_admin -- create-user --username admin@wissen-ahrensburg.de
Das CLI-Tool fordert dich auf, ein sicheres Passwort einzugeben. Der Hash wird mittels Argon2id geschützt und in config/users.json gespeichert.
5. Webserver starten
Starte den Axum-Server mit:
# Entwicklungsmodus (TCP Port):
PORT=5000 cargo run -p meincms_web
# Produktionsmodus (Unix Domain Socket):
UNIX_SOCKET="/run/meincms/meincms.sock" ./target/release/meincms_web
Nach dem Start im TCP-Modus ist die Anwendung unter http://localhost:5000 erreichbar.
6. Nginx Reverse Proxy (Produktion)
Um die Anwendung im Produktivbetrieb mit HTTPS / Let's Encrypt über den Unix-Socket abzusichern:
server {
listen 80;
server_name wissen-ahrensburg.de;
location / {
proxy_pass http://unix:/run/meincms/meincms.sock;
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;
}
}
🧪 Installation testen
Führe alle Unittests des Workspaces aus, um die korrekte Installation zu bestätigen:
cargo test --workspace