Files
WeatherTool/deploy/vps/README.md
T

57 lines
1.8 KiB
Markdown
Raw Normal View History

2026-08-20 19:22:03 +03:00
# WeatherTool VPS deployment bundle
This directory contains the reviewed templates for the temporary UAT deployment.
It is intentionally separate from the Rocky development Compose project.
## Boundaries
- Compose project: `weathertool-uat`
- WeatherTool host binding: `127.0.0.1:8002`
- Authelia host binding: `127.0.0.1:9091`
- PostgreSQL: private Docker network only; no host port
- Scheduled provider jobs: disabled
- Existing VPS applications, networks, volumes, and Nginx sites: untouched
The committed configuration contains no live password, password hash, or
cryptographic secret. Runtime material belongs only under `/srv/weathertool`.
## Runtime layout
Copy the committed bundle into `/srv/weathertool`, then create these untracked
paths before the first start:
```text
/srv/weathertool/
.env.staging
compose.yml
config/authelia/configuration.yml
config/authelia/users_database.yml
data/authelia/
data/postgres/
secrets/jwt_secret
secrets/session_secret
secrets/storage_encryption_key
```
The Nginx files remain examples until the domain, Cloudflare origin certificate,
trusted client-address configuration, and private upstream tests are complete.
Do not enable the virtual host merely because the containers start successfully.
2026-08-20 19:33:36 +03:00
WeatherTool application scratch files are intentionally ephemeral in a
non-executable in-memory `/app/data` filesystem. PostgreSQL is the durable
application data store; Authelia and PostgreSQL state use dedicated bind paths.
2026-08-20 19:22:03 +03:00
## Release image
Build the exact committed revision on Rocky:
```bash
git archive HEAD | docker build \
-f deploy/vps/Dockerfile \
-t "weathertool:$(git rev-parse HEAD)" -
```
Export the image, calculate its SHA-256 checksum, transfer both files, verify the
checksum on the VPS, and only then load it. The detailed operator sequence is in
`docs/VPS_STAGING_PLAN.md`.