Skip to main content

Operations and Backups

Operational baseline

Even at an early project stage, the following operational practices should exist:

  • reproducible service startup;
  • database backup procedure;
  • log access for troubleshooting;
  • environment-specific configuration separation;
  • defined ownership of deployment credentials.

Database backup strategy

The PostgreSQL database stores project-domain data and history. It should be backed up regularly even if the project is still in active development.

  • daily logical backup with pg_dump;
  • retention of multiple backup generations;
  • a restore test performed periodically;
  • backups stored outside the main VM when possible.

Example backup command

pg_dump -U makerlab_app -h localhost -d makerlab -F c -f makerlab_$(date +%F).dump

Example restore command

pg_restore -U makerlab_app -h localhost -d makerlab_restored --clean --if-exists makerlab_2026-03-21.dump

Snipe-IT operational note

Because Snipe-IT is a separate system, its database and file-level operational procedures should be documented separately from the Maker Lab application database procedures.

Logging

At minimum, retain access to:

  • reverse proxy logs;
  • application server logs;
  • database service logs.

Monitoring priorities

For the next stages of the project, prioritize visibility over:

  • application startup and failure events;
  • database connectivity;
  • Snipe-IT API availability;
  • authentication failures;
  • background synchronization or migration jobs.

Recovery note

Backups are only useful if restore procedures are tested. A restore drill should be part of the operational checklist before production use.