-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Currently we share 1 environment & database for dev & staging.
The dev environment should auto-deploy the frontend & backend from the main branch
The staging environment should auto-deploy from a release
Production should be manually triggered, but only from a release that was tested on staging
Demo environment should mirror production (but with a set of demo data)
releases are tags in GitHub
releases are deployment by merging into a deployment branch
deployment/antenna.insectai.org
deployment/demo.antenna.insectai.org
deployment/app.preview.insectai.org
Estimate: 5 days
Calendar time: 2 weeks
Task set 0
- Write up provisioning plan for servers, object store & databases on Arbutus & Beluga clouds
- Setup production database & read replica
- Configure Netlify for frontend
- Provision demo.insectai.org
Task set 1
- Provision all resources based on plan
- Setup URLs & SSL certs (app.insectai.org)
Task set 2
- Setup project in our shared TeamCity instance, or try GitHub actions for everything
- Setup production & staging to auto-deploy from release tags on main (TeamCity & Netlify rules)
- Setup dev to auto-deploy from any merge to main (backend, front-end does this already via Netlify)
- Build containers on TeamCity in build job, publish to Docker hub account
Task set 3
- Configure backup tasks in TeamCity or Github actions & test restores
Optional or future todos
- Setup VPN between Arbutus & Beluga (try TailScale or WireGuard)
https://docs.netlify.com/configure-builds/build-hooks/
See additional todos here
https://docs.google.com/spreadsheets/d/1BytqZZ49ub1cqtQ9xbytAIryc90EZ1OXiUCWHdrBvgs/edit?gid=0#gid=0