An agent you build only serves customers if it runs somewhere reliably. Dawell Service's server infrastructure is a well-equipped workshop that runs many projects independently on one server, attaches domains and HTTPS automatically, and protects customer assets with 3-layer backups.
Assembling the skeleton and parts, and rolling out the finished car, all happen in the garage. Dawell Service's server infrastructure has multiple work bays for working on several cars (projects) at once, and the moment a car ships it automatically gets a license plate (domain) and safety gear (HTTPS · backups).
Each project gets its own runtime environment, database, and port. To the outside, only an HTTPS gateway is open.
Running many projects surfaces the same patterns, the same bugs, and useful new utilities over and over. Instead of burying them in individual projects, we fold them into standarda-core & template so the next project inherits them directly.
Running many projects reveals the same patterns, bugs, and useful utilities over and over.
Merge into standarda-core & template after PR · review. core flows back to the skeleton via a version tag, template via sync-to, and the changelog is recorded in the team wiki.
New projects inherit the latest skeleton via cookiecutter; existing projects selectively adopt via sync-from and tag bumps.
Improvements spread everywhere, making the next development faster — the more projects there are, the better the foundation gets.
Lessons don't get trapped on individual servers — they're absorbed into the shared foundation (core · template), so the whole team shares the same improvement.
We've automated as much of the day-to-day operations — standing servers up, keeping them safe, cleaning them up — as possible. The more people step out of the repetitive work, the fewer the mistakes, and the more stably customer services run.
The whole process, from address registration to secure access, is auto-configured by one command. (Idempotent by design — safe to re-run.)
Auto-creates the <project>-dev.popupstudio.ai domain record and confirms propagation.
Apache sets up the reverse proxy that connects that address to the project.
Auto-issues a Let's Encrypt HTTPS certificate — secure access from the start.
Validates and assigns a port, and auto-records it in the server ledger.
So a service, once stood up, maintains, protects, and cleans up after itself, the following run automatically on a set schedule.
HTTPS certificates for every domain are checked and renewed automatically each day — no service drops from an expiry.
Both servers perform OS security updates and reboots fully unattended at a set early-morning hour each week.
Deploys follow a set procedure: apply code → migrate → restart → health check. Anything off auto-aborts, and who deployed is tracked.
A dedicated tool cross-checks and reclaims leftover resources — DB, certificates, DNS, ports — left by deleted projects, keeping the server clean.
The dev server auto-switches its spec to match work hours and off-hours, managing performance and cost at once.
Doc changes automatically create review issues, and dev activity logs are periodically compiled automatically, leaving an always-transparent record.
* On top of the always-on unattended automation, backup recovery is regularly tested with actual restores to verify it (see Backups below).
We leave backups at different layers automatically every day. We roll back with the fastest method for the scope of the failure.
An image capturing the whole server is created automatically every day (7-day retention). Worst case, restore the whole thing to a new server.
Per-volume disk snapshots are included in the image, so you can roll back at the storage-volume level.
Each project's DB is dumped automatically every day (7-day retention). Restore just the data individually in minutes.
Having a backup and actually recovering from that backup are two different things. We verify the latter regularly.
So they're upheld without special effort, we've built security, isolation, and maintenance into the infrastructure by default.
The dev server where experiments come and go and the production server customers actually use are run on separate machines.
The production server's disk (volume) is encrypted, so stored customer data stays unreadable even if physically leaked.
Service ports aren't exposed externally — only on the internal network (VPC); external traffic goes solely through the HTTPS gateway. Cloud metadata access is blocked too (IMDSv2).
OS security updates and reboots run automatically at a set weekly time — separated from the backup window to stay current safely.
Sensitive data like customer API keys and Google credentials is kept apart from source code, only in the server's protected configuration, and never committed to the repository.
Production services run in per-owner isolated spaces and accounts, so who deployed or changed what is tracked.