To set up environment variables, create .env
file and put neccesary credentials and variables:
CONTACT_EMAIL_ADDRESS='[email protected]'
GOOGLE_MAPS_API_KEY=''
POSTGRES_USER=''
POSTGRES_PASSWORD=''
POSTGRES_DB=''
SFTP_UID=1001
SFTP_GID=1001
SFTP_USERNAME=''
SFTP_PASSWORD=''
SFTP_HOME=''
SYMPORTAL_DATABASE_CONTAINER=symportal-database
SYMPORTAL_FLASK_CONTAINER=symportal-flask
SYMPORTAL_NGINX_CONTAINER=symportal-nginx
SYMPORTAL_FRAMEWORK_CONTAINER=symportal-framework
SENDGRID_API_KEY=''
SENDGRID_EMAIL_SENDER=''
To build the project with Docker Compose, run the following script
sudo bash run_docker.sh
This project utilizes the "Infrastructure as Code" approach to set up a scalable and reproducible architecture.
It utilizes Docker Compose to manage four containers:
- NGINX
- Flask + Gunicorn
- Symportal Framework
- PostgreSQL Database
Here below is an overview of the application architecture schema.
The SymPortal Framework and Flask application was written by Benjamin Hume [email protected].
The architecture migration and CI/CD set up were made by Yulia Iakovleva [email protected].