Entwickler → App-Server

App Server API

Betreiben Sie Ihre App auf einem NameOcean App Server und verwalten Sie ihn per Code: Deployment per Push, Apps neu starten, ihre Logs lesen, Secrets in Env-Variablen ablegen und den gesamten Server sichern oder wiederherstellen.

Deployment mit git

Jeder App Server hat ein git-Repository in /root/app. Ein Push schreibt den gepushten Branch dorthin und führt .nameocean/deploy.sh aus, sofern Ihr Projekt eine solche Datei enthält. nameocean deploy erledigt den gesamten Ablauf:

nameocean
$ nameocean deploy 3f9a1c2e
Remote nameocean → ssh://root@3f9a1c2e.nameocean.org:2152/root/app (added)
Pushed main to nameocean (3f9a1c2 Fix checkout)
Pushed main to origin
Restarted 2 apps, nginx reloaded: web running, worker running
  1. Fügt ein git-Remote namens nameocean für den Server hinzu, falls das Projekt noch keines hat.
  2. Pusht den aktuellen Branch in das Repository des Servers.
  3. Pusht ihn außerdem in das eigene Remote des Projekts (dessen Upstream oder origin), sofern Sie nicht --no-origin angeben.
  4. Startet alle Supervisor-Programme neu und lädt nginx neu, protokolliert dann das Deployment (POST /servers/{server}/deploys) und sendet ein server.deployed-Event.

Der Push verwendet Ihren SSH-Schlüssel. Falls der Server ihn noch nicht kennt: nameocean servers ssh-keys add 3f9a1c2e (liest ~/.ssh/id_ed25519.pub). Ein einfaches git push deployt die Dateien ebenfalls; rufen Sie danach POST /servers/{server}/deploys auf, um die Apps neu zu starten.

Endpunkte

Scopes servers:read und servers:write; zum Erstellen eines Servers wird zusätzlich billing:write benötigt. {server} ist die ID oder die Standard-Domain. Alles Weitere finden Sie in der API-Referenz.

GET /servers/plans · POST /serversTarife und Preise; Server erstellen (die erste Antwort nennt den Preis, dann confirm: true senden)
POST /servers/{server}/start · stop · restartServer starten, stoppen oder neu starten
GET /servers/{server}/apps · POST …/reloadSupervisor-Programme und ihr Status; alle neu starten und nginx neu laden
GET /servers/{server}/logs?app=web&lines=200Die letzten Zeilen der Ausgabe einer App oder app=nginx
GET · PATCH /servers/{server}/envEnv-Variablen, die jede App erhält; die Apps starten nach einer Änderung neu
GET · POST · DELETE /servers/{server}/ssh-keysSchlüssel, die sich anmelden und pushen können
GET · POST /servers/{server}/backups · POST …/backups/restoreBackups auflisten, jetzt sichern, ein Backup auf dem Server wiederherstellen
POST /servers/{server}/git · GET · POST …/deploysPush-Ziel vorbereiten; der deployte Commit und der Deployment-Verlauf

Env-Variablen

curl
$ curl -X PATCH https://nameocean.net/api/v1/servers/3f9a1c2e/env \
    -H "Authorization: Bearer $NAMEOCEAN_API_KEY" -H "Content-Type: application/json" \
    -d '{"set": {"DATABASE_URL": "postgres://app@127.0.0.1/app"}, "unset": ["DEBUG"]}'

Sie werden ausschließlich auf dem Server in /root/conf/env gespeichert, niemals in unserer Datenbank. Supervisor-Programme, SSH-Sitzungen und .nameocean/deploy.sh erhalten sie. Zum Auslesen ist servers:write erforderlich, und die KI sieht per MCP nur ihre Namen, nicht ihre Werte.

Ereignisse

Webhooks können server.* abonnieren: server.created, server.started, server.stopped, server.restarted, server.restore.started und server.deployed (mit dem Commit und der Angabe, ob die Apps gestartet sind).

Im Terminal

nameocean
$ nameocean deploy 3f9a1c2e
$ nameocean servers logs 3f9a1c2e --app web -n 200
$ nameocean servers env set 3f9a1c2e DATABASE_URL=postgres://app@127.0.0.1/app
$ nameocean servers restart-apps 3f9a1c2e
$ nameocean servers backups ls 3f9a1c2e

Über Ihre KI

Über MCP kann ein Assistent Logs lesen, Apps neu starten, Umgebungsvariablen setzen, ein Deployment nach dem Push abschließen, einen Server sichern und – nachdem er Ihnen den Preis angezeigt hat – einen Server erstellen. Vor dem Stoppen, Neustarten und Wiederherstellen wird zuerst Ihre Zustimmung eingeholt.