BYTEBOOK
Bytebook Docs • Python / FastAPI / Subdomain
← Înapoi la Bytebook
PATH: DOCS / PYTHON_DEPLOY_GUIDE.HTML _
[00:00:00] DOCS_READY
DEMOS Main Archive JAVA LABS Enterprise PY LABS Neural Assets NODE LABS Async Runtime INFRA Control Center
DEPLOYMENT GUIDES • PYTHON & FASTAPI

Ghid Rapid: Adăugare Subdomeniu Nou & Deploy Aplicație Python (FastAPI)

Acest ghid descrie pașii necesari pentru a crea o aplicație web Python folosind FastAPI și Uvicorn, a o sincroniza din IntelliJ / PyCharm pe VPS și a o publica pe un subdomeniu nou (py-demo.bytebook.xyz).

# Structura Locală a Proiectului (în IntelliJ / PyCharm)

Proiectul tău local (/Users/admin/Projects/py-demo) va avea următoarea structură de bază:

py-demo/
├── main.py # Aplicația principală FastAPI
└── requirements.txt # Dependențele Python

A. Fișierul requirements.txt

fastapi
uvicorn[standard]

B. Fișierul main.py

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Hello Alin din Python FastAPI!"}

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "query": q}

1. Configurare Advanced DNS (Namecheap)

  1. Conectează-te la contul Namecheap → bytebook.xyz → Advanced DNS.
  2. Adaugă o înregistrare de tip A Record:
    • Type: A Record
    • Host: py-demo (sau numele subdomeniului dorit)
    • Value: 63.250.40.142 (IP-ul VPS-ului)
    • TTL: Automatic

2. Sincronizare Cod prin SFTP

  1. În IntelliJ / PyCharm: Tools → Deployment → Configuration...
  2. La Mappings:
    • Local path: /Users/admin/Projects/py-demo
    • Deployment path: /root/projects/py-demo
  3. Click dreapta pe folderul rădăcină py-demo → Deployment → Upload to VPS Spring.

3. Configurare Mediu Python pe VPS

  1. Conectează-te la VPS prin SSH și instalează python3-venv (dacă nu este instalat):
    apt update && apt install -y python3-venv python3-pip
  2. Navighează în folderul proiectului încărcat:
    cd /root/projects/py-demo
  3. Creează un mediu virtual (venv) și instalează dependențele:
    python3 -m venv venv
    ./venv/bin/pip install -r requirements.txt

4. Configurare Serviciu Systemd pentru Python

  1. Creează un fișier de serviciu systemd pentru aplicația Python:
    nano /etc/systemd/system/python-app.service
  2. Adaugă următoarea configurație (rulează Uvicorn pe portul 8000):
    [Unit]
    Description=Python FastAPI Application
    After=network.target
    
    [Service]
    User=root
    WorkingDirectory=/root/projects/py-demo
    ExecStart=/root/projects/py-demo/venv/bin/uvicorn main:app --host 127.0.0.1 --port 8000
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  3. Salvează fișierul, reîncarcă systemd și pornește serviciul:
    systemctl daemon-reload
    systemctl enable python-app
    systemctl start python-app

5. Configurare Subdomeniu în Caddy

  1. Editează Caddyfile:
    nano /etc/caddy/Caddyfile
  2. Adaugă blocul pentru subdomeniul Python, făcând reverse proxy către portul 8000:
    py-demo.bytebook.xyz {
        reverse_proxy localhost:8000
    }
  3. Reîncarcă Caddy:
    systemctl reload caddy

# Testare & Documentație Swagger

• Accesează în browser: https://py-demo.bytebook.xyz

• FastAPI generează și documentație Swagger automată! Accesează: https://py-demo.bytebook.xyz/docs