Deploying Django with the Digital Ocean Apps Platform was fairly straightforward. Overall, I followed this video with some minor changes to suit my needs:
Changes I made:
- If I let Django generate the secret key using
get_random_secret_key()
function, users have to login every time I made some code changes leading to a bad experience. Thus, I hardcode it in an environment variable. - I also have another environment variable
IS_POST
(default toFalse
) which is used to control the static file hosting. - Since in MediDoc users can upload media, I also had to create DigitalOcean spaces and add the following configuration variables to my
settings.py
file.
if IS_PROD:
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_S3_REGION_NAME = 'nyc3'
AWS_S3_ENDPOINT_URL = f'https://{AWS_S3_REGION_NAME}.digitaloceanspaces.com'
AWS_ACCESS_KEY_ID = os.getenv('AWS_ACCESS_KEY_ID')
AWS_SECRET_ACCESS_KEY = os.getenv('AWS_SECRET_ACCESS_KEY')
AWS_STORAGE_BUCKET_NAME = 'medidoc'
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_LOCATION = 'media'
In the end, I have the following environment variables:
Check out the deployment here: https://medi-doc-njgqo.ondigitalocean.app/
Try It Out
To try it out, please create a patient account here and a medical account here (note that admin has to approve the medical accounts, so please wait a bit!).
Alternatively, you can use the following demo medical accounts:
- devto-hospital
- devto-diag
- devto-pharmacy
And the patient account:
- devto-patient
Password for all of them is: medidocpass@abc
Let me know what you think!
Top comments (0)