Container
Environment
Configuration
Snapshot how one configuration could look like. Please look in environment variable reference for a detailed reference.
CHORESCORE_APPLICATION_VERSION=your-deployed-versionGIN_MODE=debugCHORESCORE_LOG_LEVEL=-1PORT=3333TOKEN=23051992CHORESCORE_ORIGIN_HOST=localhostCHORECSORE_ORIGIN_PORT=3333CHORESCORE_INITIAL_TOKEN=your-admin-token# For feature encrypt# CHORESCORE_SALT_KEY=thisis32bitlongpassphraseimusing# Setup PHASE# CHORESCORE_INITIAL_ACCESS_TIME=2m# CHORESCORE_SERVER_STATUS="{\"title\":\"Checkbox Task Search\",\"level\":\"warn\",\"msg\":\"The task query in the 'create team' modal has issue.'\"}"# CHORESCORE_THEME_STATUS="{\"theme\":\"Eastern\",\"startsAt\":\"2024-03-27\",\"endsAt\":\"2024-04-02\", \"icons\": [ \"list_task\",\"house\",\"house-check\",\"people\"],\"use\":\"egg-fill\"}"CHORESCORE_REDIS_ADDR=internal-container-host-addr:internal-exposed-portCHORESCORE_REDIS_PASSWORD=your-redis-passwort# If you want to block access and someone needs to flush the DB first.# REDIS_RESET=1# For feature changelogCHORESCORE_CHANGELOGS_DIR=/tmp/changelogCHORESCORE_API_DOCS_DIR=/tmp/api-docs# Enables the API, require alos flag 'api_public'CHORESCORE_API_ENABLED=1# For feature manualCHORESCORE_ASSETS_DIR=/tmp/ui/assets# For UIsCHORESCORE_UIS_DIR=/tmp/ui/# For preconfigured templateCHORESCORE_DATA_TEMPLATE_DIR=/tmp/data-templates# Not implemetend# CHORESCORE_API_ENABLED=false# with feature cookie+basic_auth# CHORESCORE_BASIC_USER=basic-user# CHORESCOER_BASIC_USER_PW=1234# If you want to block access and someone needs to flush the DB first.# - REDIS_RESET=1# For feature encrypt# - CHORESCORE_SALT_KEY=thisis32bitlongpassphraseimusing
Backend
services: chorescore: image: git.confusedoncoffee.com/confusedoncoffee/chorescore-one:latest env_file: - ./deploy.env environment: - CHORESCORE_GIN_MODE=debug - CHORESCORE_LOG_LEVEL=-1 - CHORESCORE_APPLICATION_VERSION=${CHORESCORE_APPLICATION_VERSION} - CHORESCORE_ORIGIN_HOST=localhost # - CHORESCORE_SECURE_HOST=1 - CHORESCORE_ORIGIN_PORT=${PORT} - CHORESCORE_INITIAL_TOKEN=${TOKEN} # Setup PHASE # - CHORESCORE_INITIAL_ACCESS_TIME=2m # - CHORESCORE_SERVER_STATUS="{\"title\":\"Checkbox Task Search\",\"level\":\"warn\",\"msg\":\"The task query in the 'create team' modal has issue.'\"}" # - CHORESCORE_THEME_STATUS="{\"theme\":\"Eastern\",\"startsAt\":\"2024-03-27\",\"endsAt\":\"2024-04-02\", \"icons\": [ \"list_task\",\"house\",\"house-check\",\"people\"],\"use\":\"egg-fill\"}" - CHORESCORE_ORIGIN_HOST=localhost - CHORECSORE_ORIGIN_PORT=3333 # For feature changelog #- CHORESCORE_CHANGELOGS_DIR=/tmp/changelog # For feature manual #- CHORESCORE_ASSETS_DIR=/tmp/ui/assets # For feature ui #- CHORESCORE_UIS_DIR=/tmp/ui # For preconfigured template #- CHORESCORE_DATA_TEMPLATE_DIR=/tmp/data-templates # For feature api_ui #- CHORESCORE_API_DOCS_DIR=/tmp/api-docs #- CHORESCORE_API_TEMPLATE_DIR=/tmp/templates/developer - CHORESCORE_PUBLIC_API_ENABLED=1 # with feature cookie+basic_auth # - CHORESCORE_BASIC_USER=basic-user # - CHORESCOER_BASIC_USER_PW=1234 - CHORESCORE_ADMIN_USER=your-initial-admin - CHORESCORE_ADMIN_CODE=your-initial-admin-code - CHORESCORE_ADMIN_USER=moderator - CHORESCORE_ADMIN_CODE=2025 # Expose for testing # ports: # - 3333:3000 # Change entrypoint with extra stuff. # entrypoint: # - "./chorescore" # - "server" # - "-a" # - "-s" // with TLS # Manual listing of all features # entrypoint: # - "./chorescore" # - "server" # - "admin,auth,analytics,awards,changelog,competitions,docs,assets,manual,features,health,issues,manual,rules,search,tasks,teams,themes,ui,users" # Flush redis via server cli # entrypoint: # - "./chorescore" # - "redis" # - "flush" # Mount changelog if you want extra information # volumes: # - ./changelog:/tmp/changelog # - ./manual-pages:/tmp/ui/assets/manual depends_on: - redis networks: - redis redis: image: docker.io/redis hostname: redis expose: - 6379 volumes: - ./redis:/data entrypoint: ["redis-server", "--save", "60", "1", "--loglevel", "warning"] networks: - redisnetworks: redis:
Nginx
Server configuration:
server { listen 4444 ssl http2; listen [::]:4444 ssl http2; ssl_certificate ${SSL_CERTIFICATE_LOCATION}; ssl_certificate_key ${SSL_CERTIFICATE_LOCATION_KEY}; include /etc/nginx/mime.types; server_name ${SERVER_NAME}; # listen 443; # listen [::]:443; # auth_basic "Chorescore 2024"; # auth_basic_user_file /etc/apache2/.httpasswd-chorescore; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1.2; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; ssl_prefer_server_ciphers on; location / { proxy_pass http://${PROXY_HOST}:${PROXY_PORT}; proxy_redirect / $http_host/ui/; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Host $http_host; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 2m; client_body_buffer_size 64k; proxy_connect_timeout 30; proxy_send_timeout 30; proxy_read_timeout 30; proxy_buffers 8 4k; } }
services: fe: image: confusedoncoffee/chorescore-fe:prod ports: - 8666:8080 environment: - SERVER_NAME=localhost - SERVER_EXTERNAL_PORT=8666 - PROXY_HOST=chorescore - PROXY_PORT=3000 command: [nginx, "-g", "daemon off;"] depends_on: - chorescore networks: - redis
networks: redis: