add readme

This commit is contained in:
godd0t 2023-05-10 14:02:09 +02:00
parent 2dd3a34f5b
commit 86d8ea3ad2
4 changed files with 124 additions and 3 deletions

117
README.md Normal file
View File

@ -0,0 +1,117 @@
# Django Docker Quickstart
This is a quickstart for Django with Docker.
## Features
- Django
- PostgreSQL
- Redis
- Celery(worker and beat)
- Nginx
- Traefik
## Requirements
- Docker
- Docker Compose
- Python 3.10 or higher
- Make(optional for shortcuts)
## Getting Started
To get started, follow these steps:
1. Clone the repository:
```
git clone https://github.com/godd0t/django-docker-quickstart.git
```
2. Change directory into the project:
```
cd django-docker-quickstart
```
3. Copy the `env.example` file to `.env` and update the values as needed:
```
cp env.example .env
```
## Initial Setup
### Development
To set up the project for development, follow these steps:
1. Create a virtual environment:
```
python -m venv venv
```
2. Activate the virtual environment:
```
source venv/bin/activate
```
3. Install the development requirements:
```
pip install -r requirements/requirements-dev.txt
```
4. Build and run the project:
```
docker-compose up --build -d
```
### Production
To set up the project for production, follow these steps:
1. Build the image and run the container:
```
docker-compose -f docker-compose.prod.yml up --build -d
```
## Shortcuts
To make development easier, there are a few shortcuts available:
Create migrations:
```
make make-migrations
```
Run migrations:
```
make migrate
```
Run the linter:
```
make lint
```
Run the formatter:
```
make format
```
Run the tests:
```
make test
```
Create a super user:
```
make super-user
```

View File

@ -9,5 +9,5 @@ else
python manage.py makemigrations --noinput
python manage.py migrate --noinput
python manage.py collectstatic --noinput
gunicorn "$APP_NAME".wsgi:application --bind "$APP_HOST":"$APP_PORT" --workers 3 --log-level=debug
gunicorn "$APP_NAME".wsgi:application --bind "$APP_HOST":"$APP_PORT" --workers 3 --log-level=info
fi

View File

@ -57,7 +57,7 @@ target-version = ['py311']
include = '\.pyi?$'
# 'extend-exclude' excludes files or directories in addition to the defaults
extend-exclude = '''
^/migrations/
^(.*/)?migrations/.*$
'''
@ -65,7 +65,7 @@ extend-exclude = '''
format = "grouped"
line-length = 88 # black default
extend-exclude = [
"*/migrations/*",
"src/migrations/*",
"src/media/*",
"src/static/*",
"src/manage.py",

4
src/requirements.dev.txt Normal file
View File

@ -0,0 +1,4 @@
-r requirements.txt
black==23.3.0
ruff==0.0.265
coverage[toml]==7.2.5