Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
# Стратегия деплоя
|
||||
|
||||
---
|
||||
|
||||
## Decision Tree
|
||||
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Как деплоить?] --> B{Один сервер?}
|
||||
B -->|Да| C[Docker-compose]
|
||||
B -->|Нет| D{Нужна оркестрация?}
|
||||
D -->|Да| E[Kubernetes]
|
||||
D -->|Нет| F[Docker-compose + несколько серверов]
|
||||
C --> G{VPS или облако?}
|
||||
G -->|VPS| H[Ubuntu + systemd]
|
||||
G -->|Облако| I[Docker + cloud provider]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Варианты
|
||||
|
||||
### Docker-compose (рекомендован для старта)
|
||||
```yaml
|
||||
services:
|
||||
app:
|
||||
build: .
|
||||
ports: ["8020:8020"]
|
||||
env_file: .env
|
||||
db:
|
||||
image: postgres:14
|
||||
volumes: ["pgdata:/var/lib/postgresql/data"]
|
||||
redis:
|
||||
image: redis:7
|
||||
worker:
|
||||
build: .
|
||||
command: celery -A app.tasks worker -l info
|
||||
```
|
||||
|
||||
### Systemd (без Docker, VPS)
|
||||
```ini
|
||||
[Unit]
|
||||
Description=VoIdea API
|
||||
|
||||
[Service]
|
||||
ExecStart=/home/voidea/venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8020
|
||||
WorkingDirectory=/home/voidea
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## CI/CD
|
||||
|
||||
**Рекомендуется:** GitHub Actions
|
||||
|
||||
```yaml
|
||||
name: CI
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-python@v5
|
||||
with: { python-version: "3.12" }
|
||||
- run: pip install -r requirements.txt
|
||||
- run: ruff check
|
||||
- run: pytest
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## [ASK]
|
||||
|
||||
- Docker или без Docker? (Docker для воспроизводимости)
|
||||
- VPS или облако? (VPS дешевле, облако масштабируемее)
|
||||
- CI/CD какой? (GitHub Actions — бесплатно для публичных репозиториев)
|
||||
- Нужен ли staging? (да, перед production)
|
||||
Reference in New Issue
Block a user