Skip to content

Container

Environment

Configuration

Snapshot how one configuration could look like. Please look in environment variable reference for a detailed reference.

Terminal window
CHORESCORE_APPLICATION_VERSION=your-deployed-version
GIN_MODE=debug
CHORESCORE_LOG_LEVEL=-1
PORT=3333
TOKEN=23051992
CHORESCORE_ORIGIN_HOST=localhost
CHORECSORE_ORIGIN_PORT=3333
CHORESCORE_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-port
CHORESCORE_REDIS_PASSWORD=your-redis-passwort
# If you want to block access and someone needs to flush the DB first.
# REDIS_RESET=1
# For feature changelog
CHORESCORE_CHANGELOGS_DIR=/tmp/changelog
CHORESCORE_API_DOCS_DIR=/tmp/api-docs
# Enables the API, require alos flag 'api_public'
CHORESCORE_API_ENABLED=1
# For feature manual
CHORESCORE_ASSETS_DIR=/tmp/ui/assets
# For UIs
CHORESCORE_UIS_DIR=/tmp/ui/
# For preconfigured template
CHORESCORE_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:
- redis
networks:
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: