Zum Hauptinhalt springen
Zurück zur Kategorie

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.

Lesezeit: 15 Min Self-Hosting
coolifypaasself-hostingdeploymentdockergitssl
Autor
REXE Teknoloji Network & Security Team
Redaktion
REXE Teknoloji Technical Editorial
Erstveröffentlichung
Letzte Aktualisierung

Coolify Installation: Anwendungs-Deployment mit Self-Hosted PaaS

Coolify ist eine Open-Source, Self-Hosted Alternative zu Cloud-Plattformen wie Heroku, Netlify und Vercel. Mit Coolify auf Ihrem eigenen Server können Sie Anwendungen, Datenbanken und Dienste einfach verwalten. Diese Docker-basierte Plattform unterstützt automatisches Deployment, wenn Sie Code über Git-Integration pushen.

Was ist Coolify?

Coolify ist eine moderne PaaS-Lösung, mit der Sie mehrere Server und Anwendungen über eine einzige Oberfläche verwalten können. Hauptmerkmale:

  • Automatisches SSL: Kostenlose SSL-Zertifikate über Let's Encrypt
  • Git-Integration: GitHub, GitLab, Bitbucket-Unterstützung
  • Multi-Server: Mehrere Server über ein Panel verwalten
  • Datenbankdienste: PostgreSQL, MySQL, Redis, MongoDB
  • Docker Compose: Bestehende Compose-Dateien direkt deployen
  • Webhooks: Automatische Deployment-Trigger

Systemanforderungen

  • Ubuntu 20.04/22.04 oder Debian 11/12
  • Mindestens 2 GB RAM (4 GB empfohlen)
  • Mindestens 30 GB Festplattenspeicher
  • Docker sollte NICHT installiert sein (Coolify installiert sein eigenes Docker)

Installation

Die Coolify-Installation erfolgt mit einem einzigen curl-Befehl:

hljs bash
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

Das Installationsskript führt automatisch folgende Schritte durch:

  • Installation von Docker und Docker Compose
  • Download und Start der Coolify-Container
  • Konfiguration der erforderlichen Netzwerke und Volumes
  • Firewall-Regeln (Port 8000)

Nach der Installation über den Browser zugreifen:

http://SERVER_IP:8000

Bei der Ersteinrichtung werden Sie aufgefordert, ein Admin-Konto zu erstellen. Legen Sie ein starkes Passwort fest.

Erstkonfiguration

Admin-Konto erstellen

Beim ersten Login E-Mail und Passwort festlegen. Diese Anmeldedaten werden in der Coolify-Datenbank gespeichert.

Server hinzufügen

Coolify fügt den Server, auf dem es installiert ist (localhost), automatisch hinzu. Um weitere Server hinzuzufügen:

  1. Servers → Add Server
  2. SSH-Verbindungsdetails eingeben (IP, Port, Benutzername)
  3. SSH Private Key hinzufügen
  4. Verbindung mit Validate & Save testen
hljs bash
# SSH-Key für Coolify-Verbindung zu Remote-Servern erstellen
ssh-keygen -t ed25519 -C "coolify@myserver"
# Public Key zum Remote-Server hinzufügen
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@remote-server

Git-Quellen hinzufügen

GitHub-Integration

  1. Sources → Add Source → GitHub App
  2. OAuth App oder GitHub App auf GitHub erstellen
  3. Client ID und Client Secret eingeben
  4. Callback URL: http://SERVER_IP:8000/auth/github

GitLab-Integration

hljs bash
# Personal Access Token auf GitLab erstellen
# Erforderliche Scopes: api, read_user, read_repository
  1. Sources → Add Source → GitLab
  2. GitLab URL und Access Token eingeben
  3. Verbindung testen

Anwendungen deployen

Neues Projekt erstellen

  1. Projects → New Project
  2. Projektname und Beschreibung eingeben
  3. Environment auswählen (production, staging usw.)

Anwendung hinzufügen

  1. Im Projekt New Resource → Application
  2. Git-Quelle auswählen
  3. Repository und Branch auswählen
  4. Build Pack auswählen:
    • Nixpacks: Automatische Erkennung (Node.js, Python, PHP, Ruby usw.)
    • Dockerfile: Eigenes Dockerfile verwenden
    • Docker Compose: compose.yml-Datei
    • Static: Statisches HTML/CSS/JS
hljs yaml
# Beispiel: Dockerfile für eine Node.js-Anwendung
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Umgebungsvariablen

Gehen Sie zum Tab Environment Variables in den Anwendungseinstellungen:

hljs bash
# Beispiel-Umgebungsvariablen
NODE_ENV=production
DATABASE_URL=postgresql://user:pass@db:5432/myapp
REDIS_URL=redis://redis:6379
SECRET_KEY=ihr-geheimer-schluessel
PORT=3000

Fügen Sie sensible Informationen (API-Keys, Passwörter) als Umgebungsvariablen hinzu. Schreiben Sie sie niemals in den Quellcode.

Domain- und SSL-Konfiguration

  1. Tab Domains in den Anwendungseinstellungen
  2. Domain-Namen eingeben: app.example.com
  3. SSL-Option aktivieren (Let's Encrypt automatisch)
  4. DNS A-Record erstellen: app.example.com → SERVER_IP
hljs bash
# DNS-Record überprüfen
nslookup app.example.com
dig app.example.com A

Datenbankdienste

PostgreSQL einrichten

  1. New Resource → Database → PostgreSQL
  2. Version auswählen (14, 15, 16)
  3. Benutzername und Passwort festlegen
  4. Auf Deploy klicken
hljs bash
# Coolify PostgreSQL-Verbindungsdetails
# Interne URL (für Apps auf demselben Server):
postgresql://coolify:passwort@postgres:5432/mydb

# Externe URL (für externen Zugriff):
postgresql://coolify:passwort@SERVER_IP:PORT/mydb

Redis einrichten

hljs bash
# New Resource → Database → Redis
# Version: 7.x
# Interne Verbindung:
redis://default:passwort@redis:6379

Datenbank-Backups

Coolify bietet automatische Backup-Funktionalität:

  1. Tab Backups in den Datenbankeinstellungen
  2. Backup-Häufigkeit festlegen (täglich, wöchentlich)
  3. S3-kompatiblen Speicher hinzufügen (AWS S3, MinIO, Cloudflare R2)
hljs bash
# Manuelles Backup
coolify backup create --database postgres-id

# Backups auflisten
coolify backup list

Mit Docker Compose deployen

Sie können bestehende docker-compose.yml-Dateien direkt in Coolify importieren:

hljs yaml
# docker-compose.yml Beispiel
version: '3.8'
services:
  app:
    image: myapp:latest
    environment:
      - NODE_ENV=production
      - DATABASE_URL=${DATABASE_URL}
    ports:
      - "3000:3000"
    depends_on:
      - db
  db:
    image: postgres:16
    environment:
      POSTGRES_DB: myapp
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data
volumes:
  postgres_data:

Automatisches Deployment (Webhook)

Webhooks für automatisches Deployment nach Git-Push einrichten:

  1. Tab Webhooks in den Anwendungseinstellungen
  2. Webhook-URL kopieren
  3. Zu GitHub/GitLab-Repository-Einstellungen hinzufügen:
hljs bash
# GitHub Webhook-Einstellungen:
# Payload URL: https://coolify.example.com/webhooks/github
# Content type: application/json
# Secret: Von Coolify kopiertes Secret
# Events: Push events

Coolify aktualisieren

hljs bash
# Coolify auf die neueste Version aktualisieren
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

# Oder über die Web-Oberfläche:
# Settings → Updates → Update Coolify

Fehlerbehebung

hljs bash
# Coolify-Logs anzeigen
docker logs coolify

# Alle Coolify-Container auflisten
docker ps | grep coolify

# Coolify neu starten
docker restart coolify

# Proxy (Traefik) Logs
docker logs coolify-proxy

Coolify funktioniert hervorragend auf REXE VPS-Servern. Mit 4 GB RAM und 2 vCPU können Sie kleine bis mittelgroße Projekte problemlos verwalten.

Häufig gestellte Fragen

Ich erhalte während der Coolify-Installation den Fehler 'Docker already installed'.

Das Coolify-Installationsskript erkennt bestehende Docker-Installationen. Wenn Sie eine ältere Docker-Version haben, entfernen Sie diese zuerst mit 'apt remove docker docker-engine docker.io containerd runc' und führen Sie dann die Coolify-Installation erneut aus.

Ich kann nicht auf die Coolify-Weboberfläche auf Port 8000 zugreifen.

Öffnen Sie Port 8000 in der Server-Firewall: 'ufw allow 8000/tcp'. Wenn Sie einen Cloud-Anbieter (AWS, GCP, Azure) verwenden, überprüfen Sie auch die Sicherheitsgruppen-/Firewall-Regeln. Überprüfen Sie, ob der Coolify-Container läuft mit 'docker ps | grep coolify'.

Ich erhalte einen 'Build failed'-Fehler beim Deployen aus einem Git-Repository.

Überprüfen Sie die Build-Logs in der Coolify-Oberfläche (Deployments → letztes Deployment → Logs). Wenn Sie Nixpacks verwenden, stellen Sie sicher, dass sich eine package.json, requirements.txt oder Dockerfile im Projektstammverzeichnis befindet. Überprüfen Sie, ob Umgebungsvariablen korrekt definiert sind.

SSL-Zertifikat wird nicht erstellt, HTTPS funktioniert nicht.

Überprüfen Sie, ob der DNS-Record der Domain korrekt auf die Server-IP zeigt (nslookup domain.com). Stellen Sie sicher, dass Let's Encrypt auf die Ports 80 und 443 zugreifen kann. Überprüfen Sie die Coolify-Proxy (Traefik) Logs mit 'docker logs coolify-proxy'. Die DNS-Propagierung kann bis zu 24 Stunden dauern.

Wie verwalte ich mehrere Server in Coolify?

Fügen Sie neue Server über das Servers-Menü hinzu. Sie müssen für jeden Server einen SSH-Key definieren. Coolify verbindet sich über SSH mit Remote-Servern und führt Docker-Befehle aus. Es gibt keine Ressourcenteilung zwischen Servern; jeder Server arbeitet unabhängig.

Wie sende ich Datenbank-Backups an S3?

Fügen Sie S3-kompatiblen Speicher über Settings → Backup-Menü hinzu. Sie können AWS S3, Cloudflare R2 oder MinIO verwenden. Geben Sie Bucket-Name, Access Key, Secret Key und Endpoint-URL ein. Konfigurieren Sie dann die automatische Backup-Planung in den Datenbankeinstellungen.

Verwandte Artikel

NetzwerkverkehrEingehend— GbpsAusgehend— Gbps