4837 Total CVEs
26 Years
GitHub
README.md
Rendering markdown...
POC / docker-compose.yml YML
version: '3.8'

services:
  # 메인 CTF 웹 서버
  docx-ssrf-web:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: docx-ssrf-challenge
    ports:
      - "13687:8080"
    environment:
      - FLAG=CTF{flag_flag}
      - ADMIN_TOKEN=60e27a00dc01ca8e39c21cc3989dd525e24371b0bd238fe506e789e8572a69ae
      - PYTHONUNBUFFERED=1
    volumes:
      - ./uploads:/app/uploads
      - ./logs:/app/logs
    restart: unless-stopped
    networks:
      - ctf-network
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 40s

  # 내부 Admin 서비스 (포트 3003)
  internal-admin:
    build:
      context: .
      dockerfile: Dockerfile.admin
    container_name: internal-admin-service
    expose:
      - "3003"
    environment:
      - FLAG=CTF{flag_admin}
      - ADMIN_TOKEN=60e27a00dc01ca8e39c21cc3989dd525e24371b0bd238fe506e789e8572a69ae
    networks:
      - ctf-network
    restart: unless-stopped

  # 내부 Database 서비스 (포트 3001)
  internal-db:
    build:
      context: .
      dockerfile: Dockerfile.internal
    container_name: internal-db-service
    expose:
      - "3001"
    environment:
      - SERVICE_NAME=Database Service
      - SERVICE_PORT=3001
    networks:
      - ctf-network
    restart: unless-stopped

  # 내부 Cache 서비스 (포트 3002)
  internal-cache:
    build:
      context: .
      dockerfile: Dockerfile.internal
    container_name: internal-cache-service
    expose:
      - "3002"
    environment:
      - SERVICE_NAME=Cache Service
      - SERVICE_PORT=3002
    networks:
      - ctf-network
    restart: unless-stopped

  # 내부 Metrics 서비스 (포트 3004)
  internal-metrics:
    build:
      context: .
      dockerfile: Dockerfile.internal
    container_name: internal-metrics-service
    expose:
      - "3004"
    environment:
      - SERVICE_NAME=Metrics Service
      - SERVICE_PORT=3004
    networks:
      - ctf-network
    restart: unless-stopped

  # Redis (선택사항 - 세션 관리용)
  redis:
    image: redis:7-alpine
    container_name: ctf-redis
    expose:
      - "6379"
    networks:
      - ctf-network
    restart: unless-stopped
    command: redis-server --appendonly yes
    volumes:
      - redis-data:/data

  # 모니터링 (개발용)
  portainer:
    image: portainer/portainer-ce:latest
    container_name: ctf-portainer
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer-data:/data
    restart: unless-stopped
    networks:
      - ctf-network
    profiles:
      - dev

volumes:
  redis-data:
  portainer-data:

networks:
  ctf-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16