Coolify Installation: Anwendungs-Deployment mit Self-Hosted PaaS
Coolify-Installation: Docker- und Git-Integration, Deployment, Datenbanken, SSL und Umgebungsvariablen als selbst gehostete Heroku/Netlify-Alternative.
Portainer CE installieren: Docker- und Kubernetes-Verwaltung, Stack-Deployment, Volumes und Netzwerke, Benutzerrechte und GitOps-Integration.
Portainer ist eine Open-Source Container-Management-Plattform, mit der Sie Docker- und Kubernetes-Umgebungen über einen Webbrowser verwalten können. Ohne Kommandozeilenkenntnisse können Sie Container starten, stoppen, Logs anzeigen und Stacks deployen.
Portainer Community Edition (CE) ist kostenlos und Open-Source. Hauptmerkmale:
# Volume zum Speichern von Portainer-Daten erstellen
docker volume create portainer_data
docker run -d \
--name portainer \
--restart=always \
-p 8000:8000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Nach der Installation:
https://SERVER_IP:9443
Beim ersten Login müssen Sie ein Admin-Passwort festlegen. Wenn Sie sich nicht innerhalb von 5 Minuten anmelden, muss Portainer aus Sicherheitsgründen neu gestartet werden.
# portainer-compose.yml
version: '3.8'
services:
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "8000:8000"
- "9443:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
security_opt:
- no-new-privileges:true
volumes:
portainer_data:
docker compose -f portainer-compose.yml up -d
Portainer kommuniziert mit dem Docker-Daemon über /var/run/docker.sock. Der Zugriff auf diesen Socket bietet vollständige Kontrolle über Docker:
# Socket-Berechtigungen prüfen
ls -la /var/run/docker.sock
# Benutzer zur Docker-Gruppe hinzufügen (falls erforderlich)
usermod -aG docker $USER
Der Zugriff auf den Docker-Socket entspricht Root-Rechten. Führen Sie Portainer in vertrauenswürdigen Netzwerken aus und verwenden Sie ein starkes Passwort.
# Beispiel: WordPress Stack
version: '3.8'
services:
wordpress:
image: wordpress:latest
restart: always
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: ${DB_USER}
WORDPRESS_DB_PASSWORD: ${DB_PASSWORD}
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
depends_on:
- db
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: wordpress
MYSQL_USER: ${DB_USER}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
volumes:
- db_data:/var/lib/mysql
volumes:
wordpress_data:
db_data:
https://github.com/user/repo# In der Portainer-Oberfläche:
# Containers → Container auswählen → Actions:
# - Start / Stop / Restart / Kill / Pause
# - Logs (Echtzeit)
# - Console (Web-Terminal)
# - Inspect (JSON-Details)
# - Stats (CPU, RAM, Netzwerknutzung)
# Containers → Auf Container-Namen klicken
# Console-Tab → Connect
# Shell auswählen: /bin/bash oder /bin/sh
# Settings → Teams → Add Team
# Team-Name: developers
# Mitglieder hinzufügen: benutzer1, benutzer2
# Webhook für Stack oder Service erstellen:
# Stack → Stack-Name → Webhooks
# Webhook-URL kopieren
# Verwendung in GitHub Actions:
curl -X POST https://portainer.example.com/api/webhooks/WEBHOOK_TOKEN
# Edge Agent auf Remote-Server installieren:
docker run -d \
--name portainer_edge_agent \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
-v /:/host \
-v portainer_agent_data:/data \
-e EDGE=1 \
-e EDGE_ID=IHRE_EDGE_ID \
-e EDGE_KEY=IHR_EDGE_KEY \
-e EDGE_INSECURE_POLL=1 \
portainer/agent:latest
# Aktuellen Container stoppen und entfernen
docker stop portainer
docker rm portainer
# Neuestes Image herunterladen
docker pull portainer/portainer-ce:latest
# Neu starten (Daten bleiben im Volume erhalten)
docker run -d \
--name portainer \
--restart=always \
-p 8000:8000 \
-p 9443:9443 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Durch die Installation von Portainer auf REXE-Servern können Sie alle Ihre Docker-Container über eine einzige Weboberfläche verwalten. Besonders praktisch für Server, auf denen mehrere Dienste laufen.
Öffnen Sie Port 9443 in der Server-Firewall: 'ufw allow 9443/tcp'. Überprüfen Sie, ob der Container läuft mit 'docker ps | grep portainer'. Wenn Sie HTTP verwenden möchten, öffnen Sie auch Port 9000 und fügen Sie den Parameter '-p 9000:9000' hinzu.
Stoppen Sie den Portainer-Container. Setzen Sie das Passwort zurück mit 'docker run --rm -v portainer_data:/data portainer/helper-reset-password'. Das neue temporäre Passwort wird auf dem Bildschirm angezeigt. Starten Sie Portainer neu, melden Sie sich mit dem temporären Passwort an und legen Sie ein neues Passwort fest.
Überprüfen Sie die Docker-Socket-Berechtigungen: 'ls -la /var/run/docker.sock'. Stellen Sie sicher, dass der Portainer-Container Zugriff auf den Socket hat. Wenn SELinux oder AppArmor aktiv ist, fügen Sie das ':z' oder ':Z'-Flag für den Socket-Mount hinzu.
Stellen Sie sicher, dass der Log-Treiber des Containers 'json-file' oder 'local' ist. Überprüfen Sie mit 'docker inspect CONTAINER_ID | grep LogConfig'. Wenn der 'none' Log-Treiber verwendet wird, können Logs nicht angezeigt werden. Geben Sie den Logging-Treiber explizit in docker-compose.yml an.
Fügen Sie neue Umgebungen über das Environments-Menü hinzu. Wählen Sie 'Local' für Docker auf demselben Server. Für Remote-Server wählen Sie 'Docker Standalone' oder 'Docker Swarm' und geben Sie den TCP-Endpunkt ein (Port 2375/2376). Verwenden Sie TLS-Zertifikate für sichere Verbindungen. Mit Edge Agent können Sie auch Server hinter Firewalls verbinden.
Ja, Portainer CE bietet Kubernetes-Unterstützung. Fügen Sie Ihre Umgebung über Environments → Add Environment → Kubernetes hinzu, indem Sie Ihre kubeconfig-Datei hochladen oder einen Agent installieren. Sie können Namespaces, Deployments, Services, Ingresses und Pods über die Weboberfläche verwalten.
Coolify-Installation: Docker- und Git-Integration, Deployment, Datenbanken, SSL und Umgebungsvariablen als selbst gehostete Heroku/Netlify-Alternative.
Nextcloud-Installation mit Docker, Nginx-Konfiguration, Datenbankeinrichtung, SSL-Zertifikat, Dateisynchronisierung, App-Store und Leistungsoptimierung.
Uptime Kuma mit Docker installieren: HTTP/TCP/DNS/Ping-Monitoring, Benachrichtigungen über Telegram, Discord und E-Mail, Status-Pages und Alarme.