Skip to content

Replace deprecated Bullseye VM in Cloud VPS#473

Merged
jsnshrmn merged 3 commits into
masterfrom
Jsn.sherman/T402055
Jul 17, 2026
Merged

Replace deprecated Bullseye VM in Cloud VPS#473
jsnshrmn merged 3 commits into
masterfrom
Jsn.sherman/T402055

Conversation

@jsnshrmn

Copy link
Copy Markdown
Member

Description

Replace deprecated Bullseye VM in Cloud VPS:

  • Adopt CloudVPS Compose Deploy for deploy automation + conventionalization
  • Add repo-level Claude prompt for convenience

Rationale

We need to migrate this app to a new VM. Every VM needs replaced every few years, and our fleet is growing. Using this share deploy toolkit dramatically reduces the risk and effort involved with these via automation and conventions. Same thing with adding Claude config. We're doing almost the same thing with every VM migration, and Claude is able to tackle the required changes with review.

Phabricator Ticket

T402055

How Has This Been Tested?

There are no app level changes to test here. I have added a config smoke test for the image publishing step ins ci, but otherwise, deployment is the test

Screenshots of your changes (if appropriate):

Types of changes

What types of changes does your code introduce? Add an x in all the boxes that apply:

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

jsnshrmn added 3 commits July 16, 2026 17:20
Orients Claude Code on the Django layout, the domain model, the current
Docker Swarm deployment, and the in-flight move to the CloudVPS Compose
Deploy toolkit under T402055. Every concrete claim was validated against
the code, the project wiki, and Phabricator before writing; the
deployment section points at the toolkit contract so changes favor the
migration rather than the swarm-era setup.

Assisted-by: Claude Opus 4.8
Prepares the repo for the CloudVPS Compose Deploy toolkit (rootless
docker compose) that replaces the Bullseye swarm VM; master is the
deploy branch.

Compose files:

- Publish only nginx to the host everywhere; drop the dev-only host
  publishes on externallinks, db, and cache. The app is reached through
  nginx, and ad-hoc service access goes through docker compose exec
- Add docker-compose.deploy.yml carrying the production-runtime concerns
  the base omits for dev, currently a restart policy on every service.
  The toolkit selects it via COMPOSE_FILE and pulls prebuilt images,
  since the base already declares image: on every service

Toolkit contract:

- Add conf/crontab with the redeploy tick and the toolkit's envsubst
  placeholders; the app's own jobs stay in-container off ./crontab
- Repoint the HOST_BACKUP_DIR guidance in template.env at the toolkit's
  backup mount

CI:

- Validate the base + deploy-overlay merge the toolkit runs, which the
  existing build-and-test job never exercises

Assisted-by: Claude Opus 4.8
Bug: T402055
The compose-deploy config is now in, so the swarm-is-current framing in
the deployment section is stale.

Assisted-by: Claude Opus 4.8
Bug: T402055
@jsnshrmn
jsnshrmn merged commit 96c4bfb into master Jul 17, 2026
3 checks passed
@jsnshrmn
jsnshrmn deleted the Jsn.sherman/T402055 branch July 17, 2026 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant