BYTEBOOK
Bytebook Docs • Python / FastAPI / Subdomain
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
├── 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)
- Conectează-te la contul Namecheap →
bytebook.xyz→ Advanced DNS. - 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
- Type:
2. Sincronizare Cod prin SFTP
- În IntelliJ / PyCharm: Tools → Deployment → Configuration...
- La Mappings:
- Local path:
/Users/admin/Projects/py-demo - Deployment path:
/root/projects/py-demo
- Local path:
- Click dreapta pe folderul rădăcină
py-demo→ Deployment → Upload to VPS Spring.
3. Configurare Mediu Python pe VPS
- Conectează-te la VPS prin SSH și instalează
python3-venv(dacă nu este instalat):apt update && apt install -y python3-venv python3-pip - Navighează în folderul proiectului încărcat:
cd /root/projects/py-demo - 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
- Creează un fișier de serviciu
systemdpentru aplicația Python:nano /etc/systemd/system/python-app.service - 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 - 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
- Editează
Caddyfile:nano /etc/caddy/Caddyfile - Adaugă blocul pentru subdomeniul Python, făcând reverse proxy către portul
8000:py-demo.bytebook.xyz { reverse_proxy localhost:8000 } - 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