Skip to content

App deployen

Dieser Guide zeigt, wie ihr eine neue Anwendung auf der Plattform einrichtet und deployt — sowohl über die Benutzeroberfläche als auch über die API.


Voraussetzungen

  • Aktiver Plattform-Zugang (API-Token vorhanden)
  • Anwendungs-Repository in Gitea (git.coolai.btc-ag.cloud)
  • Dockerfile im Repository-Root (empfohlen) oder Nixpacks-kompatible Projektstruktur
  • Gewünschte Domain (Subdomain unter btc-ag.cloud oder eigene Domain)

Dockerfile-Anforderungen

Ein gutes Dockerfile für die Plattform folgt diesen Grundsätzen:

# Multi-Stage Build — klein und sicher
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
FROM node:20-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
# Expliziter Port
EXPOSE 3000
# Kein Root
USER node
CMD ["node", "dist/server.js"]

Wichtige Punkte:

  • Den Port explizit via EXPOSE deklarieren — die Plattform liest diesen Wert aus.
  • Multi-Stage Builds verwenden, um das finale Image klein zu halten.
  • Den Container nicht als Root ausführen.
  • Keine Secrets ins Image einbacken — alles über Umgebungsvariablen.

Deployment via Oberfläche

  1. Repository verbinden

    Im Dashboard: Projekt öffnen → “Neue Ressource” → “Anwendung”

    Repository-Typ wählen:

    • Öffentliches Repository: GitHub, GitLab, beliebige öffentliche URL
    • Privates Repository (Deploy-Key): Gitea auf git.coolai.btc-ag.cloud (empfohlen)
  2. Repository-Details eintragen

    FeldBeschreibung
    Repository-URLhttps://git.coolai.btc-ag.cloud/meinteam/meine-app
    Branchz. B. main oder production
    Build-PackDockerfile
    Dockerfile-PfadStandard: ./Dockerfile
    PortEuer App-Port (z. B. 3000, 8080)
  3. Domain konfigurieren

    Unter dem Tab “Domains”:

    meine-app.btc-ag.cloud

    TLS wird automatisch eingerichtet.

  4. Umgebungsvariablen setzen

    Unter “Umgebungsvariablen” alle nötigen Werte hinterlegen. Secrets (Passwörter, Tokens) als geheimen Wert markieren.

  5. Deployment starten

    Klick auf “Deployen” — Build-Log erscheint in Echtzeit.


Deployment via API

Terminal window
curl -s -X POST https://coolai.btc-ag.cloud/api/v1/applications/private-deploy-key \
-H "Authorization: Bearer $COOLIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"project_uuid": "<projekt-uuid>",
"server_uuid": "<server-uuid>",
"environment_name": "production",
"private_key_uuid": "<deploy-key-uuid>",
"git_repository": "git@git.coolai.btc-ag.cloud:meinteam/meine-app.git",
"git_branch": "main",
"build_pack": "dockerfile",
"ports_exposes": "3000",
"name": "meine-app",
"domains": "https://meine-app.btc-ag.cloud"
}'

Deployment-Verlauf

Jedes Deployment wird mit ID, Zeitstempel, Status und vollständigem Log gespeichert.

Terminal window
# Alle Deployments einer Anwendung
curl -s https://coolai.btc-ag.cloud/api/v1/deployments/applications/<app-uuid> \
-H "Authorization: Bearer $COOLIFY_TOKEN" \
| jq '.[] | {id: .id, status: .status, created_at: .created_at}'

Troubleshooting

ProblemMögliche UrsacheLösung
Build schlägt fehlFehler im DockerfileBuild-Log prüfen
Container startet nichtFalscher Port / fehlende Env-VarLogs prüfen, Umgebungsvariablen kontrollieren
Domain nicht erreichbarDNS noch nicht propagiert / TLS ausstehend5–10 Minuten warten, dann erneut prüfen
Permission denied beim BuildRoot-Rechte im Container fehlenUSER-Direktive im Dockerfile prüfen