En NameOcean App Server är en Linux-server med ditt projekt i ett git-repository. Du pushar, den kör. Den här guiden tar en Flask-app från första push till en egen domän med HTTPS; för Django, Node.js och Next.js skiljer det sig på en enda rad.
visitor ──HTTPS:443──▶ NameOcean load balancer ──HTTP:80──▶ nginx ──▶ your app on 127.0.0.1:8000
Lastbalanseraren hanterar certifikaten, så servern behöver bara betjäna port 80. Din app lyssnar på 127.0.0.1:8000 under supervisor, och nginx skickar vidare förfrågningar till den.
$ nameocean servers plans $ nameocean servers create --plan starter --yes $ nameocean servers ls ID NAME STATUS PLAN DEFAULT DOMAIN DOMAINS 812 3f9a1c2e running starter 3f9a1c2e.nameocean.org - $ nameocean servers ssh-keys add 3f9a1c2e
En server faktureras månadsvis; servers create utan --yes visar bara priset. Du kan också skapa den under Kontrollpanel → Hosting. ssh-keys add installerar ~/.ssh/id_ed25519.pub, som git använder för att pusha.
import os
from flask import Flask
app = Flask(__name__)
@app.get("/")
def home():
return f"Hello from {os.environ.get('SITE_NAME', 'NameOcean')}"
flask gunicorn
#!/bin/bash # runs on the server after every push, in /root/app, with your env variables set -e pip install -r requirements.txt
I deploy.sh lägger du byggstegen: installation av paket, migreringar, npm run build. Utdata visas i din terminal när du pushar.
$ git add . && git commit -m "First deploy" $ nameocean deploy 3f9a1c2e
nameocean deploy lägger till en git-remote som heter nameocean, pushar den aktuella grenen till /root/app på servern (servern driftsätter sedan den grenen), pushar den även till din egen origin och startar om apparna.
Tala om för supervisor hur appen startas och för nginx att skicka förfrågningar till den. Båda filerna finns på servern med exempel för varje stack; du behöver bara avkommentera.
$ nameocean servers info 3f9a1c2e # the ssh line $ ssh -p 2152 root@3f9a1c2e.nameocean.org # vi /root/conf/supervisor.conf # uncomment the Flask [program:app] and the shared settings # supervisorctl reread && supervisorctl update # vi /root/conf/nginx.conf # remove the static "location /", uncomment the proxy one # nginx -t && systemctl reload nginx # curl -s http://127.0.0.1/ Hello from NameOcean
[program:app] för Flask:
[program:app] command=/root/.pyenv/versions/app/bin/gunicorn app:app --workers 2 --bind 127.0.0.1:8000 directory=/root/app environment=PATH="/root/.pyenv/versions/app/bin:/usr/local/bin:/usr/bin:/bin" autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/app.log
För andra stackar ändras bara command (filen innehåller även dessa exempel):
| Django | /root/.pyenv/versions/app/bin/gunicorn myproject.wsgi:application --workers 2 --bind 127.0.0.1:8000 |
| FastAPI | /root/.pyenv/versions/app/bin/uvicorn main:app --host 127.0.0.1 --port 8000 --workers 2 |
| Node.js | /usr/bin/node server.js med environment=NODE_ENV="production",PORT="8000",HOST="127.0.0.1" |
| Next.js | /usr/bin/npx next start -H 127.0.0.1 -p 8000 och npm ci && npm run build i deploy.sh |
| Go | /root/app/server och go build -o server . i deploy.sh |
Din app är nu live på https://3f9a1c2e.nameocean.org.
$ nameocean servers env set 3f9a1c2e SITE_NAME=Kahvebot SECRET_KEY=…
Alla appar, deploy.sh och SSH-sessioner får dem, och apparna startas om för att läsa in dem. De lagras endast på servern, aldrig i repositoryt eller i NameOceans databas.
$ nameocean bind kahvebot.com 3f9a1c2e
Domänens DNS måste ligga hos NameOcean. NameOcean lägger till DNS-posterna, utfärdar certifikatet och konfigurerar lastbalanseraren (HTTP till HTTPS, och domänen utan www till www); det tar oftast några minuter. Inget ändras på servern.
$ git commit -am "New page" $ nameocean deploy $ nameocean servers logs 3f9a1c2e --app app -f # if it does not come up
Varje driftsättning skickar en server.deployed-webhook-händelse med commiten och om apparna startade. Säkerhetskopior, omstarter och resten av API:et: App Server API. Servern har en guide för AI-agenter i /root/AGENTS.md.