122 lines
3.7 KiB
YAML
122 lines
3.7 KiB
YAML
# SPDX-FileCopyrightText: 2023 Marlon W (Mawoka)
|
|
#
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
version: "3"
|
|
|
|
services:
|
|
frontend:
|
|
restart: always
|
|
build:
|
|
context: ./frontend
|
|
dockerfile: Dockerfile
|
|
depends_on:
|
|
- redis
|
|
- api
|
|
environment:
|
|
REDIS_URL: redis://redis:6379/0?decode_responses=True
|
|
API_URL: http://api:80
|
|
api:
|
|
build: &build_cfg
|
|
context: .
|
|
dockerfile: Dockerfile
|
|
restart: &restart always
|
|
depends_on: &depends
|
|
- db
|
|
- redis
|
|
|
|
environment: &env_vars
|
|
# --- DON'T CHANGE FROM HERE ---
|
|
DB_URL: "postgresql://postgres:classquiz@db:5432/classquiz" # DON'T CHANGE
|
|
REDIS: "redis://redis:6379/0?decode_responses=True" # DON'T CHANGE
|
|
SECRET_KEY: "TOP_SECRET" # Don't change it manually, use the one-liner provided in the documentation
|
|
MAX_WORKERS: "1" # Very important and DON'T CHANGE
|
|
ACCESS_TOKEN_EXPIRE_MINUTES: 30 # DON'T CHANGE
|
|
MEILISEARCH_URL: "http://meilisearch:7700" # DON'T CHANGE
|
|
# -- DON'T CHANGE TILL HERE ---
|
|
|
|
# --- GENERAL CONFI ---
|
|
ROOT_ADDRESS: "https://classquiz.de" # CHANGE IT (without a "/" at the end)
|
|
|
|
# --- MAIL CONFIG ---
|
|
MAIL_PORT: "587"
|
|
MAIL_ADDRESS: "email@email@email.email"
|
|
MAIL_PASSWORD: "PASSWORT"
|
|
MAIL_USERNAME: "email@email@email.email"
|
|
MAIL_SERVER: "email@email@email.emai"
|
|
SKIP_EMAIL_VERIFICATION: "True" # Does the user have to confirm its email by clicking a link?
|
|
|
|
# --- EXTERNAL API CONFIG ---
|
|
# HCAPTCHA_KEY: "HCAPTCHA_PRIVATE_KEY"
|
|
# PIXABAY_API_KEY: "" # Get it from here: https://pixabay.com/api/docs/
|
|
# RECAPTCHA_KEY: "" Get it from Google for the Captcha.
|
|
|
|
# -- STORAGE CONFIG ---
|
|
STORAGE_BACKEND: "local" # Could also be s3
|
|
STORAGE_PATH: "/app/data" # When s3 is used, this isn't needed.
|
|
# If STORAGE_BACKEND is "s3"
|
|
#S3_ACCESS_KEY: "YOUR_ACCESS_KEY"
|
|
#S3_SECRET_KEY: "YOUR_SECRET_KEY"
|
|
#S3_BASE_URL: "YOUR_S3_BASE_URL"
|
|
|
|
# --- GOOGLE_AUTH ---
|
|
#GOOGLE_CLIENT_ID: "" # Your Google-Client ID, or leave it unset if you don't want it.
|
|
#GOOGLE_CLIENT_SECRET: "" # Your Google-Client Secret, or leave it unset if you don't want it.
|
|
|
|
# --- GITHUB_AUTH ---
|
|
#GITHUB_CLIENT_ID: "" # Your GitHub-Client ID, or leave it unset if you don't want it.
|
|
#GITHUB_CLIENT_SECRET: "" # Your GitHub-Client Secret, or leave it unset if you don't want it.
|
|
|
|
# --- Custom OpenID ---
|
|
#CUSTOM_OPENID_PROVIDER__CLIENT_ID: "" # Adjust if needed
|
|
#CUSTOM_OPENID_PROVIDER__CLIENT_SECRET: "" # Adjust if needed
|
|
#CUSTOM_OPENID_PROVIDER__SERVER_METADATA_URL: "/.well-known/openid-configuration" # Adjust if needed
|
|
|
|
volumes: # Only needed if you chose the "local" storage-backend
|
|
- ./uploads:/var/storage
|
|
|
|
redis:
|
|
image: redis:alpine
|
|
restart: always
|
|
healthcheck:
|
|
test: [ "CMD", "redis-cli","ping" ]
|
|
|
|
db:
|
|
image: postgres:14-alpine
|
|
restart: always
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
environment:
|
|
POSTGRES_PASSWORD: "classquiz"
|
|
POSTGRES_DB: "classquiz"
|
|
volumes:
|
|
- data:/var/lib/postgresql/data
|
|
proxy:
|
|
image: caddy:alpine
|
|
restart: always
|
|
volumes:
|
|
- ./Caddyfile-docker:/etc/caddy/Caddyfile
|
|
ports:
|
|
- "8000:8080" # The 8000 can be changed.
|
|
meilisearch:
|
|
image: getmeili/meilisearch:v0.28.0
|
|
restart: always
|
|
environment:
|
|
MEILI_NO_ANALYTICS: true
|
|
volumes:
|
|
- meilisearch-data:/data.ms
|
|
worker:
|
|
build: *build_cfg
|
|
environment: *env_vars
|
|
depends_on: *depends
|
|
restart: *restart
|
|
command: arq classquiz.worker.WorkerSettings
|
|
|
|
|
|
volumes:
|
|
data:
|
|
meilisearch-data:
|