Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DevOps] Make it possible to deploy to DigitalOcean App Platform and Droplets #7589

Open
evereq opened this issue Feb 28, 2024 · 4 comments
Open
Assignees
Labels
type: devops DevOps related request
Milestone

Comments

@evereq evereq added the type: devops DevOps related request label Feb 28, 2024
@evereq evereq added this to the v0.9 milestone Feb 28, 2024
@evereq
Copy link
Member Author

evereq commented Feb 28, 2024

#7591

evereq added a commit that referenced this issue Feb 29, 2024
* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* Update docker-compose.api.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: Deploy API to DO App Platform (WIP)

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: Deploy to DO App Platform (WIP)

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix of Deploy to DO App Platform (WIP)

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: temporary

* chore: fix

* chore: fix

* chore: fix envsubst

* chore: fix

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* chore: fix

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* chore: by mistake :)

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* chore: fix

* chore: switch to smaller instances

* chore: show list of apps

* chore: fix

* chore: fix

* chore: add stage

* chore: fix branches

---------

Co-authored-by: geoffrey1330 <israelgeoffrey13@gmail.com>
@evereq
Copy link
Member Author

evereq commented Mar 2, 2024

Setup on Droplets

  1. Create 3 separate Droplets for each env, e.g. ever-do-demo, ever-do-stage, and ever-do-prod. Make sure each Droplet is at least 2GB RAM.
  2. Set GitHub Secrets DO_DROPLET_DEMO_HOST, DO_DROPLET_STAGE_HOST and DO_DROPLET_PROD_HOST to values of IPs of your relevant Droplets
  3. Add Droplet names to Trusted sources for Redis and PostgreSQL DB
  4. Define GitHub Secrets DO_DROPLET_USERNAME (default value in DO is root) and DO_DROPLET_KEY (use SSH Private key that used when you added public SSH Key to DO)

@evereq
Copy link
Member Author

evereq commented Mar 2, 2024

Setup on the DigitalOcean App Platform

  1. Make sure GitHub Secret DIGITALOCEAN_ACCESS_TOKEN is set to your DigitalOcean access token that has enough privileges to create/update DigitalOcean App Platform applications.
  2. Our existing GitHub actions are used to create 3 separate "Apps" in DigitalOcean, one for each environment, e.g. ever-gauzy-demo, ever-gauzy-stage and ever-gauzy-prod
  3. Check .github/workflows/deploy-do-app-platform-demo.yml, .github/workflows/deploy-do-app-platform-stage.yml and .github/workflows/deploy-do-app-platform-prod.yml
  4. Each GitHub action creates or updates a separate DO App and assigns a custom Domain name to each env (see APP_DOMAIN env var)
  5. You can define the type of instance (size) in the INSTANCE_SIZE env var (see possible values in the following link) and count in the INSTANCE_COUNT env var. We recommend using 1 instance in the demo env and at least 2 instances in the stage env. Make sure you are using a professional instance size and at least 2 instances for prod environment.
  6. Important to make sure DEMO env var is set to false for prod environment. We also recommend to set ADMIN_PASSWORD_RESET to false for production.
  7. As with any other setup of our platform, make sure API_BASE_URL is set to the URL on which you would like to have API exposed and CLIENT_BASE_URL should be set to the URL on which you will have client-side UI loaded.
  8. You can also research .do/app.yaml file that is used as a template to define the DO App Platform application. Important to note that you will have to configure services/image/registry_type ,services/image/registry, and services/image/repository to use your own DigitalOcean or DockerHub Container Registry, please refer to DO documentation about those parameters.

evereq added a commit that referenced this issue Mar 4, 2024
* refactor: optimized organization team findAll query

* fix: create and update organization team APIs

* fix: memberIds not defined

* fix: removed console

* Update Dockerfile

* #7589 - Deployment to DO Droplets / Other VMs via SSH (#7591)

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* Update docker-compose.api.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: Deploy API to DO App Platform (WIP)

* added docker-compose-api and deploy-do-droplet-demo.yml

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: Deploy to DO App Platform (WIP)

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix of Deploy to DO App Platform (WIP)

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: temporary

* chore: fix

* chore: fix

* chore: fix envsubst

* chore: fix

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* chore: fix

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* chore: by mistake :)

* added docker-compose-api and deploy-do-droplet-demo.yml

* chore: fix

* chore: fix

* chore: switch to smaller instances

* chore: show list of apps

* chore: fix

* chore: fix

* chore: add stage

* chore: fix branches

---------

Co-authored-by: geoffrey1330 <israelgeoffrey13@gmail.com>

* chore: fix

* chore: fix

* chore: fix

* chore: fix

* chore: update deployments to DO App Platform and add to README.md

* fix: #7631 | sticky smart table header

* Improve 404 Not Found page (#7634)

* fix: #7632 | redirect user to home page after 3 sec, style page

* fix: #7632 | add button so user redirect himself instead of waiting to get redirected auto

* [Refactor] Tenant / Role Permission Guard (#7644)

* fix: used direct role permission service instead of join using user

* fix: added role permission module for permission guard

* fix: added role permission module for permission guard

* fix: added role permission module for permission guard

* fix: added role permission module for permission guard

* fix: added role permission module for permission guard

* fix: added role permission module for permission guard

* fix: added role permission module for permission guard

* fix: added role permission module for permission guard

* fix: direct query count for role permission check

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: updated auth module

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix: added role permission module for permission guard

* fix: removed tenant module (unnecessary module)

* fix: removed tenant module (unnecessary module)

* fix(deepscan): removed unused import

* chore: increase RAM limits

* chore: log heap size

* feat: add caching to some Middlewares and other improvements

---------

Co-authored-by: RAHUL RATHORE <41804588+rahul-rocket@users.noreply.github.com>
Co-authored-by: Rahul R <rahulrathore576@gmail.com>
Co-authored-by: geoffrey1330 <israelgeoffrey13@gmail.com>
Co-authored-by: CoderNadir <coder.nadir@gmail.com>
Co-authored-by: coderNadir <78637183+coderNadir@users.noreply.github.com>
@evereq
Copy link
Member Author

evereq commented Mar 10, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: devops DevOps related request
Projects
None yet
Development

No branches or pull requests

2 participants