Dasturchilar → Qo‘llanmalar

Ilovani git push bilan joylashtirish

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.

So‘rovlar ilovangizga qanday yetib boradi

so‘rov yo‘li
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.

1. Server va SSH kalitingiz

nameocean
$ 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.

2. Loyiha

app.py
import os

from flask import Flask

app = Flask(__name__)


@app.get("/")
def home():
    return f"Hello from {os.environ.get('SITE_NAME', 'NameOcean')}"
requirements.txt
flask
gunicorn
.nameocean/deploy.sh
#!/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.

3. Birinchi joylashtirish

nameocean
$ 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.

4. Ishga tushirish (bir marta)

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.

ssh
$ 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]:

/root/conf/supervisor.conf
[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.

5. Sozlamalar va maxfiy ma’lumotlar

nameocean
$ 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.

6. Domeningiz

nameocean
$ 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.

7. Shundan keyingi har bir deploy

nameocean
$ 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.