# FromChat Updater Watches GitHub **tags** and **container packages** for backend + frontend repos. When a newer semver tag exists in both and all required `fromchat/*` images are published, regenerates `compose.yml` (via the deployment merge script) and restarts the stack. ## Environment (`.env`) | Variable | Description | |----------|-------------| | `GITHUB_TOKEN` | PAT with `read:packages` + `repo` | | `BACKEND_REPO` | e.g. `https://github.com/fromchat-messenger/backend.git` | | `WEB_REPO` | e.g. `https://github.com/fromchat-messenger/web.git` | | `DEPLOYMENT_REPO` | `https://github.com/fromchat-messenger/app.git` (deployment scripts) | | `DEPLOYMENT_REPO` | Deployment repo for `generate-compose.py` | | `COMPOSE_PROJECT_DIR` | Host path to the stack (`compose.yml` parent directory) | | `FROMCHAT_COMPONENTS` | Comma list: `backend,frontend,caddy,updater` | | `CHECK_INTERVAL_SECONDS` | Poll interval (default `60`) | Only `compose.yml` from the stack directory is mounted into the updater container (read-write at `/fromchat/compose.yml`). The current release is read from image tags inside that file. Create token: [GitHub PAT (read:packages + repo)](https://github.com/settings/tokens/new?description=FromChat%20Updater&scopes=read:packages,repo) ## Run standalone ```bash cd ~/fromchat-server/updater docker compose --env-file .env up -d ``` The installer sets this up automatically when **updater** is selected.