(ops) Complete native production install and update flow #9
17
README.md
17
README.md
@@ -177,16 +177,27 @@ From a fresh checkout or the existing app directory:
|
|||||||
|
|
||||||
```
|
```
|
||||||
git pull
|
git pull
|
||||||
sudo scripts/install-systemd --non-interactive
|
sudo scripts/update-systemd
|
||||||
```
|
```
|
||||||
|
|
||||||
The installer preserves an existing `/etc/pobsync/pobsync.env` unless you pass `--force-env`. It refreshes the installed
|
The updater is a thin wrapper around the installer for normal production deploys. It preserves the existing
|
||||||
app, Python dependencies, migrations, static files, and restarts the systemd services so new Django code is loaded.
|
`/etc/pobsync/pobsync.env`, skips OS package installation, skips superuser creation, refreshes the installed app, updates
|
||||||
|
Python dependencies, runs migrations, collects static files, and restarts the systemd services so new Django code is
|
||||||
|
loaded.
|
||||||
|
|
||||||
|
Use the full installer again when you intentionally want to change install-time settings, install OS packages, enable
|
||||||
|
nginx, or rewrite the environment file:
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo scripts/install-systemd --non-interactive
|
||||||
|
sudo scripts/install-systemd --force-env
|
||||||
|
```
|
||||||
|
|
||||||
Then check:
|
Then check:
|
||||||
|
|
||||||
```
|
```
|
||||||
systemctl status pobsync-web pobsync-worker pobsync-scheduler
|
systemctl status pobsync-web pobsync-worker pobsync-scheduler
|
||||||
|
sudo -u pobsync pobsync-manage check
|
||||||
```
|
```
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|||||||
@@ -74,12 +74,17 @@ sudo scripts/install-systemd
|
|||||||
sudo scripts/install-systemd --non-interactive
|
sudo scripts/install-systemd --non-interactive
|
||||||
sudo scripts/install-systemd --verbose
|
sudo scripts/install-systemd --verbose
|
||||||
sudo scripts/install-systemd --create-superuser --superuser-username admin
|
sudo scripts/install-systemd --create-superuser --superuser-username admin
|
||||||
|
sudo scripts/update-systemd
|
||||||
```
|
```
|
||||||
|
|
||||||
The installer should print a short completion summary with the control panel URL, Self Check reminder, and service log
|
The installer should print a short completion summary with the control panel URL, Self Check reminder, and service log
|
||||||
commands. Keep normal output user-facing: pobsync step names with OK, FAILED, or SKIPPED. Full apt, pip, Django, and
|
commands. Keep normal output user-facing: pobsync step names with OK, FAILED, or SKIPPED. Full apt, pip, Django, and
|
||||||
systemd output belongs behind `--verbose` or in the failed step output.
|
systemd output belongs behind `--verbose` or in the failed step output.
|
||||||
|
|
||||||
|
The updater is intentionally a small wrapper around the installer for routine production deploys. It should stay
|
||||||
|
non-interactive, preserve the existing environment file, skip OS package installation, skip superuser creation, and still
|
||||||
|
run the Django/runtime refresh steps needed after a code update.
|
||||||
|
|
||||||
## Migration Helpers
|
## Migration Helpers
|
||||||
|
|
||||||
Import existing legacy YAML configs:
|
Import existing legacy YAML configs:
|
||||||
|
|||||||
41
scripts/update-systemd
Executable file
41
scripts/update-systemd
Executable file
@@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
||||||
|
|
||||||
|
show_help() {
|
||||||
|
cat <<'EOF'
|
||||||
|
Usage: sudo scripts/update-systemd [options]
|
||||||
|
|
||||||
|
Refresh an existing native pobsync systemd install from the current checkout.
|
||||||
|
|
||||||
|
This is a thin, safer update wrapper around scripts/install-systemd. It keeps
|
||||||
|
the install non-interactive, preserves the existing environment file, skips
|
||||||
|
superuser creation, and skips OS package installation by default.
|
||||||
|
|
||||||
|
Common options are forwarded to install-systemd, for example:
|
||||||
|
--source-dir PATH
|
||||||
|
--app-dir PATH
|
||||||
|
--venv-dir PATH
|
||||||
|
--env-file PATH
|
||||||
|
--service-user USER
|
||||||
|
--service-group GROUP
|
||||||
|
--install-extras mariadb
|
||||||
|
--verbose
|
||||||
|
|
||||||
|
If OS packages need to be refreshed, run scripts/install-systemd directly.
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${1:-}" in
|
||||||
|
-h|--help)
|
||||||
|
show_help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exec "$SCRIPT_DIR/install-systemd" \
|
||||||
|
--non-interactive \
|
||||||
|
--no-install-os-packages \
|
||||||
|
--no-create-superuser \
|
||||||
|
"$@"
|
||||||
Reference in New Issue
Block a user