# Deployment Production is on heaviside.emfcamp.org. ## First install This is done after each event, following a clear of the database: docker compose -f ./docker-compose.environment.yml up -d docker compose -f ./docker-compose.environment.yml exec app uv run flask db upgrade docker compose -f ./docker-compose.environment.yml exec app uv run flask create_perms docker compose -f ./docker-compose.environment.yml exec app uv run flask cfp create_venues docker compose -f ./docker-compose.environment.yml exec app uv run flask cfp create_tags Periodic tasks need to be triggered by calling `flask periodic` - this can be done in the root crontab: */2 * * * * /srv/docker/Website/docker-compose exec app uv run flask periodic > /dev/null 2>&1 ## Deployments Deployments run automatically when a new container is built by Github Actions and pushed to Github Container Registry. This is done using [Watchtower](https://containrrr.dev/watchtower/). If there are any DB migrations which need to be applied, you still need to manually run: docker compose -f /root/Website/docker-compose.prod.yml exec app uv run flask db upgrade or, if the app won't start: docker compose -f /root/Website/docker-compose.prod.yml run --rm --entrypoint=uv app run flask db upgrade ## Admin Commands Admin commands can be listed with: docker-compose -f /root/Website/docker-compose.prod.yml exec app uv run flask