A web application to manage Secret Santa gift exchanges with automated assignments and message sharing
Due to the assignment restrictions (no repeat assignments from previous 2 years), there is a minimum required number of participants for the system to work effectively. For smaller groups, the code must be modified to get good results
Create a file named .env
in the instance
directory with the following variables:
Setup varies depending how you want to host the application. Example below for a docker-compose that can be used and for hosting it on an unraid NAS.
The network br0
is used if you want to use a reverse proxy (npm for example) and host the application on unraid.
Normally not needed
services:
app:
image: python:3.12-slim
container_name: secret_santa
working_dir: /app
volumes:
- /mnt/user/appdata/secret-santa:/app
command: sh -c "pip install --no-cache-dir -r requirements.txt && python app.py"
build:
context: /mnt/user/appdata/secret-santa
dockerfile: Dockerfile
networks:
- br0
networks:
br0:
external: true
Create a instance/.env
file with the following structure:
SECRET_KEY=secret_key (16 characters)
ADMIN_NAME=admin_name
ADMIN_PASSWORD=password
FLASK_RUN_PORT=your_port (default for flask is 5000)
FLASK_ENV=production (or development, testing)
FLASK_DEBUG=0 (or 1 to enable debugging)
Change the config/logging_config.yaml
file if needed