NameOcean App Server — loyihangiz git repozitoriyida joylashgan Linux server. Siz push qilasiz, u ishga tushadi. Ushbu qo‘llanma Flask ilovasini birinchi push’dan HTTPS bilan o‘z domenigacha olib boradi; Django, Node.js va Next.js faqat bitta qatorda farq qiladi.
visitor ──HTTPS:443──▶ NameOcean load balancer ──HTTP:80──▶ nginx ──▶ your app on 127.0.0.1:8000
Sertifikatlar yuk balansirovchida saqlanadi, shuning uchun server faqat 80-portga xizmat qiladi. Ilovangiz supervisor ostida 127.0.0.1:8000 manzilini tinglaydi, nginx esa so‘rovlarni unga uzatadi.
$ 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
Server uchun to‘lov oylik olinadi; --yessiz servers create faqat narxni ko‘rsatadi. Uni Boshqaruv paneli → Hosting bo‘limida ham yaratishingiz mumkin. ssh-keys add git push uchun foydalanadigan ~/.ssh/id_ed25519.pub kalitini o‘rnatadi.
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
deploy.sh — yig‘ish bosqichlari uchun joy: paketlarni o‘rnatish, migratsiyalar, npm run build. Push qilganingizda uning natijasi terminalingizda ko‘rinadi.
$ git add . && git commit -m "First deploy" $ nameocean deploy 3f9a1c2e
nameocean deploy nameocean nomli git remote qo‘shadi, joriy branch’ni serverdagi /root/app ga push qiladi (shundan keyin server aynan shu branch’ni joylashtiradi), uni o‘zingizning origin ga ham push qiladi va ilovalarni qayta ishga tushiradi.
Supervisor’ga ilovani qanday ishga tushirishni, nginx’ga esa so‘rovlarni unga uzatishni ko‘rsating. Ikkala fayl ham serverda har bir stek uchun misollar bilan mavjud; siz faqat izohdan chiqarasiz.
$ 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
Flask uchun [program:app]:
[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
Boshqa steklar uchun faqat command o‘zgaradi (faylda bu misollar ham bor):
| 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 bilan 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 va deploy.sh da npm ci && npm run build |
| Go | /root/app/server va deploy.sh da go build -o server . |
Ilovangiz endi https://3f9a1c2e.nameocean.org manzilida ishlamoqda.
$ nameocean servers env set 3f9a1c2e SITE_NAME=Kahvebot SECRET_KEY=…
Ular har bir ilova, deploy.sh va SSH seansiga beriladi, ilovalar esa ularni o‘qish uchun qayta ishga tushadi. Ular faqat serverda saqlanadi, hech qachon repozitoriyda yoki NameOcean ma’lumotlar bazasida emas.
$ nameocean bind kahvebot.com 3f9a1c2e
Domenning DNS’i NameOcean’da bo‘lishi kerak. NameOcean DNS yozuvlarini qo‘shadi, sertifikat chiqaradi va yuk balansirovchini sozlaydi (HTTP’dan HTTPS’ga hamda asosiy domendan www’ga); bu odatda bir necha daqiqa oladi. Serverda hech narsa o‘zgarmaydi.
$ git commit -am "New page" $ nameocean deploy $ nameocean servers logs 3f9a1c2e --app app -f # if it does not come up
Har bir deploy commit va ilovalar ishga tushgan-tushmagani haqidagi maʼlumot bilan server.deployed webhook hodisasini yuboradi. Zaxira nusxalar, qayta ishga tushirish va API ning qolgan qismi: App Server API. Serverda AI agentlar uchun qoʻllanma bor: /root/AGENTS.md.