Zum Hauptinhalt springen
Zurück zur Kategorie

Coolify Installation: Anwendungs-Deployment mit Self-Hosted PaaS

Coolify-Installation, Docker- und Git-Integration, Anwendungs-Deployment, Datenbankverwaltung, SSL-Zertifikate, Umgebungsvariablen und Self-Hosted PaaS als Alternative zu Heroku/Netlify.

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. ServersAdd 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. SourcesAdd SourceGitHub 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. SourcesAdd SourceGitLab
  2. GitLab URL und Access Token eingeben
  3. Verbindung testen

Anwendungen deployen

Neues Projekt erstellen

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

Anwendung hinzufügen

  1. Im Projekt New ResourceApplication
  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 ResourceDatabasePostgreSQL
  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