docker-1: enlarge the Docker address pool before the production stack #37

Open
opened 2026-10-19 02:50:23 +00:00 by spencerm · 3 comments
Owner

Docker's default pool on docker-1 holds fifteen /16 bridge networks. Ten are used; each Packet Station stack takes two, the Gitea runner one per job, the CI e2e stack two. The pool ran out on 2026-10-17 and every CI e2e job failed until idle networks were removed.

To do (needs sudo and a Docker restart, a short outage for every stack): add to /etc/docker/daemon.json {"default-address-pools":[{"base":"10.200.0.0/16","size":24}]}, restart Docker. Details in docs/DEPLOY.md.


Plan reference: OPS1 in docs/PLAN.md (open questions). Answer here; the build takes the default until then.

Docker's default pool on docker-1 holds fifteen /16 bridge networks. Ten are used; each Packet Station stack takes two, the Gitea runner one per job, the CI e2e stack two. The pool ran out on 2026-10-17 and every CI e2e job failed until idle networks were removed. **To do (needs sudo and a Docker restart, a short outage for every stack):** add to /etc/docker/daemon.json `{"default-address-pools":[{"base":"10.200.0.0/16","size":24}]}`, restart Docker. Details in docs/DEPLOY.md. --- Plan reference: OPS1 in [docs/PLAN.md](https://gt.pescoinc.biz/spencerm/PacketStation/src/branch/main/docs/PLAN.md) (open questions). Answer here; the build takes the default until then.
spencerm added the productiondecision: IT labels 2026-10-19 02:50:23 +00:00
Author
Owner

I've given this some thought, and I think we will move the production system to run on its own Linux VM instead of in a docker container.

I've given this some thought, and I think we will move the production system to run on its own Linux VM instead of in a docker container.
Author
Owner

Recorded in docs/PLAN.md, docs/DEPLOY.md and CLAUDE.md (PR 51): production runs natively on its own Linux VM (systemd services for the app and the worker, PostgreSQL 16 on the VM, no Docker). The test stack and CI stay on docker-1. Phase 10 builds the VM deploy, backups and doctor. The production folder question on issue 38 no longer applies.

Details still needed before phase 10:

  1. The VM's host name and address, and who builds it.
  2. The OS. Debian 12 matches the image, so the ODBC driver and OpenSSL behave the same as in test.
  3. How NPM on docker-1 reaches the VM: plain HTTP on the LAN, or TLS to the VM.
  4. CPU, memory and disk for the VM, and where its backups go (the QNAP share as well?).

The address pool fix above is still worth doing for test plus CI, but no longer blocks production.

Recorded in docs/PLAN.md, docs/DEPLOY.md and CLAUDE.md (PR 51): production runs natively on its own Linux VM (systemd services for the app and the worker, PostgreSQL 16 on the VM, no Docker). The test stack and CI stay on docker-1. Phase 10 builds the VM deploy, backups and doctor. The production folder question on issue 38 no longer applies. Details still needed before phase 10: 1. The VM's host name and address, and who builds it. 2. The OS. Debian 12 matches the image, so the ODBC driver and OpenSSL behave the same as in test. 3. How NPM on docker-1 reaches the VM: plain HTTP on the LAN, or TLS to the VM. 4. CPU, memory and disk for the VM, and where its backups go (the QNAP share as well?). The address pool fix above is still worth doing for test plus CI, but no longer blocks production.
Author
Owner

Update: test moves to its own VM as well, built natively the same way as production, so test rehearses the production install, backups, restore and doctor before go-live. docker-1 keeps CI only (the Gitea runner and the CI e2e stack). The docker-1 test stack keeps running until the test VM is ready. Recorded in docs/PLAN.md, docs/DEPLOY.md and CLAUDE.md (PR 51).

The questions above now apply to both VMs: name and address, OS, who builds them, size (test can be smaller, about 2 vCPU, 4 GB, 40 GB), and how NPM reaches them.

Update: test moves to its own VM as well, built natively the same way as production, so test rehearses the production install, backups, restore and doctor before go-live. docker-1 keeps CI only (the Gitea runner and the CI e2e stack). The docker-1 test stack keeps running until the test VM is ready. Recorded in docs/PLAN.md, docs/DEPLOY.md and CLAUDE.md (PR 51). The questions above now apply to both VMs: name and address, OS, who builds them, size (test can be smaller, about 2 vCPU, 4 GB, 40 GB), and how NPM reaches them.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: spencerm/PacketStation#37