add readme
This commit is contained in:
		
							
								
								
									
										117
									
								
								README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								README.md
									
									
									
									
									
										Normal 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
 | 
			
		||||
```
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
									
								
							
							
						
						
									
										4
									
								
								src/requirements.dev.txt
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
-r requirements.txt
 | 
			
		||||
black==23.3.0
 | 
			
		||||
ruff==0.0.265
 | 
			
		||||
coverage[toml]==7.2.5
 | 
			
		||||
		Reference in New Issue
	
	Block a user