0008 — aimstoreorg.com as the production domain¶
Status: accepted (2026-07-23)
Context¶
The platform previously ran on joinaimstore.com — the shipped mobile app's
host allow-list (aim-store-app/src/config/env.ts) still contains
api.joinaimstore.com and store.joinaimstore.com, and existing installs
were built against those hosts. The rebuilt platform (backend, website,
portal, docs, monitoring) needs one coherent set of hostnames on the new VPS
(200.141.2.84).
Decision¶
Consolidate production on aimstoreorg.com:
| Host | Service |
|---|---|
aimstoreorg.com, www.aimstoreorg.com |
website SPA + payment API |
api.aimstoreorg.com |
Go backend API |
admin.aimstoreorg.com |
admin portal |
docs.aimstoreorg.com |
documentation |
monitor.aimstoreorg.com |
Grafana |
All are A records to the VPS; Caddy routes by hostname and obtains
certificates automatically. The app's production defaults
(EXPO_PUBLIC_* URLs) point at the new hosts.
Consequences¶
- The app's host allow-list changes and a new app release is required — the allow-list is compiled into the bundle, so installed builds only trust what they shipped with.
- The old
joinaimstore.comhosts are kept in the allow-list for the transition, so builds made before the cutover keep working if the old DNS is pointed at the new box; they are removed once the migration is done. - Every config that names a host (Caddyfile, workflows' health checks, env
templates, this documentation) uses
aimstoreorg.comexclusively — the legacy domain appears nowhere except the app's transitional allow-list.