Deployment
Cloud Document Maker can be deployed using Docker or AWS Elastic Beanstalk.
Docker Deployment
Docker provides a portable way to deploy Cloud Document Maker to any environment that supports containers.
Building the Docker Image
# Build the imagedocker build -t cloud-document-maker:latest .
# Tag for registry (optional)docker tag cloud-document-maker:latest your-registry/cloud-document-maker:latestSharing the Docker Image
Push to Docker Hub or private registry:
# Login to registrydocker login
# Push imagedocker push your-registry/cloud-document-maker:latest
# Pull on another machinedocker pull your-registry/cloud-document-maker:latestExport as a file for offline transfer:
# Save image to filedocker save cloud-document-maker:latest -o cloud-document-maker.tar
# Load on another machinedocker load -i cloud-document-maker.tarRunning with Docker Compose
# Start all servicesdocker-compose up -d
# Stop all servicesdocker-compose downAWS Elastic Beanstalk Deployment
Cloud Document Maker is deployed to AWS Elastic Beanstalk and runs on Amazon Linux 2.
There is a folder named .ebextensions which hosts a number of .config files that are used to run commands on the server when the application is deployed. This includes installing packages, creating users, and configuring Celery.
There is a folder named .platform which hosts files that run at critical times during the deployment process. For information, see here.
Only files that are included in the buildspec.yml file are deployed.
Deployment is done via AWS CodePipeline.
Development Instance
Any changes that are made and committed to the dev branch are automatically deployed to the development instance, where you can test whether the changes made are working as you would expect.
URLs
QA Instance
Any changes that are made and committed to the qa branch are automatically deployed to the QA instance, this is used for testing releases before they are pushed to production.
URLs
Production Instance
Changes to the main branch will trigger an automatic deployment to the production environment. The only manual step involved is for someone to approve the deployment which will need to be done on the CodePipeline when it is running.
URLs
Documentation
The documentation is deployed to Vercel automatically from GitHub. It has development, QA and production environments automatically from the branches in GitHub.