Rocket Django
Open-source Django Starter styled with Tailwind and Flowbite.
Open-source Django Starter that incorporates a few modern technologies provided out-of-the-box, at a production-ready level. Rocket Django comes with API (via DRF), Charts, server-side DataTable, Celery for async tasks processing, and Docker support.
- 👉 Rocket Django -
LIVE Demo
- 👉 Rocket Django -
Product Page
Features​
The codebase is shipped with basic features that are usually implemented in most of the projects:
- Up-to-date Dependencies
- Tailwind/Flowbite Integration via WebPack
Extended User Model
- API via
DRF
- Charts
- DataTables
Celery
(async processing)- Docker
System Requirements​
- Python3 - the programming language used to code the app
- GIT - used to clone the source code from the Github repository
- NodeJS v18.20.0 or above (for Tailwind set up)
- Docker - a popular virtualization software
Download Sources​
The product can be downloaded from the official page or GitHub using GIT:
$ git clone https://github.com/app-generator/rocket-django.git
$ cd rocket-django
Once the sources are available in the local filesystem, we can start the project using Docker
or manual build
.
Start with Docker
​
# Optional (kill all existing containers)
$ docker container kill $(docker ps -q) ; docker container rm $(docker ps -a -q) ; docker network prune -f
# Start the APP
$ docker-compose up --build
Visit http://localhost:5085
in your browser. The app should be up & running. The starter comes with two default users:
- Ordinary user:
test
/test@appseed.us
/Pass12__
(the password) - Django SuperUser (admin):
admin
/admin@appseed.us
/Pass12__
(the password)
Once authenticated with the above credentials, the sidebar shows different items.
Manual Build​
👉 Create
.env
fromenv.sample
DEBUG=False
SECRET_KEY=<STRONG_KEY_HERE>
👉 Install Django modules via
VENV
$ virtualenv env
$ source env/bin/activate
$ pip install -r requirements.txt
👉 Install Tailwind/Flowbite (another terminal)
Tested with Node v18.20.0
(use at least this version or above)
$ npm install
$ npm run dev
$ npx tailwindcss -i ./static/assets/style.css -o ./static/dist/css/output.css --watch # DEVELOPMENT (LIVE reload)
$ npx tailwindcss -i ./static/assets/style.css -o ./static/dist/css/output.css # PRODUCTION
👉 Migrate DB
$ python manage.py makemigrations
$ python manage.py migrate
👉
Create Superuser
& Start the Rocket Django Starter
$ python manage.py createsuperuser # create the admin
$ python manage.py runserver # start the project
At this point, we can start using the starter.
Use MySql​
By default, the starter uses SQLite for persistence. In order to use MySql, here are the steps:
- Start the MySql Server
- Create a new DataBase
- Create a new user with full privileges over the database
- Install the MySql Python Driver (used by Django to connect)
$ pip install mysqlclient
- Edit the
.env
with the SQL Driver Information & DB Credentials
DB_ENGINE=mysql
DB_HOST=localhost
DB_NAME=<DB_NAME_HERE>
DB_USERNAME=<DB_USER_HERE>
DB_PASS=<DB_PASS_HERE>
DB_PORT=3306
Once the above settings are done, run the migration & create tables:
$ python manage.py makemigrations
$ python manage.py migrate
Production Build​
To use the starter in production mode, here are the steps:
- Set DEBUG=False in
.env
- Execute
collectstatic
command$ python manage.py collectstatic --no-input
As a model, feel free to take a look at build.sh, the file executed by the CI/CD flow for Render:
Deploy on Render​
- Create a Blueprint instance
- Go to https://dashboard.render.com/blueprints this link.
- Click
New Blueprint Instance
button. - Connect the
repo
that you want to deploy. - Fill the
Service Group Name
and click on theUpdate Existing Resources
button. - Edit the Environment and specify the PYTHON_VERSION
- Version
3.11.5
was used for this deployment
- Version
- After that, your deployment will start automatically.
At this point, the product should be LIVE.
Codebase​
< PROJECT ROOT >
|
|-- core/ # Project Settings
| |-- settings.py
| |-- wsgi.py
| |-- urls.py
|
|-- home/ # Presentation app
| |-- views.py # serve the HOMEpage
| |-- urls.py
| |-- models.py
|
|-- apps/ # Utility Apps
| |-- common/ # defines models & helpers
| | |-- models.py
| | |-- util.py
| |-- users # Handles Authentication
| |-- api # DRF managed API
| |-- charts # Showcase Different Charts
| |-- tables # Implements DataTables
| |-- tasks # Celery, async processing
|
|-- templates/ # UI templates
|-- static/ # Tailwind/Flowbite
| |-- src/ #
| |-- input.css # CSS Styling
|
|-- Dockerfile # Docker
|-- docker-compose.yml # Docker
|
|-- render.yml # CI/CD for Render
|-- build.sh # CI/CD for Render
|
|-- manage.py # Django Entry-Point
|-- requirements.txt # dependencies
|-- .env # ENV File
|
|-- *************************************************
✅ Resources​
- 👉 Access AppSeed for more starters and support
- 👉 Deploy Projects on Aws, Azure and DO via DeployPRO
- 👉 Create landing pages with Simpllo, an open-source site builder
- 👉 Build apps with Django App Generator (free service)