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