version: '3.5' services: backend: build: ./backend image: webrecorder/browsertrix-backend volumes: - /var/run/docker.sock:/var/run/docker.sock env_file: - ./configs/config.env depends_on: - minio - mongo - volume_placeholder_image ports: - 8000:8000 frontend: build: ./frontend image: webrecorder/browsertrix-frontend ports: - 9871:80 depends_on: - backend environment: - BACKEND_HOST=backend redis: image: redis command: redis-server --appendonly yes ports: - 6379:6379 volumes: - btrix-redis-data:/data mongo: image: mongo volumes: - btrix-mongo-data:/data/db env_file: - ./configs/config.env minio: image: minio/minio command: ["server", "/data", "--console-address", ":9001"] ports: - 9000:9000 - 9001:9001 volumes: - btrix-minio-data:/data env_file: - ./configs/config.env init_minio_bucket: image: minio/mc entrypoint: "/bin/sh" command: ['-c', 'mc mb local/test-bucket; mc policy set public local/test-bucket' ] env_file: - ./configs/config.env depends_on: - minio # adding here to ensure "tianon/true" is pulled, it's used to create volumes with configs volume_placeholder_image: image: tianon/true container_name: volume_placeholder # enable to support signing of wacz files # port 80 must be open to automatically generate cert via LetsEncrypt authsign: image: webrecorder/authsign:0.3.1 volumes: - btrix-sign-data:/data - ./configs/signing.yaml:/app-config/signing.yaml environment: - CONFIG=/app-config/signing.yaml env_file: - ./configs/config.env ports: - 80:80 volumes: btrix-redis-data: btrix-mongo-data: btrix-minio-data: btrix-sign-data: networks: default: name: btrix-cloud-net