gooddeploy
Handbuch · Kapitel 1

Testzugang: deine erste App in 10 Minuten

Du hast einen Testzugang für gooddeploy bekommen. Diese Seite bringt dich vom Installieren bis zur ersten App online: anmelden, deployen, live schalten, zurückrollen. Dazu, was in der Testphase schon geht und was noch nicht.

Was du bekommst

  • Einen Zugang für deine E-Mail-Adresse in einem Team. Beides hat goodDEV für dich angelegt; selbst registrieren kannst du dich in der Testphase nicht.
  • Für jedes Projekt: Previews mit eigener Adresse für jeden Stand, eine Live-Version, die du per Befehl umschaltest, und den Weg zurück per rollback.
  • Auf Wunsch eine Postgres-Datenbank je Projekt.

Du brauchst:

  • macOS oder Linux mit einem Terminal,
  • ein Projekt in einem Git-Repo mit mindestens einem Commit, bei Node-Projekten mit committetem Lockfile (package-lock.json, pnpm-lock.yaml oder yarn.lock).

1. Installieren

curl -fsSL https://gooddeploy.de/install.sh | sh

Das Skript lädt die passende Version, prüft die Prüfsumme und legt gooddeploy nach /usr/local/bin oder ~/.local/bin. Prüfe danach:

gooddeploy version

Für den Testzugang brauchst du mindestens 0.0.2-alpha.1, für env import und mehrere Teams 0.0.3-alpha.3. Steht dort eine ältere Version, hole die neueste mit gooddeploy update. Mehr zur Installation unter Erste Schritte.

2. Anmelden

gooddeploy login --email du@agentur.de

Nimm die Adresse, für die goodDEV deinen Zugang angelegt hat. Dann:

  1. Im Terminal erscheint ein Code wie KXQT-7PRM.
  2. Du bekommst eine E-Mail mit einem Link. Öffne ihn im Browser und gib dort den Code aus deinem Terminal ein.
  3. Sobald du bestätigst, meldet das Terminal „Bestätigt“ und begrüßt dich mit deinem Namen. Für die Bestätigung hast du 10 Minuten.
Öffne den Link aus der E-Mail und gib dort diesen Code ein:

    KXQT-7PRM

Bestätige nur, wenn du gerade selbst gooddeploy login ausgeführt hast.
Warte auf die Bestätigung (höchstens 10 Minuten, Abbrechen mit Strg+C) …
✓ Bestätigt 3,5 s
✓ Hallo Trixi! Du bist angemeldet

Gib nie einen Code ein, den dir jemand anderes nennt, auch niemand von goodDEV. Kommt keine E-Mail, sieh im Spam-Ordner nach und prüfe die Adresse; die E-Mail geht nur an Adressen, die goodDEV angelegt hat.

Wer du bist und welche Rechte du auf welchen Projekten hast, zeigt:

gooddeploy whoami

Die Anmeldung gilt eine Weile („Gültig bis …“); danach meldest du dich einfach neu an.

3. Deine erste App

Im Ordner deines Projekts, mit allem committet:

cd mein-projekt
gooddeploy deploy

Beim ersten Mal fragt gooddeploy nach dem Projektnamen (3 bis 30 Zeichen: Kleinbuchstaben, Ziffern, Bindestriche) und legt das Projekt an:

? Projektname [mein-projekt]:
? Projekt mein-projekt gibt es im Team Agentur Nord noch nicht. Jetzt dort anlegen? (J/n)
✓ Projekt mein-projekt angelegt
? Postgres anlegen? (J/n) n

Postgres: Braucht deine App keine Datenbank, antworte mit n. Eine Datenbank lässt sich derzeit nur hier beim Anlegen einrichten; nachträglich legt sie goodDEV für dich an.

Danach lädt gooddeploy den letzten Commit hoch, baut ihn, startet die App und prüft, ob sie antwortet. Am Ende steht die Preview-Adresse und der Befehl zum Live-Schalten:

╭────────────────────────────╮
│ ✓ Preview bereit nach 51 s │
╰────────────────────────────╯
  https://mein-projekt--k7m2q9xa.…

  Live schalten  gooddeploy promote k7m2q9xa

k7m2q9xa ist die ID dieses Deployments; bei dir steht eine andere. Previews sind geschützt: Wer die Preview-Adresse ohne Freigabe öffnet, sieht nur einen Hinweis. Zum Teilen erzeugst du einen Link mit Ablaufdatum: gooddeploy share <id> (Freigabelink). Die Live-Adresse ist immer offen. Gefällt dir der Stand, schalte ihn live:

gooddeploy promote k7m2q9xa

Weitere Befehle für den Alltag:

gooddeploy status                 # was ist live, was ist die neueste Preview
gooddeploy ls                     # alle Deployments mit ID
gooddeploy rollback               # zurück auf die vorherige Live-Version
gooddeploy logs                   # Logs der Live-Version
gooddeploy logs k7m2q9xa --build  # Build-Log eines Deployments

Nach dem ersten Deploy kennt dein Ordner das Projekt (.gooddeploy/project.json, landet nicht im Git); jedes weitere gooddeploy deploy baut die nächste Preview ohne Rückfragen. Alles Weitere zu diesem Ablauf: Deploy, Preview, Promote, Rollback.

Was gebaut werden kann

gooddeploy erkennt dein Projekt selbst an package.json und den Konfigurationsdateien:

ProjektWas passiert
Next.jsläuft als Node-App mit Server-Rendering; mit output: "export" als statische Seite
Vite (z. B. React, Vue), Astro (statisch), Angular, Create React App, SvelteKit mit adapter-staticwird gebaut, der Ausgabeordner ausgeliefert
reines HTMLindex.html im Repo-Root oder in public/ wird direkt ausgeliefert

Paketmanager ist, was dein Lockfile sagt: npm, pnpm oder yarn. Die Node-Version nimmt gooddeploy aus engines.node in der package.json.

Tipp für Next.js: Setze in der next.config output: "standalone". Ohne läuft die App auch, aber mit größerem Image und langsamerem Start; gooddeploy weist dich beim Deploy mit ⚠ darauf hin.

Noch nicht unterstützt:

  • Server-Rendering mit Nuxt, Remix, SvelteKit ohne adapter-static und Astro im Server-Modus,
  • Bun als Paketmanager,
  • ein eigenes Dockerfile: gooddeploy baut immer selbst,
  • Git-Submodule und Git LFS.

Variablen und Geheimnisse für deine App setzt du mit gooddeploy env add (siehe Umgebungsvariablen). Kommst du von Vercel, übernimmst du alle auf einmal, auch vor dem ersten Deploy:

vercel env pull --environment=production .env.vercel
gooddeploy env import .env.vercel --production
rm .env.vercel

Details unter Umzug von Vercel: env import; den ganzen Umzug Schritt für Schritt beschreibt Umzug von Vercel.

Mit Datenbank

Hast du beim Anlegen „Postgres anlegen?“ mit Enter bestätigt, bekommt deine App bei jedem Start DATABASE_URL (eine Datenbank für Live, eine gemeinsame für alle Previews). Wie du sie mit Prisma, Drizzle oder pg nutzt, Migrationen ausrollst und lokal entwickelst, steht unter Datenbank in deiner App nutzen.

Was du in der Testphase wissen solltest

  • Kein Selbst-Registrieren: Weitere Personen für dein Team legt goodDEV an. Schreib uns, wen du dabeihaben möchtest.
  • Keine automatischen Backups: Datenbanken werden in der Testphase nicht automatisch gesichert. Sichere wichtige Daten selbst mit gooddeploy db dump.
  • Es kann sich etwas ändern: Die Testumgebung wird laufend weiterentwickelt. Adressen, Ausgaben und Grenzen können sich ändern, und es kann kurze Unterbrechungen geben. Leg dort nichts ab, dessen Ausfall dir schadet.
  • Datenstandort: gooddeploy läuft in einem Rechenzentrum in Deutschland. Deine Apps und Datenbanken laufen dort. Zur Anmeldung speichert gooddeploy deine E-Mail-Adresse sowie IP-Adresse und Gerät jeder Anmeldung. Mehr unter https://www.gooddev.de/datenschutz.
  • Neue Versionen: Hinweise auf eine neuere CLI zeigt gooddeploy selbst; gooddeploy update holt sie (siehe Aktualisieren).

Feedback und Hilfe

Wir wollen wissen, was hakt, was fehlt und was dich überrascht hat. Schreib an gooddeploy@gooddev.de, gern mit der Ausgabe aus dem Terminal und der Deployment-ID.

Wenn etwas nicht klappt:

  • Jede Fehlermeldung nennt einen Code und einen Hinweis. Die häufigsten erklärt Häufige Fehler.
  • gooddeploy help zeigt alle Befehle, gooddeploy <befehl> --help die Optionen eines Befehls.
  • Alle Kapitel findest du in der Übersicht des Handbuchs: https://gooddeploy.de/docs/