- Python 3.6.x already installed on system or using virtualenv
- Postgresql 9.6.x
- wkhtmltopdf 0.12.3
- Redis Server 3.0 or latter
Install dependencies
$ pip install -r requirements.txt
Create your own settings and modify as your preference
$ cp academy/local_settings.py.sample academy/local_settings.py
Configure database connection in local_settings.py
with the database, database user, redis cookies domain and database password you configure in postgreSQL.
Migrate database
$ python manage.py migrate
Run this command to seeding initial data settings
$ python manage.py seeding_initial_settings
Collect Static
$ python manage.py collectstatic
Compress Static File
$ python manage.py compress --force
Create superuser
$ python manage.py createsuperuser
Username (leave blank to use 'btech'):
Email address: contact@btech,id
Password:
Password (again):
Superuser created successfully.
Runing the service
python manage.py runserver
Then open your browser http://localhost:8000 and voila your web apps is already running !
You need to install the following apps:
- python3.6
- Nginx
- PostgreSQL
- virtualenv
Clone the latest source code from the repository, and I assume you put it to /var/www/html/
$ cd /var/www/html/
$ git clone {repository}
$ cd academy
Then create virtualenv with python3
$ virtualenv --python=python3.6
$ source/env/bin/activate
$ pip install -r requirements.txt
$ pip install gunicorn
Then create a configuration file, just copy from sample file and modify as your preference
$ cp academy/local_settings.py.sample academy/local_settings.py
Then run the database migration
$ python manage.py migrate
Then create first superuser
$ python manage.py createsuperuser
Username (leave blank to use 'btech'):
Email address:
Password:
Password (again):
Superuser created successfully.
Then create systemd file, just copy sample file and modify as your preference
$ sudo cp scripts/etc/systemd/system/academy.service /etc/systemd/system/
$ sudo cp scripts/etc/systemd/system/rqworker.service /etc/systemd/system/
Then configure nginx, just copy sample file and modify as your preference
$ sudo cp scripts/etc/nginx/sites-available/sample.conf /etc/nginx/sites-available/academy.conf
$ sudo ln -s /etc/nginx/sites-available/academy.conf /etc/nginx/sites-enabled/academy.conf
Then generate static files
$ python manage.py collectstatic
Create logs directory
$ mkdir logs
Then start the service
$ sudo systemctl enable academy
$ sudo systemctl start academy
$ sudo systemctl enable rqworker
$ sudo systemctl start rqworker
$ sudo systemctl restart nginx
- Deploy the latest update
$ source env/bin/activate
$ git pull origin master
$ python manage.py migrate
$ python manage.py collectstatic
$ update_setting.sh dev/prod
$ sudo systemctl restart academy
- Start Service
$ sudo systemctl start academy
- Stop Service
$ sudo systemctl stop academy
- Restart Service
$ sudo systemctl restart academy