Files
WeatherTool/deploy/vps/README.md
T
2026-08-20 19:52:37 +03:00

59 lines
2.0 KiB
Markdown

# 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
- App-to-database traffic: internal backend network
- Nginx-to-app/auth traffic: explicit loopback ports through a separate edge network
- 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.
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.
## 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`.