(ops) Complete native production install and update flow #9

Merged
parkel merged 5 commits from issue-1-production-install-update into master 2026-05-20 01:50:23 +02:00
Owner

Complete production install and update flow

This finishes the native systemd production workflow for pobsync.

Changes include:

  • add pobsync-manage, a production-safe Django management wrapper that loads the installed env file
  • add scripts/update-systemd for quiet, repeatable routine updates
  • remove the obsolete source-copy deploy script
  • add terminal self checks via check_pobsync_install
  • extend Self Check with native install diagnostics for env file, service user, backup root ownership, SQLite path, services, and journal access
  • document install, update, restart, rollback, log inspection, and production management commands

Validation:

  • shell syntax checks for installer/update/wrapper scripts
  • full Django backend test suite passes: 150 tests
  • Docker dev stack rebuilt and left healthy on port 8010
Complete production install and update flow This finishes the native systemd production workflow for pobsync. Changes include: - add pobsync-manage, a production-safe Django management wrapper that loads the installed env file - add scripts/update-systemd for quiet, repeatable routine updates - remove the obsolete source-copy deploy script - add terminal self checks via check_pobsync_install - extend Self Check with native install diagnostics for env file, service user, backup root ownership, SQLite path, services, and journal access - document install, update, restart, rollback, log inspection, and production management commands Validation: - shell syntax checks for installer/update/wrapper scripts - full Django backend test suite passes: 150 tests - Docker dev stack rebuilt and left healthy on port 8010
parkel added this to the 1.0 milestone 2026-05-20 01:46:40 +02:00
parkel self-assigned this 2026-05-20 01:46:40 +02:00
parkel added 5 commits 2026-05-20 01:46:40 +02:00
Add a pobsync-manage wrapper that loads the native environment file before
running Django management commands, so production commands use the same
database and runtime settings as the systemd services.

Install the wrapper from the systemd installer, use it for migrations,
static collection, SSH key setup, and superuser creation, and document it
in the README for operational commands.
Add scripts/update-systemd as a safer routine deploy entrypoint for native
systemd installations. The wrapper keeps updates non-interactive, preserves the
existing environment file, skips OS package installation, and avoids superuser
creation prompts while still reusing the installer refresh flow.

Document the update path in the README and capture the maintenance expectation
in the development notes.
Delete the old scripts/deploy path that installed pobsync into /opt/pobsync/lib
with a standalone /opt/pobsync/bin wrapper.

Production deployment is now owned by the native systemd installer and updater,
so keeping the legacy deploy script would make the supported install story less
clear and easier to misuse.
Add check_pobsync_install so native deployments can run the same runtime
diagnostics from the terminal that are available in the Django Self Check view.

The command prints every check with status, returns a failing exit code when
install-critical checks fail, supports fail-on-warning for stricter automation,
and is documented in the installer output and README update flow.
Extend the runtime self check with native install diagnostics for the
environment file, service user, backup root ownership, and SQLite database
path. Export install metadata from the systemd units and pobsync-manage wrapper
so custom env files and service users are visible to Django checks.

Document restart, journal log inspection, and rollback steps in the README so
production updates have a clear recovery path.
Author
Owner

This pull request closes #1

This pull request closes #1
parkel merged commit d8c0ee5d1e into master 2026-05-20 01:50:23 +02:00
parkel deleted branch issue-1-production-install-update 2026-05-20 01:50:23 +02:00
Sign in to join this conversation.