Programadores → Servidores de aplicações

API do App Server

Execute a sua aplicação num App Server da NameOcean e faça a gestão a partir do código: faça push para fazer deploy, reinicie as aplicações, leia os respetivos logs, guarde segredos em variáveis de ambiente e faça backup ou restauro do servidor inteiro.

Deploy com git

Cada App Server tem um repositório git em /root/app. Um push escreve aí o branch enviado e executa .nameocean/deploy.sh, caso o seu projeto o tenha. O nameocean deploy faz todo o processo:

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. Adiciona um remote git chamado nameocean para o servidor, caso o projeto ainda não o tenha.
  2. Faz push do branch atual para o repositório do servidor.
  3. Faz também push para o remote do próprio projeto (o seu upstream, ou origin), a menos que indique --no-origin.
  4. Reinicia todos os programas do supervisor e recarrega o nginx; depois regista o deploy (POST /servers/{server}/deploys) e envia um evento server.deployed.

O push utiliza a sua chave SSH. Se o servidor ainda não a conhecer: nameocean servers ssh-keys add 3f9a1c2e (lê ~/.ssh/id_ed25519.pub). Um simples git push também faz o deploy dos ficheiros; chame POST /servers/{server}/deploys a seguir para reiniciar as aplicações.

Endpoints

Âmbitos servers:read e servers:write; criar um servidor requer também billing:write. {server} é o id ou o domínio predefinido. Tudo está na referência da API.

GET /servers/plans · POST /serversPlanos e preços; criar um servidor (a primeira resposta indica o preço; depois envie confirm: true)
POST /servers/{server}/start · stop · restartIniciar, parar ou reiniciar o servidor
GET /servers/{server}/apps · POST …/reloadProgramas do supervisor e o respetivo estado; reiniciar todos e recarregar o nginx
GET /servers/{server}/logs?app=web&lines=200As últimas linhas da saída de uma aplicação, ou app=nginx
GET · PATCH /servers/{server}/envVariáveis de ambiente que todas as aplicações recebem; as aplicações reiniciam após uma alteração
GET · POST · DELETE /servers/{server}/ssh-keysChaves que podem iniciar sessão e fazer push
GET · POST /servers/{server}/backups · POST …/backups/restoreListar backups, fazer backup agora, restaurar um sobre o servidor
POST /servers/{server}/git · GET · POST …/deploysPreparar o destino do push; o commit em produção e o histórico de deploys

Variáveis de ambiente

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"]}'

São guardadas apenas no servidor, em /root/conf/env, nunca na nossa base de dados. Os programas do supervisor, as sessões SSH e o .nameocean/deploy.sh recebem-nas. Lê-las requer servers:write, e a IA através de MCP vê os seus nomes, não os valores.

Eventos

Os Webhooks podem subscrever eventos server.*: server.created, server.started, server.stopped, server.restarted, server.restore.started e server.deployed (com o commit e a indicação de se as aplicações arrancaram).

A partir do 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

A partir da sua IA

Através do MCP, um assistente pode ler logs, reiniciar aplicações, definir variáveis de ambiente, concluir um deploy após um push, fazer backup de um servidor e, depois de lhe mostrar o preço, criar um. Parar, reiniciar e restaurar requerem primeiro a sua confirmação.