
services:
  web:
    build: ./backend
    command: gunicorn backend.wsgi:application --bind 0.0.0.0:8000
    volumes:
      - ./backend:/app
      - media_volume:/app/storage
      - static_volume:/app/staticfiles
    env_file:
      - .env
    ports:
      - "8000:8000"
    depends_on:
      - db
    restart: unless-stopped
    networks:
      - catlink-network

  db:
    image: postgres:14
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    env_file:
      - .env
    environment:
      - POSTGRES_INITDB_ARGS=--auth-host=scram-sha-256
    restart: unless-stopped
    networks:
      - catlink-network

  frontend:
    build: ./frontend/linktree-frontend
    ports:
      - "3000:3000"
    environment:
      - NEXT_PUBLIC_API_URL=https://links.shareon.kr
    env_file:
      - .env
    restart: unless-stopped
    depends_on:
      - web
    networks:
      - catlink-network

# Создаем изолированную сеть для безопасности
networks:
  catlink-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16

volumes:
  postgres_data:
  media_volume:
  static_volume:
