68 lines
1.4 KiB
YAML
68 lines
1.4 KiB
YAML
|
version: '2'
|
||
|
|
||
|
services:
|
||
|
ctfd:
|
||
|
build: .
|
||
|
user: root
|
||
|
restart: always
|
||
|
ports:
|
||
|
- "8000:8000"
|
||
|
environment:
|
||
|
- SECRET_KEY=abcdefg
|
||
|
- 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
|
||
|
depends_on:
|
||
|
- db
|
||
|
networks:
|
||
|
default:
|
||
|
internal:
|
||
|
|
||
|
nginx:
|
||
|
image: nginx:1.17
|
||
|
restart: always
|
||
|
volumes:
|
||
|
- ./conf/nginx/http.conf:/etc/nginx/nginx.conf
|
||
|
- ./ssl:/etc/ssl/:ro
|
||
|
ports:
|
||
|
- "443:8443"
|
||
|
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:
|
||
|
|
||
|
networks:
|
||
|
default:
|
||
|
internal:
|
||
|
internal: true
|