Files
SkrzynkaImpostora/bot/docker-compose.dev.yml
2025-07-21 00:58:17 +02:00

127 lines
3.1 KiB
YAML

version: '3.8'
services:
# PostgreSQL Database dla development
postgres-dev:
image: postgres:15-alpine
container_name: skrzynka-postgres-dev
restart: unless-stopped
environment:
POSTGRES_DB: skrzynka_impostora_dev
POSTGRES_USER: dev_user
POSTGRES_PASSWORD: dev_password
PGDATA: /var/lib/postgresql/data/pgdata
volumes:
- postgres_dev_data:/var/lib/postgresql/data
- ./database/init:/docker-entrypoint-initdb.d
ports:
- "5433:5432" # Inny port żeby nie kolidować z lokalnym PostgreSQL
networks:
- skrzynka-dev-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U dev_user -d skrzynka_impostora_dev"]
interval: 10s
timeout: 5s
retries: 5
# Redis dla development
redis-dev:
image: redis:7-alpine
container_name: skrzynka-redis-dev
restart: unless-stopped
ports:
- "6380:6379" # Inny port
volumes:
- redis_dev_data:/data
networks:
- skrzynka-dev-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# Bot w trybie development z hot reload
bot-dev:
build:
context: .
dockerfile: Dockerfile.dev
container_name: skrzynka-bot-dev
restart: unless-stopped
environment:
# Database
DATABASE_URL: postgresql://dev_user:dev_password@postgres-dev:5432/skrzynka_impostora_dev
DB_HOST: postgres-dev
DB_PORT: 5432
DB_NAME: skrzynka_impostora_dev
DB_USER: dev_user
DB_PASSWORD: dev_password
# Discord Bot
DISCORD_TOKEN: ${DISCORD_TOKEN}
DISCORD_CLIENT_ID: ${DISCORD_CLIENT_ID}
DISCORD_CLIENT_SECRET: ${DISCORD_CLIENT_SECRET}
# Web Panel
JWT_SECRET: dev_jwt_secret_key
SESSION_SECRET: dev_session_secret_key
WEB_PORT: 3001
API_PORT: 3000
# OAuth2
OAUTH2_REDIRECT_URI: http://localhost:3001/auth/discord/callback # Environment
NODE_ENV: development
LOG_LEVEL: debug
# Redis
REDIS_URL: redis://redis-dev:6379
ports:
- "3000:3000"
- "3001:3001"
- "9229:9229" # Node.js debugger port
depends_on:
postgres-dev:
condition: service_healthy
redis-dev:
condition: service_healthy
networks:
- skrzynka-dev-network
volumes:
- .:/app
- /app/node_modules
- /app/frontend/node_modules
- ./logs:/app/logs
command: npm run dev
# pgAdmin dla zarządzania bazą danych
pgadmin:
image: dpage/pgadmin4:latest
container_name: skrzynka-pgadmin
restart: unless-stopped
environment:
PGADMIN_DEFAULT_EMAIL: admin@skrzynka.local
PGADMIN_DEFAULT_PASSWORD: admin
PGADMIN_CONFIG_SERVER_MODE: 'False'
ports:
- "8080:80"
depends_on:
- postgres-dev
networks:
- skrzynka-dev-network
volumes:
- pgadmin_data:/var/lib/pgadmin
# Volumes
volumes:
postgres_dev_data:
driver: local
redis_dev_data:
driver: local
pgadmin_data:
driver: local
# Networks
networks:
skrzynka-dev-network:
driver: bridge