GitRiver GitRiver
RU
Navigation

Backup

Creating, restoring, and configuring GitRiver backups

Backup management: Administration / Backup.

Creating a Backup

  1. Open Administration / Backup
  2. Select components to include:
    • Database - pg_dump (always recommended)
    • Repositories - Git bare repositories
    • Registry - Container Registry / LFS blobs
    • CI Artifacts - CI artifacts and logs
    • Sites - Pages deployments
  3. Optional: enable incremental mode (only changed files)
  4. Click “Create backup”

The backup is created asynchronously. Status is shown in the list.


Format

  • Archive: gitriver-backup-{date-time}.tar.gz
  • Metadata is saved alongside (contents, SHA256 checksum, date)

Encryption

To encrypt backups, set the environment variable:

GITRIVER_BACKUP_ENCRYPTION_KEY=<base64-AES-256-key>

Downloading

Click the “Download” button in the backup list. For security, a one-time link with a limited lifetime is generated (60 seconds by default).


Integrity Verification

The “Verify” button compares the SHA256 checksum of the archive with the one saved in the metadata.


Restoring

  1. Click “Restore” next to a backup
  2. Select the components to restore (each can be toggled individually)
  3. Confirm the action

Schedule

Automatic backup configuration: Administration / Backup / Schedule.


Troubleshooting

Setup wizard does not appear

Make sure database_url is not specified in the TOML file or environment variables. The wizard only launches when there is no database connection configured.

JWT errors after restart

The JWT secret is stored in the .jwt_secret file next to the config. If the file is deleted, all sessions become invalid.

CI jobs do not start

  1. Docker socket is accessible: -v /var/run/docker.sock:/var/run/docker.sock
  2. The gitriver user is in the docker group
  3. Check ci_max_concurrent_jobs in the configuration

Git push is rejected

  • Check branch protection (Settings / Branch Protection)
  • For LFS: set client_max_body_size in nginx (minimum 512m)