Inspired by Will Vincent's DjangoX project.
- Django 5.x & Python 3.x
- Basic first app called
website
- Basic template with Bootstrap
- Dockerfile and docker-compose file
- Lots of other config inspired by Adam Johnson's Boost Your Django DX book
uv
-curl -LsSf https://astral.sh/uv/install.sh | sh
just
-uv tool install rust-just
- Download and unzip the code:
curl https://codeload.github.com/stuartmaxwell/mydjangox/zip/refs/heads/main -o mydjangox.zip
- Rename the directory from
mydjangox-main
to your project name - Change directory into the repo:
cd <your_project_name>
- Create a virtual environment. This will also download Python if needed:
just venv
- Install requirements:
just sync
- Optional: update requirements:
just sync-up
- Run the Django migrations:
just migrate
- Create a superuser:
just createsuperuser
- Start the server:
just run
- Navigate to: http://127.0.0.1:8000
- Bonus: run
just test
to see if everything is working.
-
Rename
env.template
to.env
and configure the following settings:Env Name Env Value SECRET_KEY The Django secret key to add to the settings.py
file.DEBUG Ensure this is set to False
in production.ALLOWED_HOSTS List of allowed hosts, e.g. example.com,www.example.com
.EMAIL_HOST Name or IP address of the SMTP server. EMAIL_PORT The port of the SMTP server. EMAIL_HOST_USER The username to authenticate with the SMTP server. EMAIL_HOST_PASSWORD The password for the SMTP server username. EMAIL_USE_TLS Either True
orFalse
to use TLS.DEFAULT_FROM_EMAIL The email address to send emails from . DB_ENGINE The database engine to use. DB_NAME The database name to connect to. If using SQLite, this will be the filename without the extension. DB_HOST Name or IP address of the database server. DB_PORT The port of the database server. DB_USER The username to authenticate with the database server. DB_PASSWORD The password for the database server username. WHITENOISE_STATIC Boolean value that turns on Whitenoise for serving static content. ADMIN_URL The path to the Admin site so it can be hidden from easily being guessed.