3.2 KiB
3.2 KiB
Project Mycelium Ops Method
Introduction
We present simple CLI tools to deploy the Project Mycelium.
Tools
You can use quick utility tools gits from ucli and pal from scottyeager (see https://github.com/ucli-tools, https://github.com/scottyeager/pal)
- When any step is confirmed to work, save as version management control
git add . && pal /commit --yolo && git push
- To push as a PR when many commits create a whole step/task in the roadmap/todo
gits pr create --title 'Update' --base development && gits pr merge --pr-number $(gits pr-latest)
- To update the website from e.g. development using Makefile
make update-dev
- This will ssh into the server hosting the marketplace on dev and prod (dev.threefold.pro, threefold.pro)
Prerequisites
- git, make
- Docker or Podman (if containerizing locally)
- SSH access to deployment hosts (dev/prod)
- kubectl/helm if deploying to Kubernetes
- Config/secrets available (Stripe keys, PostgREST endpoint, DB credentials)
Environments
- Dev: dev.threefold.pro
- Prod: threefold.pro
Configuration
- Environment variables (examples):
- STRIPE_SECRET_KEY, STRIPE_PUBLISHABLE_KEY
- POSTGREST_URL
- DATABASE_URL or connection parameters
- APP_ENV (development|production)
- Provide via .env files, system service env files, or Kubernetes Secrets as appropriate.
Deployment Flows
- Local
- Build/run the app locally; verify basic UI and flows.
- Dev
- Use:
make update-dev
(as provided above) - Verify deployment (see Verification)
- Use:
- Prod
- Follow the same deployment pattern as dev against prod host or use corresponding prod target if defined.
Verification
- Health: open the site on the target environment (dev.threefold.pro or threefold.pro)
- Basic smoke:
- Load homepage and key pages
- Add item to cart
- Run a test checkout with Stripe test keys (on dev)
Rollback
- Identify last known good commit/tag
- Revert:
git revert <commit>
or checkout the tag/commit - Redeploy using the same steps (e.g.,
make update-dev
)
Operations
- Logs: inspect application/server logs on target hosts; if running on Kubernetes, use
kubectl logs
- Monitoring: confirm metrics/alerts if configured
- Backups: ensure regular DB and config backups and test restore procedures
Troubleshooting
- Missing/incorrect env vars → verify configuration section
- SSH failures → validate keys and host reachability
- Stripe errors → confirm test vs live keys per environment
Standard git equivalents
- Save work (equivalent to pal):
git add -A && git commit -m "<message>" && git push
- Create a PR: push your branch and open a PR on your Git hosting provider targeting
development
(or relevant branch)
Checklists
- Pre-deploy: correct branch, env config present, backup taken (if needed)
- Post-deploy: site loads, smoke tests pass, logs clean of new errors
References
- Dev design method:
../../../dev/method/current/design_method.md
- DevOps overview:
../../../devops.md
- Architecture & Roadmap:
../../../dev/design/current/projectmycelium-roadmap.md
flowchart LR
Local[Local] --> Dev[Dev]
Dev --> Prod[Prod]
Dev -. smoke/verify .-> Dev
Prod -. checks .-> Prod