Logo Gray

Casdoor im Docker installieren

Hier ist eine Anleitung zur Installation des Casdoor IAM Sytsems mit Docker. Eine Installation ohne Docker kann ich nicht empfehlen, da es viele Abhängigkeiten gibt die aufeinander abgestimmt werden müssen. 

Option A: Stable (Plesk) Docker-Compose mit external DB

1. Dateien Anlegen

Erstelle: docker-compose.yaml

				
					version: "3.8"

services:
  casdoor:
    image: casbin/casdoor:latest
    container_name: casdoor
    ports:
      - "8000:8000"  # Casdoor wird über diesen Port erreichbar sein
    volumes:
      - ./conf/app.conf:/conf/app.conf
    environment:
      - RUNNING_IN_DOCKER=true
    extra_hosts:
      - "host.docker.internal:host-gateway"

				
			

Erstelle: /conf/app.conf

				
					appname = casdoor
httpport = 8000
runmode = prod

# Session und CORS
SessionOn = true
copyrequestbody = true
origin = "https://auth.example.com" # Ersetze durch deine tatsächliche Domain

# Datenbank
driverName = mysql
dataSourceName = DB_USERn:DB_PW@tcp(host.docker.internal:3306)/
dbName = DB_NAME

#Passe die DB daten an


# Log- und Debug-Einstellungen
showSql = true
logPostOnly = true

# Weitere Einstellungen
verificationCodeTimeout = 10
staticBaseUrl = "https://cdn.casbin.org"
enableGzip = true
				
			

3. 💾 DB-Anlegen und Remote Verbindungen für Docker Freigeben

 Deswegen sollten wir

				
					172.0.0.1/16
				
			

Docker kann ggf. ein anderes Subnetz nutzen. 

Plesk: 

  • abbo > db > benutzer
  • Tool & Einstellungen > Datenbankserver > Haken setzen

4. Proxyregeln

Addo > Proxyregeln für docker > hinzufügen 8000:8000

🔧 Voraussetzungen

  1. Debian 12 Server mit Root-Zugriff
  2. Domain/Subdomain (z. B. auth.deine-domain.de)
  3. Ports geöffnet in der Firewall:
    • 80 (HTTP, für Let’s Encrypt)
    • 443 (HTTPS)
    • 8000 (optional, lokal für Docker-Container)

1. 🐳 Docker & Docker Compose installieren

				
					sudo apt update && sudo apt upgrade -y
				
			

# Docker installieren

				
					sudo apt install -y ca-certificates curl gnupg lsb-release

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
				
			

# Docker-Status prüfen

				
					sudo systemctl status docker
				
			

2. 📁 Projektstruktur anlegen

				
					mkdir -p /opt/casdoor
cd /opt/casdoor
				
			

3. 🐳 Casdoor Container starten (nur intern erreichbar)

				
					docker run -d \
--name casdoor \
-p 127.0.0.1:8000:8000 \
casbin/casdoor-all-in-one
				
			

Casdoor läuft nun unter http://localhost:8000  (nur lokal erreichbar).

4. 🔐 Nginx + Let’s Encrypt Setup

4.1 Nginx installieren

				
					sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
				
			

4.2 Nginx Konfiguration für SSL

				
					sudo apt install -y certbot python3-certbot-nginx
				
			

5. 🌐 Domain einrichten & Zertifikat holen

Stelle sicher, dass auth.deine-domain.de auf die IP deines Servers zeigt.

				
					sudo certbot --nginx -d auth.deine-domain.de

				
			

6. ⚙️ Nginx Reverse Proxy konfigurieren

				
					sudo nano /etc/nginx/sites-available/casdoor
				
			
				
					server {
listen 80;
server_name auth.deine-domain.de;
return 301 https://$host$request_uri;
}

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

ssl_certificate /etc/letsencrypt/live/auth.deine-domain.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/auth.deine-domain.de/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;

location / {
proxy_pass http://127.0.0.1:8000;
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;
}
}
				
			

Dann aktivieren:

				
					sudo ln -s /etc/nginx/sites-available/casdoor /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
				
			

7. Casdoor aufrufen

Gehe zu:

https://auth.deine-domain.de

Logge dich ein mit:

Benutzername: admin
Passwort: 123