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.
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
Deswegen sollten wir
172.0.0.1/16
Docker kann ggf. ein anderes Subnetz nutzen.
Plesk:
Addo > Proxyregeln für docker > hinzufügen 8000:8000
auth.deine-domain.de
)80
(HTTP, für Let’s Encrypt)443
(HTTPS)8000
(optional, lokal für Docker-Container)
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
mkdir -p /opt/casdoor
cd /opt/casdoor
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).
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo apt install -y certbot python3-certbot-nginx
Stelle sicher, dass auth.deine-domain.de
auf die IP deines Servers zeigt.
sudo certbot --nginx -d auth.deine-domain.de
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
Gehe zu:
https://auth.deine-domain.de
Logge dich ein mit:
Benutzername: admin
Passwort: 123