WORK IN PROGRESS
Phase-2 refactoring of original AERPAW Portal aimed at addressing feedback from Phase-1 and migrating services to be ReST API based.
- Refactored ORM and data table design (Django)
- ReSTful API interface (Django ReST Framework)
- Token based (JWT) authentication and authorization for remote API use (djangorestframework-simplejwt)
- Django views / templates populated via the API
DISCLAIMER: The code herein may not be up to date nor compliant with the most recent package and/or security notices. The frequency at which this code is reviewed and updated is based solely on the lifecycle of the project for which it was written to support, and is not actively maintained outside of that scope. Use at your own risk.
- Docker: https://docs.docker.com/engine/install/
- Docker Compose: https://docs.docker.com/compose/install/
- Python 3.9+: https://www.python.org
The Python environment illustrated in this document is deployed using virtualenv
(https://virtualenv.pypa.io/en/latest/). You are welcome to use whichever environment you are most comfortable with.
The portal can be run in three different modes depending on your use case
- Local Development - HTTP (
local-dev
)
- database: Postgres container running in Docker (port
5432:5432
) - portal: Django with development server running on the host (port
8000
)
- Local Development - with SSL (
local-ssl
)
- database: Postgres container running in Docker (port
5432:5432
) - nginx: Webserver container running in Docker with self-signed SSL certificates (ports
8080:80
,8443:443
) - portal: Django with uWSGI server running on the host (port
8000
)
- Production - all in Docker (
docker
)
- database: Postgres container running in Docker (port
N/A:5432
) - nginx: Webserver container running in Docker with user defined SSL certificates (ports
80:80
,443:443
) - portal: Django with uWSGI server running in Docker (port
N/A:8000
)
Note: The documentation herein was written based on a macOS local deployment and a CentOS Linux remote deployment
- Windows based deployment is not covered and as such users should translate accordingly
- Configure - configuration settings for each deployment mode
- Configuration Files - overview of the configuration files used for deployment
- Deploy - deployment steps for each mode
- First Run - setting up the first administrative user
- Database Backup and Restore - how to backup and restore the database using fixtures