# Progression deployment This deployment pulls the published container from the Gitea registry. No repository checkout or local image build is required on the server. 1. Copy `.env.example` to `.env` and change `PROGRESSION_ADMIN_TOKEN`. 2. Set `PROGRESSION_EXTERNAL_PORT` if port `8000` is already in use. 3. Start the service: ```sh docker compose pull docker compose up -d ``` The SQLite database and Steam Workshop files are stored in named Docker volumes and survive image upgrades. To update later, run the same two commands again. On a new deployment, the hourly refresh timer stays paused while the first full Workshop download runs. Its hard limit defaults to 12 hours and can be changed with `INITIAL_DOWNLOAD_TIMEOUT_SECONDS`. Follow the per-mod title, Workshop ID, result, and completion percentage in Dockhand or with `docker compose logs -f`. Failed batches also include SteamCMD's output tail so network, subscription, and filesystem errors are visible directly in the container log. The image does not switch Unix users at startup because some rootless and capability-restricted container hosts block `setuid`. The process remains inside the container's user namespace and writes directly to its named volumes.