Skip to content

Running and updating

Zachary Le edited this page Oct 14, 2026 · 3 revisions

Running and updating

The image is built by GitHub Actions and published as ghcr.io/zle3/nyerk:latest; your server only needs compose.yaml.

  • Update: click Update in Dockge, or docker compose pull && docker compose up -d. To update automatically, add a cron job on the server (crontab -e); it only restarts Nyerk when there's a new image:
    */15 * * * * cd /opt/stacks/nyerk && docker compose pull -q && docker compose up -d
    
  • Roll back or pin a version: set NYERK_IMAGE=ghcr.io/zle3/nyerk:sha-abc1234 (or a weekly-YYYYMMDD tag) in the env and deploy.
  • Database upgrades: some updates change how the database is laid out (the latest, version 3, came with shared party finders). The first start after one keeps a copy from just before as data/nyerk-before-vN.db. An older version can't read an upgraded database, so to roll back past an upgrade, stop the stack and copy that file over data/nyerk.db as well; changes made since are lost. Delete the copies once you're happy.
  • Your data lives in the data/ folder next to compose.yaml: the database, nightly backups (04:00 server time, last 14 kept, BACKUP_KEEP), logs (deleted after 14 days, LOG_KEEP_DAYS) and the web page's certificate. Back up by copying that folder.
  • Restoring a backup: stop the stack, copy a file from data/backups/ over data/nyerk.db, start it again. Keep data/forgotten.json: members erased with Forget this member in the last 14 days are erased again from the restored copy on start.
  • Data folder permissions: on start the container hands data/ to PUID:PGID (default 1000:1000) and stops running as root. If that can't work (an NFS/SMB share, SELinux, or ownership changes ignored), it logs a nyerk-entrypoint: line saying why and runs as root instead of failing. To fix it, keep data/ on a local disk or run chown -R 1000:1000 data on the host; on SELinux hosts (Fedora, RHEL, Rocky) change the volume to ./data:/data:z.
  • Forgot the password? Add NYERK_RESET_PASSWORD=1 and a new ADMIN_PASSWORD to the env, deploy, then remove NYERK_RESET_PASSWORD.
  • Private fork? A private repo makes the image private too: create a GitHub token (classic) with only read:packages and run docker login ghcr.io once on the server.
  • Build from source instead:
    cp .env.example .env        # fill in DISCORD_TOKEN, GUILD_ID, ADMIN_PASSWORD
    docker compose -f compose.build.yaml up -d --build

Clone this wiki locally