Skip to content

Commit d148eb4

Browse files
Initial commit
0 parents  commit d148eb4

14 files changed

+365
-0
lines changed

.gitignore

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
*.pyc
2+
*.DS_Store
3+
*.egg*
4+
/dist/
5+
/.idea
6+
/docs/_build/
7+
/node_modules/
8+
build/
9+
env
10+
11+
#src
12+
*.sqlite*
13+

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Change Log
2+
3+
## [1.0.0] 2022-10-20
4+
### Initial Release
5+
6+
- Code the basic structure
7+

Dockerfile

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
FROM python:3.9
2+
3+
# set environment variables
4+
ENV PYTHONDONTWRITEBYTECODE 1
5+
ENV PYTHONUNBUFFERED 1
6+
7+
COPY requirements.txt .
8+
# install python dependencies
9+
RUN pip install --upgrade pip
10+
RUN pip install --no-cache-dir -r requirements.txt
11+
12+
COPY . .
13+
14+
# running migrations
15+
RUN python manage.py migrate
16+
17+
# gunicorn
18+
CMD ["gunicorn", "--config", "gunicorn-cfg.py", "core.wsgi"]

README.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Django Core
2+
3+
Minimal **Django** project with `Docker` support - actively supported by [AppSeed](https://appseed.us/) via `Email` and `Discord`.
4+
5+
> Features:
6+
7+
-`Up-to-date Dependencies`
8+
-`Docker`
9+
10+
<br />
11+
12+
## ✨ Start the app in Docker
13+
14+
> 👉 **Step 1** - Download the code from the GH repository (using `GIT`)
15+
16+
```bash
17+
$ git clone https://github.com/app-generator/core-django.git
18+
$ cd core-django
19+
```
20+
21+
<br />
22+
23+
> 👉 **Step 2** - Start the APP in `Docker`
24+
25+
```bash
26+
$ docker-compose up --build
27+
```
28+
29+
Visit `http://localhost:5085` in your browser. The app should be up & running.
30+
31+
<br />
32+
33+
## Manual Build
34+
35+
> 👉 Download the code
36+
37+
```bash
38+
$ git clone https://github.com/app-generator/core-django.git
39+
$ cd core-django
40+
```
41+
42+
<br />
43+
44+
> 👉 Install modules via `VENV`
45+
46+
```bash
47+
$ virtualenv env
48+
$ source env/bin/activate
49+
$ pip install -r requirements.txt
50+
```
51+
52+
<br />
53+
54+
> 👉 Set Up Database
55+
56+
```bash
57+
$ python manage.py makemigrations
58+
$ python manage.py migrate
59+
```
60+
61+
<br />
62+
63+
> 👉 Start the app
64+
65+
```bash
66+
$ python manage.py runserver
67+
```
68+
69+
At this point, the app runs at `http://127.0.0.1:8000/`.
70+
71+
<br />
72+
73+
---
74+
**Django Core** - Minimal **Django** core provided by **[AppSeed](https://appseed.us/)**

core/__init__.py

Whitespace-only changes.

core/asgi.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""
2+
ASGI config for core project.
3+
4+
It exposes the ASGI callable as a module-level variable named ``application``.
5+
6+
For more information on this file, see
7+
https://docs.djangoproject.com/en/4.1/howto/deployment/asgi/
8+
"""
9+
10+
import os
11+
12+
from django.core.asgi import get_asgi_application
13+
14+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
15+
16+
application = get_asgi_application()

core/settings.py

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
"""
2+
Django settings for core project.
3+
4+
Generated by 'django-admin startproject' using Django 4.1.2.
5+
6+
For more information on this file, see
7+
https://docs.djangoproject.com/en/4.1/topics/settings/
8+
9+
For the full list of settings and their values, see
10+
https://docs.djangoproject.com/en/4.1/ref/settings/
11+
"""
12+
13+
from pathlib import Path
14+
15+
# Build paths inside the project like this: BASE_DIR / 'subdir'.
16+
BASE_DIR = Path(__file__).resolve().parent.parent
17+
18+
19+
# Quick-start development settings - unsuitable for production
20+
# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/
21+
22+
# SECURITY WARNING: keep the secret key used in production secret!
23+
SECRET_KEY = "django-insecure-b+$5wugqo%4&wt1+^jy+6x+#p3z*f__c__7(j9-4qp@24nl65n"
24+
25+
# SECURITY WARNING: don't run with debug turned on in production!
26+
DEBUG = True
27+
28+
ALLOWED_HOSTS = []
29+
30+
31+
# Application definition
32+
33+
INSTALLED_APPS = [
34+
"django.contrib.admin",
35+
"django.contrib.auth",
36+
"django.contrib.contenttypes",
37+
"django.contrib.sessions",
38+
"django.contrib.messages",
39+
"django.contrib.staticfiles",
40+
]
41+
42+
MIDDLEWARE = [
43+
"django.middleware.security.SecurityMiddleware",
44+
"django.contrib.sessions.middleware.SessionMiddleware",
45+
"django.middleware.common.CommonMiddleware",
46+
"django.middleware.csrf.CsrfViewMiddleware",
47+
"django.contrib.auth.middleware.AuthenticationMiddleware",
48+
"django.contrib.messages.middleware.MessageMiddleware",
49+
"django.middleware.clickjacking.XFrameOptionsMiddleware",
50+
]
51+
52+
ROOT_URLCONF = "core.urls"
53+
54+
TEMPLATES = [
55+
{
56+
"BACKEND": "django.template.backends.django.DjangoTemplates",
57+
"DIRS": [],
58+
"APP_DIRS": True,
59+
"OPTIONS": {
60+
"context_processors": [
61+
"django.template.context_processors.debug",
62+
"django.template.context_processors.request",
63+
"django.contrib.auth.context_processors.auth",
64+
"django.contrib.messages.context_processors.messages",
65+
],
66+
},
67+
},
68+
]
69+
70+
WSGI_APPLICATION = "core.wsgi.application"
71+
72+
73+
# Database
74+
# https://docs.djangoproject.com/en/4.1/ref/settings/#databases
75+
76+
DATABASES = {
77+
"default": {
78+
"ENGINE": "django.db.backends.sqlite3",
79+
"NAME": BASE_DIR / "db.sqlite3",
80+
}
81+
}
82+
83+
84+
# Password validation
85+
# https://docs.djangoproject.com/en/4.1/ref/settings/#auth-password-validators
86+
87+
AUTH_PASSWORD_VALIDATORS = [
88+
{
89+
"NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
90+
},
91+
{
92+
"NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
93+
},
94+
{
95+
"NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
96+
},
97+
{
98+
"NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
99+
},
100+
]
101+
102+
103+
# Internationalization
104+
# https://docs.djangoproject.com/en/4.1/topics/i18n/
105+
106+
LANGUAGE_CODE = "en-us"
107+
108+
TIME_ZONE = "UTC"
109+
110+
USE_I18N = True
111+
112+
USE_TZ = True
113+
114+
115+
# Static files (CSS, JavaScript, Images)
116+
# https://docs.djangoproject.com/en/4.1/howto/static-files/
117+
118+
STATIC_URL = "static/"
119+
120+
# Default primary key field type
121+
# https://docs.djangoproject.com/en/4.1/ref/settings/#default-auto-field
122+
123+
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"

core/urls.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
"""core URL Configuration
2+
3+
The `urlpatterns` list routes URLs to views. For more information please see:
4+
https://docs.djangoproject.com/en/4.1/topics/http/urls/
5+
Examples:
6+
Function views
7+
1. Add an import: from my_app import views
8+
2. Add a URL to urlpatterns: path('', views.home, name='home')
9+
Class-based views
10+
1. Add an import: from other_app.views import Home
11+
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
12+
Including another URLconf
13+
1. Import the include() function: from django.urls import include, path
14+
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
15+
"""
16+
from django.contrib import admin
17+
from django.urls import path
18+
19+
urlpatterns = [
20+
path("admin/", admin.site.urls),
21+
]

core/wsgi.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
"""
2+
WSGI config for core project.
3+
4+
It exposes the WSGI callable as a module-level variable named ``application``.
5+
6+
For more information on this file, see
7+
https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/
8+
"""
9+
10+
import os
11+
12+
from django.core.wsgi import get_wsgi_application
13+
14+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
15+
16+
application = get_wsgi_application()

docker-compose.yml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
version: '3.8'
2+
services:
3+
appseed-app:
4+
container_name: appseed_app
5+
restart: always
6+
build: .
7+
networks:
8+
- db_network
9+
- web_network
10+
nginx:
11+
container_name: nginx
12+
restart: always
13+
image: "nginx:latest"
14+
ports:
15+
- "5085:5085"
16+
volumes:
17+
- ./nginx:/etc/nginx/conf.d
18+
networks:
19+
- web_network
20+
depends_on:
21+
- appseed-app
22+
networks:
23+
db_network:
24+
driver: bridge
25+
web_network:
26+
driver: bridge
27+

gunicorn-cfg.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# -*- encoding: utf-8 -*-
2+
"""
3+
Copyright (c) 2019 - present AppSeed.us
4+
"""
5+
6+
bind = '0.0.0.0:5005'
7+
workers = 1
8+
accesslog = '-'
9+
loglevel = 'debug'
10+
capture_output = True
11+
enable_stdio_inheritance = True

manage.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/usr/bin/env python
2+
"""Django's command-line utility for administrative tasks."""
3+
import os
4+
import sys
5+
6+
7+
def main():
8+
"""Run administrative tasks."""
9+
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "core.settings")
10+
try:
11+
from django.core.management import execute_from_command_line
12+
except ImportError as exc:
13+
raise ImportError(
14+
"Couldn't import Django. Are you sure it's installed and "
15+
"available on your PYTHONPATH environment variable? Did you "
16+
"forget to activate a virtual environment?"
17+
) from exc
18+
execute_from_command_line(sys.argv)
19+
20+
21+
if __name__ == "__main__":
22+
main()

nginx/appseed-app.conf

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
upstream webapp {
2+
server appseed_app:5005;
3+
}
4+
5+
server {
6+
listen 5085;
7+
server_name localhost;
8+
9+
location / {
10+
proxy_pass http://webapp;
11+
proxy_set_header Host $host;
12+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
13+
}
14+
15+
}

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
django
2+
gunicorn

0 commit comments

Comments
 (0)