This is a Python Django-based personal portfolio website.
The website uses Wagtail CMS. Wagtail is a Django Content Management System.
All content: personal information, portfolio projects, social media links, Google Analytics tracking code, etc. can be adjusted in Wagtail admin.
The fronted theme is an inspiration from Start Bootstrap Freelancer theme .
This repo can be used as a starting point for developing a production-ready Django personal website with deployment to Heroku. I am releasing the full source code for the site so that others may benefit from it.
To view the website demo, please visit vladislavalerievich.herokuapp.com.
NOTE: The web application may take a few seconds to start up.
Setup local environment for the development process.
Go to ./portfolio directory and activate virtual environment.
pip install -r requirements.txt
python manage.py migrate
python manage.py createsuperuser
python manage.py runserverGo to http://127.0.0.1:8000/admin/ in your browser to the Wagtail CMS admin to populate it with your data and to
configure homepage.
Heroku uses Dockerfile to build and run the application.
To deploy your application on Heroku, you need to do several things:
- Create Heroku Account
- Download/Install/Setup Heroku CLI
- After installation, log into Heroku CLI:
heroku login. - Run:
heroku create <your app name>to create the Heroku application. - Run:
heroku stack:set containerso Heroku knows this is a containerized application. - Run:
heroku addons:create heroku-postgresql:hobby-dev, creating the Postgres add-on for Heroku. - Set the URL (e.g.
https://<app name>.herokuapp.com)of your application into environment variableHOST_NAMEin Heroku config settings. - To receive emails from the contact form you need an email account. If you choose Google, you need to
configure Sign in with App Passwords for this account.
Then provide your email and password into environment variables
EMAIL_HOST_USERandEMAIL_HOST_PASSWORDin Heroku config vars settings. - To store media files you need to configure storage. I have chosen Cloudinary.
Run:
heroku addons:add cloudinaryand proceed with finishing account setup. Then provide data from dashboard into environment variablesCLOUDINARY_CLOUD_NAME,CLOUDINARY_API_KEYandCLOUDINARY_API_SECRETin Heroku config settings. - Deploy your app by running:
git push heroku master. - Create a superuser by running:
heroku run python manage.py createsuperuser. - Go to
<your app name>.herokuapp.comto see the published web application.