Skip to content

Latest commit

 

History

History
385 lines (268 loc) · 5.96 KB

File metadata and controls

385 lines (268 loc) · 5.96 KB

AgentArmy - Docker Deployment Guide

Käynnistä koko AgentArmy-alusta Dockerilla yhdellä komennolla! 🐳


📋 Esivalmistelut

1. Asenna Docker

macOS:

brew install docker docker-compose

Linux:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

Windows: Lataa Docker Desktop: https://www.docker.com/products/docker-desktop

2. Tarkista asennus

docker --version
docker-compose --version

🚀 Pika-aloitus

1. Luo .env-tiedosto

cd agenttiarmeija-platform
cp backend/.env.example .env

2. Muokkaa .env-tiedostoa

# Database
DB_PASSWORD=your-secure-password

# Security
JWT_SECRET_KEY=your-super-secret-key-change-this

# AI APIs
QWEN_API_KEY=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
MINIMAX_API_KEY=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

# Stripe (optional)
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...

# Email (optional)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
FROM_EMAIL=noreply@agenttiarmeija.com

# Frontend
FRONTEND_URL=http://localhost:3000
VITE_API_URL=http://localhost:8000

3. Käynnistä palvelut

docker-compose up -d

Tämä käynnistää:

  • PostgreSQL (portti 5432)
  • Backend API (portti 8000)
  • Frontend (portti 3000)

4. Tarkista että palvelut pyörivät

docker-compose ps

Pitäisi näyttää:

NAME                        STATUS
agenttiarmeija-db           Up (healthy)
agenttiarmeija-backend      Up
agenttiarmeija-frontend     Up

5. Lataa kurssisisältö tietokantaan

docker-compose exec backend python load_course_content.py

6. Avaa selaimessa


🔧 Yleiset komennot

Käynnistä palvelut

docker-compose up -d

Pysäytä palvelut

docker-compose down

Pysäytä ja poista tietokanta

docker-compose down -v

Katso lokeja

# Kaikki palvelut
docker-compose logs -f

# Vain backend
docker-compose logs -f backend

# Vain frontend
docker-compose logs -f frontend

# Vain tietokanta
docker-compose logs -f postgres

Käynnistä uudelleen palvelu

docker-compose restart backend
docker-compose restart frontend

Rakenna uudelleen

docker-compose build
docker-compose up -d

Suorita komentoja kontissa

# Backend
docker-compose exec backend python load_course_content.py
docker-compose exec backend python -c "print('Hello')"

# Frontend
docker-compose exec frontend npm run build

# Tietokanta
docker-compose exec postgres psql -U agenttiarmeija -d agenttiarmeija

🗄️ Tietokanta

Yhdistä tietokantaan

docker-compose exec postgres psql -U agenttiarmeija -d agenttiarmeija

Tietokantakomennot

-- Listaa taulut
\dt

-- Katso käyttäjiä
SELECT * FROM users;

-- Katso kursseja
SELECT * FROM courses;

-- Katso edistymistä
SELECT * FROM progress;

-- Poistu
\q

Varmuuskopioi tietokanta

docker-compose exec postgres pg_dump -U agenttiarmeija agenttiarmeija > backup.sql

Palauta varmuuskopio

cat backup.sql | docker-compose exec -T postgres psql -U agenttiarmeija -d agenttiarmeija

🐛 Ongelmanratkaisu

Palvelu ei käynnisty

# Tarkista lokit
docker-compose logs backend

# Käynnistä uudelleen
docker-compose restart backend

Tietokantayhteys ei toimi

# Tarkista että tietokanta on käynnissä
docker-compose ps postgres

# Tarkista tietokantalokit
docker-compose logs postgres

# Käynnistä tietokanta uudelleen
docker-compose restart postgres

Frontend ei yhdistä backendiin

# Tarkista että backend pyörii
curl http://localhost:8000/health

# Tarkista ympäristömuuttujat
docker-compose exec frontend env | grep VITE_API_URL

Portti on jo käytössä

# Tarkista mikä käyttää porttia
lsof -i :8000
lsof -i :3000
lsof -i :5432

# Vaihda portti docker-compose.yml:ssä
# Esim: "8001:8000" käyttää porttia 8001 hostissa

Tyhjennä kaikki ja aloita alusta

# Pysäytä palvelut
docker-compose down -v

# Poista kaikki kontit ja imaget
docker system prune -a

# Käynnistä uudelleen
docker-compose up -d --build

🚢 Tuotantoon siirtyminen

1. Muuta docker-compose.yml tuotantoon

# Poista --reload backendistä
command: uvicorn main_api:app --host 0.0.0.0 --port 8000

# Poista volume-mountit
# volumes:
#   - ./backend:/app

2. Rakenna tuotantoimaget

docker-compose build

3. Käynnistä tuotantotilassa

docker-compose up -d

4. Käytä reverse proxya (Nginx)

server {
    listen 80;
    server_name agenttiarmeija.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }

    location /api {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

📊 Monitoring

Tarkista resurssien käyttö

docker stats

Tarkista konttien tila

docker-compose ps

Tarkista levytila

docker system df

🔐 Turvallisuus

Vaihda salasanat tuotannossa

# Luo vahvat salasanat
openssl rand -base64 32

# Päivitä .env-tiedosto
DB_PASSWORD=<strong-password>
JWT_SECRET_KEY=<strong-secret>

Käytä HTTPS:ää tuotannossa

# Asenna Let's Encrypt
sudo apt install certbot python3-certbot-nginx

# Hanki sertifikaatti
sudo certbot --nginx -d agenttiarmeija.com

Rajoita tietokantayhteys

# docker-compose.yml
postgres:
  ports:
    - "127.0.0.1:5432:5432"  # Vain localhost

Onnea Dockerin käyttöön! 🐳