106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version: '3.7'
 | 
						|
 | 
						|
services:
 | 
						|
  ctfd:
 | 
						|
    build: .
 | 
						|
    user: root
 | 
						|
    restart: always
 | 
						|
    ports:
 | 
						|
      - "8000:8000"
 | 
						|
    environment:
 | 
						|
      - UPLOAD_FOLDER=/var/uploads
 | 
						|
      - DATABASE_URL=mysql+pymysql://ctfd:ctfd@db/ctfd
 | 
						|
      - REDIS_URL=redis://cache:6379
 | 
						|
      - WORKERS=1
 | 
						|
      - LOG_FOLDER=/var/log/CTFd
 | 
						|
      - ACCESS_LOG=-
 | 
						|
      - ERROR_LOG=-
 | 
						|
      - REVERSE_PROXY=true
 | 
						|
    volumes:
 | 
						|
      - .data/CTFd/logs:/var/log/CTFd
 | 
						|
      - .data/CTFd/uploads:/var/uploads
 | 
						|
      - .:/opt/CTFd:ro
 | 
						|
      - /var/run/docker.sock:/var/run/docker.sock
 | 
						|
    depends_on:
 | 
						|
      - db
 | 
						|
    networks:
 | 
						|
        default:
 | 
						|
        internal:
 | 
						|
 | 
						|
  nginx:
 | 
						|
    image: nginx:1.17
 | 
						|
    restart: always
 | 
						|
    volumes:
 | 
						|
      - ./conf/nginx/http.conf:/etc/nginx/nginx.conf
 | 
						|
    ports:
 | 
						|
      - 80:80
 | 
						|
    depends_on:
 | 
						|
      - ctfd
 | 
						|
 | 
						|
  db:
 | 
						|
    image: mariadb:10.4.12
 | 
						|
    restart: always
 | 
						|
    environment:
 | 
						|
      - MYSQL_ROOT_PASSWORD=ctfd
 | 
						|
      - MYSQL_USER=ctfd
 | 
						|
      - MYSQL_PASSWORD=ctfd
 | 
						|
      - MYSQL_DATABASE=ctfd
 | 
						|
    volumes:
 | 
						|
      - .data/mysql:/var/lib/mysql
 | 
						|
    networks:
 | 
						|
        internal:
 | 
						|
    # This command is required to set important mariadb defaults
 | 
						|
    command: [mysqld, --character-set-server=utf8mb4, --collation-server=utf8mb4_unicode_ci, --wait_timeout=28800, --log-warnings=0]
 | 
						|
 | 
						|
  cache:
 | 
						|
    image: redis:4
 | 
						|
    restart: always
 | 
						|
    volumes:
 | 
						|
    - .data/redis:/data
 | 
						|
    networks:
 | 
						|
        internal:
 | 
						|
 | 
						|
  frpc:
 | 
						|
    image: frankli0324/frp:frpc
 | 
						|
    restart: always
 | 
						|
    command: [
 | 
						|
      "--server_addr=frps",
 | 
						|
      "--server_port=7000",
 | 
						|
      "--token=your_token",
 | 
						|
      "--admin_addr=0.0.0.0",
 | 
						|
      "--admin_port=7000",
 | 
						|
      "--admin_user=frank",
 | 
						|
      "--admin_pwd=qwer",
 | 
						|
    ]
 | 
						|
    networks:
 | 
						|
      frp:
 | 
						|
      internal:
 | 
						|
      containers:
 | 
						|
 | 
						|
  frps:
 | 
						|
    image: frankli0324/frp:frps
 | 
						|
    restart: always
 | 
						|
    command: [
 | 
						|
      "--bind_addr=0.0.0.0",
 | 
						|
      "--bind_port=7000",
 | 
						|
      "--token=your_token",
 | 
						|
      "--subdomain_host=127.0.0.1.nip.io",
 | 
						|
      "--vhost_http_port=8080",
 | 
						|
    ]
 | 
						|
    ports:
 | 
						|
      - 8080:8080
 | 
						|
    networks:
 | 
						|
      frp:
 | 
						|
      default:
 | 
						|
 | 
						|
networks:
 | 
						|
    default:
 | 
						|
    internal:
 | 
						|
        internal: true
 | 
						|
    frp:
 | 
						|
        internal: true
 | 
						|
    containers:
 | 
						|
        internal: true
 | 
						|
        driver: overlay
 | 
						|
        attachable: true
 |