Powered by Cookiecutter, inspired by Cookiecutter Django.
- Docker
- 12 Factor
- Server: Nginx
- Frontend: Vue + vue-cli + PWA
- Backend: Django
- Database: PostgreSQL
- API: REST or GraphQL
These features can be enabled during initial project setup.
- Integration with MailHog for local email testing
- Integration with Sentry for frontend and backend errors logging
- Integration with Google Analytics or Yandex Metrika for web-analytics
- Automatic database backups
First, get cookiecutter
:
$ pip install cookiecutter
Now run it against this repo:
$ cookiecutter gh:vchaptsev/cookiecutter-django-vue
You'll be prompted for some values. Provide them, then a project will be created for you.
Answer the prompts with your own desired options. For example:
======================== INFO ======================= [ ]:
project_name [Project Name]: Website
project_slug [website]: website
description [Short description]: My awesome website
author [Your Name]: Your Name
email [<admin@website.com>]: <admin@website.com>
====================== GENERAL ====================== [ ]:
Select api:
1 - REST
2 - GraphQL
Choose from 1, 2 [1]: 2
backups [y]: y
==================== INTEGRATIONS =================== [ ]:
use_sentry [y]: y
use_mailhog [y]: y
Select analytics:
1 - Google Analytics
2 - Yandex Metrika
3 - None
Choose from 1, 2, 3 [1]: 2
Project creation will cause some odd newlines and linter errors, so I'd recommend:
$ pip install autopep8
$ autopep8 -r --in-place --aggressive --aggressive backend
$ cd frontend && npm i && npm run lint --fix
Now you can start project with docker-compose:
$ docker-compose up --build
For production you'll need to fill out .env
file and use
docker-compose-prod.yml
file:
$ docker-compose -f docker-compose-prod.yml up --build -d
Help and feedback are welcome :)