From 65cd1fb7c80cd931ded12f987eb8529de2940721 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Fri, 19 Jul 2024 12:41:46 +0300 Subject: [PATCH 01/13] feat: Datanar with docker (it`s experiment) --- .dockerignore | 115 ++++++++++++++++++ .env.example | 14 +++ .gitignore | 2 +- Dockerfile | 17 +++ .../0002_alter_blockeddomain_options.py | 20 +++ datanar/datanar/settings.py | 50 ++++---- datanar/users/management/__init__.py | 0 datanar/users/management/commands/__init__.py | 0 .../management/commands/init_superuser.py | 29 +++++ docker-compose.yml | 87 +++++++++++++ nginx-confs/datanar_local.conf | 33 +++++ nginx-confs/datanar_prod.conf | 47 +++++++ nginx-confs/robots.txt | 2 + requirements/prod.txt | 2 +- 14 files changed, 393 insertions(+), 25 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 datanar/dashboard/migrations/0002_alter_blockeddomain_options.py create mode 100644 datanar/users/management/__init__.py create mode 100644 datanar/users/management/commands/__init__.py create mode 100644 datanar/users/management/commands/init_superuser.py create mode 100644 docker-compose.yml create mode 100644 nginx-confs/datanar_local.conf create mode 100644 nginx-confs/datanar_prod.conf create mode 100644 nginx-confs/robots.txt diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b76c127 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,115 @@ +__pycache__/ +*.py[cod] +*.pyc +*$py.class + +*.so +db.sqlite3 +.Python +build/ +develop-eggs/ +dist/ +eggs/ +.eggs/ +lib/ +lib64/ +media/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +*.manifest +*.spec + +pip-log.txt +pip-delete-this-directory.txt + +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +cache/ +/cache/ +cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +*.mo +*.pot + +*.log +local_settings.py +db.sqlite3-journal + +instance/ +.webassets-cache + +.scrapy + +docs/_build/ + +.pybuilder/ +target/ + +.ipynb_checkpoints + +profile_default/ +ipython_config.py + +.python-version + +Pipfile.lock + +poetry.lock + +pdm.lock + +.pdm.toml + +__pypackages__/ + +celerybeat-schedule +celerybeat.pid + +*.sage.py + +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +.spyderproject +.spyproject + +.ropeproject + +/site + +.mypy_cache/ +.dmypy.json +dmypy.json + +.pyre/ + +.pytype/ + +cython_debug/ + +.idea/ +.vscode/ diff --git a/.env.example b/.env.example index c8b4abb..e7ae5a0 100644 --- a/.env.example +++ b/.env.example @@ -8,10 +8,24 @@ DJANGO_MAIL_USER=webmaster@localhost DJANGO_MAIL_PASSWORD=this_very_secret_password_for_smtp_mail DJANGO_DEFAULT_USER_IS_ACTIVE=True +DJANGO_SUPERUSER_NAME=admin +DJANGO_SUPERUSER_EMAIL=webmaster@localhost +DJANGO_SUPERUSER_PASSWORD=this_very_secret_password_for_superuser DJANGO_USE_SIMPLE_DATABASE=True DJANGO_DATABASE_NAME=database DJANGO_DATABASE_USER=webmaster DJANGO_DATABASE_PASSWORD=this_very_secret_password_for_database +DJANGO_DATABASE_HOST=postgres +DJANGO_DATABASE_PORT=5432 + +DATANAR_REDIS_HOST=redis +DATANAR_REDIS_PORT=6379 +DATANAR_REDIS_DB=0 + +DATANAR_CERTBOT_DEBUG=1 +DATANAR_CERTBOT_EMAIL=exampleac@yandex.ru DJANGO_LOG_FILE_PATH=/path/to/log/file + +COMPOSE_PROFILES=dev diff --git a/.gitignore b/.gitignore index b76c127..2550e87 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ __pycache__/ *$py.class *.so -db.sqlite3 +*.sqlite3 .Python build/ develop-eggs/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4a7bd41 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM python:3.12.4-slim + +RUN apt update +RUN apt install gettext -y + +COPY ./requirements /requirements +RUN pip install -r requirements/prod.txt +RUN rm -rf requirements + +COPY ./datanar /datanar/ +WORKDIR /datanar + +CMD python manage.py migrate \ + && python manage.py init_superuser \ + && python manage.py compilemessages \ + && python manage.py collectstatic --no-input \ + && python manage.py runserver 0.0.0.0:8000 \ No newline at end of file diff --git a/datanar/dashboard/migrations/0002_alter_blockeddomain_options.py b/datanar/dashboard/migrations/0002_alter_blockeddomain_options.py new file mode 100644 index 0000000..42d5fc3 --- /dev/null +++ b/datanar/dashboard/migrations/0002_alter_blockeddomain_options.py @@ -0,0 +1,20 @@ +# Generated by Django 4.2.13 on 2024-07-16 04:46 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("dashboard", "0001_initial"), + ] + + operations = [ + migrations.AlterModelOptions( + name="blockeddomain", + options={ + "verbose_name": "domain_regex", + "verbose_name_plural": "domains_regex", + }, + ), + ] diff --git a/datanar/datanar/settings.py b/datanar/datanar/settings.py index e6537c4..6322a3c 100644 --- a/datanar/datanar/settings.py +++ b/datanar/datanar/settings.py @@ -10,16 +10,16 @@ VERSION = "1.7.3" SECRET_KEY = config( - "DJANGO_SECRET_KEY", + "DATANAR_SECRET_KEY", default="this_is_test_key_-_some_very_dummy_secret_key", cast=str, ) -DEBUG = bool(strtobool(config("DJANGO_DEBUG", "False"))) +DEBUG = bool(strtobool(config("DATANAR_DJANGO_DEBUG", "False"))) NOT_TESTING = "test" not in sys.argv -LOG_FILE_PATH = config("DJANGO_LOG_FILE_PATH", default="", cast=str) +LOG_FILE_PATH = config("DATANAR_LOG_FILE_PATH", default="", cast=str) if LOG_FILE_PATH: LOGGING = { @@ -46,7 +46,7 @@ } ALLOWED_HOSTS = config( - "DJANGO_ALLOWED_HOSTS", + "DATANAR_ALLOWED_HOSTS", default="*", cast=lambda line: line.split(","), ) @@ -93,7 +93,6 @@ MIDDLEWARE.append("debug_toolbar.middleware.DebugToolbarMiddleware") INTERNAL_IPS = ["127.0.0.1"] - ROOT_URLCONF = "datanar.urls" TEMPLATES_DIR = BASE_DIR / "templates" @@ -119,28 +118,25 @@ WSGI_APPLICATION = "datanar.wsgi.application" - DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", - "NAME": BASE_DIR / "db.sqlite3", + "NAME": BASE_DIR / f"{config('DATANAR_DATABASE_NAME')}.sqlite3", }, } - -if not strtobool(config("DJANGO_USE_SIMPLE_DATABASE", "True")): +if not strtobool(config("DATANAR_USE_FILE_DATABASE", "True")): DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql_psycopg2", - "NAME": config("DJANGO_DATABASE_NAME", cast=str), - "USER": config("DJANGO_DATABASE_USER", cast=str), - "PASSWORD": config("DJANGO_DATABASE_PASSWORD", cast=str), - "HOST": "localhost", - "PORT": "", + "NAME": config("DATANAR_DATABASE_NAME"), + "USER": config("DATANAR_DATABASE_USER"), + "PASSWORD": config("DATANAR_DATABASE_PASSWORD"), + "HOST": config("DATANAR_DATABASE_HOST"), + "PORT": config("DATANAR_DATABASE_PORT"), }, } - AUTH_PASSWORD_VALIDATORS = [ { "NAME": ( @@ -173,7 +169,7 @@ AUTH_USER_MODEL = "users.User" DEFAULT_USER_IS_ACTIVE = bool( - strtobool(config("DJANGO_DEFAULT_USER_IS_ACTIVE", "False")), + strtobool(config("DATANAR_DEFAULT_USER_IS_ACTIVE", "False")), ) LOGIN_URL = "/auth/login/" @@ -189,14 +185,14 @@ ACCOUNT_EMAIL_SUBJECT_PREFIX = "<[DATANAR]> " SITE_ID = 1 -EMAIL_HOST = config("DJANGO_MAIL_HOST", default="smtp.mail.ru") -EMAIL_PORT = config("DJANGO_MAIL_PORT", default=2525, cast=int) +EMAIL_HOST = config("DATANAR_MAIL_HOST", default="smtp.mail.ru") +EMAIL_PORT = config("DATANAR_MAIL_PORT", default=2525, cast=int) EMAIL_USE_TLS = True EMAIL_USE_SSL = False -DEFAULT_FROM_EMAIL = config("DJANGO_MAIL_USER", default="webmaster@localhost") -EMAIL_HOST_USER = config("DJANGO_MAIL_USER", default="webmaster@localhost") +DEFAULT_FROM_EMAIL = config("DATANAR_MAIL_USER", default="webmaster@localhost") +EMAIL_HOST_USER = config("DATANAR_MAIL_USER", default="webmaster@localhost") EMAIL_HOST_PASSWORD = config( - "DJANGO_MAIL_PASSWORD", + "DATANAR_MAIL_PASSWORD", default="this_very_secret_password_for_smtp_mail", ) @@ -235,8 +231,16 @@ GEOIP_PATH = "geo_ip" -CELERY_BROKER_URL = "redis://localhost:6379/0" -CELERY_RESULT_BACKEND = "redis://localhost:6379/0" +CELERY_BROKER_URL = ( + f"redis://{config('DATANAR_REDIS_HOST', cast=str)}" + f":{config('DATANAR_REDIS_PORT', cast=str)}" + f"/{config('DATANAR_REDIS_DB', cast=str)}" +) +CELERY_RESULT_BACKEND = ( + f"redis://{config('DATANAR_REDIS_HOST', cast=str)}:" + f"{config('DATANAR_REDIS_PORT', cast=str)}/" + f"{config('DATANAR_REDIS_DB', cast=str)}" +) SETTINGS_EXPORT = [ "VERSION", diff --git a/datanar/users/management/__init__.py b/datanar/users/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/datanar/users/management/commands/__init__.py b/datanar/users/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/datanar/users/management/commands/init_superuser.py b/datanar/users/management/commands/init_superuser.py new file mode 100644 index 0000000..ae5a4b8 --- /dev/null +++ b/datanar/users/management/commands/init_superuser.py @@ -0,0 +1,29 @@ +from allauth.account.models import EmailAddress +from decouple import config +from django.contrib.auth import get_user_model +from django.core.management.base import BaseCommand + + +class Command(BaseCommand): + help = "Create a superuser" + + def handle(self, *args, **options): + superuser_name = config("DATANAR_SUPERUSER_NAME", cast=str) + superuser_email = config("DATANAR_SUPERUSER_EMAIL", cast=str) + superuser_password = config("DATANAR_SUPERUSER_PASSWORD", cast=str) + + if not get_user_model().objects.filter(email=superuser_email).exists(): + superuser = get_user_model().objects.create_superuser( + username=superuser_name, + email=superuser_email, + password=superuser_password, + ) + EmailAddress.objects.create( + user=superuser, + email=superuser_email, + primary=True, + verified=True, + ) + + +__all__ = [] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..64bbb6c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,87 @@ +version: "3.9" +name: "datanar" + +services: + postgres: + image: postgres:15 + container_name: postgres + environment: + POSTGRES_DB: ${DATANAR_DATABASE_NAME} + POSTGRES_USER: ${DATANAR_DATABASE_USER} + POSTGRES_PASSWORD: ${DATANAR_DATABASE_PASSWORD} + restart: always + volumes: + - postgres_data_volume:/var/lib/postgresql/data + + django: + build: . + container_name: django + env_file: + - ./.env + restart: always + volumes: + - django_static_volume:/datanar/static + - django_media_volume:/datanar/media + depends_on: + - postgres + + nginx_production: + image: jonasal/nginx-certbot:latest + container_name: nginx + environment: + DEBUG: ${DATANAR_CERTBOT_DEBUG} + CERTBOT_EMAIL: ${DATANAR_CERTBOT_EMAIL} + STAGING: ${DATANAR_CERTBOT_DEBUG} + restart: always + ports: + - "80:80" + - "443:443" + volumes: + - ./nginx-confs/datanar_prod.conf:/etc/nginx/user_conf.d/datanar.conf + - django_media_volume:/datanar/media + - django_static_volume:/datanar/static + - nginx_certificates_volume:/etc/letsencrypt + depends_on: + - django + profiles: + - prod + + nginx_localhost: + image: nginx:latest + container_name: nginx + restart: always + ports: + - "80:80" + volumes: + - ./nginx-confs/datanar_local.conf:/etc/nginx/conf.d/default.conf + - ./nginx-confs/robots.txt:/datanar/static/robots.txt + - django_media_volume:/datanar/media + - django_static_volume:/datanar/static + depends_on: + - django + profiles: + - dev + + redis: + image: redis:latest + container_name: redis + restart: always + + celery: + build: . + container_name: celery + env_file: + - ./.env + restart: always + command: bash -c "celery -A datanar worker" + volumes: + - django_media_volume:/datanar/media + depends_on: + - postgres + - redis + +volumes: + django_media_volume: + django_static_volume: + nginx_certificates_volume: + postgres_data_volume: diff --git a/nginx-confs/datanar_local.conf b/nginx-confs/datanar_local.conf new file mode 100644 index 0000000..c19920a --- /dev/null +++ b/nginx-confs/datanar_local.conf @@ -0,0 +1,33 @@ +server { + listen 80 default_server reuseport; + listen [::]:80 default_server reuseport; + server_name localhost; + + location / { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + proxy_headers_hash_max_size 1024; + proxy_headers_hash_bucket_size 128; + + proxy_pass http://django:8000; + } + + location = /favicon.ico { + alias /datanar/static/img/favicon.ico; + } + + location = /robots.txt { + alias /datanar/static/robots.txt; + } + + location /static/ { + root /datanar; + } + + location /media/ { + root /datanar; + } +} \ No newline at end of file diff --git a/nginx-confs/datanar_prod.conf b/nginx-confs/datanar_prod.conf new file mode 100644 index 0000000..1695344 --- /dev/null +++ b/nginx-confs/datanar_prod.conf @@ -0,0 +1,47 @@ +server { + listen 80 default_server reuseport; + listen [::]:80 default_server reuseport; + server_name _ datanar.ru www.datanar.ru; + + location / { + proxy_set_header Host $http_host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + + proxy_headers_hash_max_size 1024; + proxy_headers_hash_bucket_size 128; + + proxy_pass http://django:8000; + } + + location = /favicon.ico { + alias /datanar/static/img/favicon.ico; + } + + location = /robots.txt { + alias /datanar/static/robots.txt; + } + + location /static/ { + root /datanar; + } + + location /media/ { + root /datanar; + } +} + +server { + listen 443 ssl default_server reuseport; + listen [::]:443 ssl default_server reuseport; + server_name datanar.ru www.datanar.ru; + + ssl_certificate /etc/letsencrypt/live/datanar.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/datanar.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/datanar.ru/chain.pem; + ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; + + return 200 'Let\'s Encrypt certificate successfully installed!'; + add_header Content-Type text/plain; +} \ No newline at end of file diff --git a/nginx-confs/robots.txt b/nginx-confs/robots.txt new file mode 100644 index 0000000..f216b49 --- /dev/null +++ b/nginx-confs/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: /tz_detect/ \ No newline at end of file diff --git a/requirements/prod.txt b/requirements/prod.txt index aa42807..1b4a13e 100644 --- a/requirements/prod.txt +++ b/requirements/prod.txt @@ -1,5 +1,5 @@ celery==5.0.0 -Django==4.2.13 +Django==4.2.14 django-allauth==0.63.3 django-cleanup==8.1.0 django-settings-export==1.2.1 From 1f7384a537f06c88bb3e6d9476d2fdd7ee8ebe5d Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Fri, 19 Jul 2024 17:03:07 +0300 Subject: [PATCH 02/13] feat: Datanar with docker (it`s experiment 2.0) --- .env.example | 34 +++++++++++++++++----------------- datanar/datanar/settings.py | 5 ++++- docker-compose.yml | 3 +-- nginx-confs/datanar_prod.conf | 10 +++++----- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/.env.example b/.env.example index e7ae5a0..caa9a99 100644 --- a/.env.example +++ b/.env.example @@ -1,23 +1,23 @@ -DJANGO_DEBUG=False -DJANGO_SECRET_KEY=this_is_test_key_-_some_very_dummy_secret_key -DJANGO_ALLOWED_HOSTS=* +DATANAR_DJANGO_DEBUG=False +DATANAR_SECRET_KEY=this_is_test_key_-_some_very_dummy_secret_key +DATANAR_ALLOWED_HOSTS=* -DJANGO_MAIL_HOST=smtp.mail.ru -DJANGO_MAIL_PORT=2525 -DJANGO_MAIL_USER=webmaster@localhost -DJANGO_MAIL_PASSWORD=this_very_secret_password_for_smtp_mail +DATANAR_MAIL_HOST=smtp.mail.ru +DATANAR_MAIL_PORT=2525 +DATANAR_MAIL_USER=webmaster@localhost +DATANAR_MAIL_PASSWORD=this_very_secret_password_for_smtp_mail -DJANGO_DEFAULT_USER_IS_ACTIVE=True -DJANGO_SUPERUSER_NAME=admin -DJANGO_SUPERUSER_EMAIL=webmaster@localhost -DJANGO_SUPERUSER_PASSWORD=this_very_secret_password_for_superuser +DATANAR_DEFAULT_USER_IS_ACTIVE=True +DATANAR_SUPERUSER_NAME=admin +DATANAR_SUPERUSER_EMAIL=webmaster@localhost +DATANAR_SUPERUSER_PASSWORD=this_very_secret_password_for_superuser -DJANGO_USE_SIMPLE_DATABASE=True -DJANGO_DATABASE_NAME=database -DJANGO_DATABASE_USER=webmaster -DJANGO_DATABASE_PASSWORD=this_very_secret_password_for_database -DJANGO_DATABASE_HOST=postgres -DJANGO_DATABASE_PORT=5432 +DATANAR_USE_FILE_DATABASE=True +DATANAR_DATABASE_NAME=database +DATANAR_DATABASE_USER=webmaster +DATANAR_DATABASE_PASSWORD=this_very_secret_password_for_database +DATANAR_DATABASE_HOST=postgres +DATANAR_DATABASE_PORT=5432 DATANAR_REDIS_HOST=redis DATANAR_REDIS_PORT=6379 diff --git a/datanar/datanar/settings.py b/datanar/datanar/settings.py index 6322a3c..e161d78 100644 --- a/datanar/datanar/settings.py +++ b/datanar/datanar/settings.py @@ -121,7 +121,10 @@ DATABASES = { "default": { "ENGINE": "django.db.backends.sqlite3", - "NAME": BASE_DIR / f"{config('DATANAR_DATABASE_NAME')}.sqlite3", + "NAME": ( + BASE_DIR + / f"{config('DATANAR_DATABASE_NAME', default='db')}.sqlite3" + ), }, } diff --git a/docker-compose.yml b/docker-compose.yml index 64bbb6c..a58bdf1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,3 @@ -version: "3.9" name: "datanar" services: @@ -37,7 +36,7 @@ services: - "80:80" - "443:443" volumes: - - ./nginx-confs/datanar_prod.conf:/etc/nginx/user_conf.d/datanar.conf + - ./nginx-confs/datanar_prod.conf:/etc/nginx/user_conf.d/gray-advantage.conf - django_media_volume:/datanar/media - django_static_volume:/datanar/static - nginx_certificates_volume:/etc/letsencrypt diff --git a/nginx-confs/datanar_prod.conf b/nginx-confs/datanar_prod.conf index 1695344..194e3a7 100644 --- a/nginx-confs/datanar_prod.conf +++ b/nginx-confs/datanar_prod.conf @@ -1,7 +1,7 @@ server { listen 80 default_server reuseport; listen [::]:80 default_server reuseport; - server_name _ datanar.ru www.datanar.ru; + server_name _ gray-advantage.ru www.gray-advantage.ru; location / { proxy_set_header Host $http_host; @@ -35,11 +35,11 @@ server { server { listen 443 ssl default_server reuseport; listen [::]:443 ssl default_server reuseport; - server_name datanar.ru www.datanar.ru; + server_name gray-advantage.ru www.gray-advantage.ru; - ssl_certificate /etc/letsencrypt/live/datanar.ru/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/datanar.ru/privkey.pem; - ssl_trusted_certificate /etc/letsencrypt/live/datanar.ru/chain.pem; + ssl_certificate /etc/letsencrypt/live/gray-advantage.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/gray-advantage.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/gray-advantage.ru/chain.pem; ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; return 200 'Let\'s Encrypt certificate successfully installed!'; From 27647d5029e976a63d90e63219fd1112c52223f4 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Fri, 19 Jul 2024 17:43:26 +0300 Subject: [PATCH 03/13] feat: Datanar with docker (it`s experiment 3.0) --- .env.example | 1 + docker-compose.yml | 3 ++- nginx-confs/datanar_prod.conf | 29 +++++++++++++++-------------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/.env.example b/.env.example index caa9a99..b2602fb 100644 --- a/.env.example +++ b/.env.example @@ -24,6 +24,7 @@ DATANAR_REDIS_PORT=6379 DATANAR_REDIS_DB=0 DATANAR_CERTBOT_DEBUG=1 +DATANAR_CERTBOT_STAGING=0 DATANAR_CERTBOT_EMAIL=exampleac@yandex.ru DJANGO_LOG_FILE_PATH=/path/to/log/file diff --git a/docker-compose.yml b/docker-compose.yml index a58bdf1..ff70487 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -30,13 +30,14 @@ services: environment: DEBUG: ${DATANAR_CERTBOT_DEBUG} CERTBOT_EMAIL: ${DATANAR_CERTBOT_EMAIL} - STAGING: ${DATANAR_CERTBOT_DEBUG} + STAGING: ${DATANAR_CERTBOT_STAGING} restart: always ports: - "80:80" - "443:443" volumes: - ./nginx-confs/datanar_prod.conf:/etc/nginx/user_conf.d/gray-advantage.conf + - ./nginx-confs/robots.txt:/datanar/static/robots.txt - django_media_volume:/datanar/media - django_static_volume:/datanar/static - nginx_certificates_volume:/etc/letsencrypt diff --git a/nginx-confs/datanar_prod.conf b/nginx-confs/datanar_prod.conf index 194e3a7..2e66e5d 100644 --- a/nginx-confs/datanar_prod.conf +++ b/nginx-confs/datanar_prod.conf @@ -3,6 +3,21 @@ server { listen [::]:80 default_server reuseport; server_name _ gray-advantage.ru www.gray-advantage.ru; + location / { + return 301 https://$http_host$request_uri; + } +} + +server { + listen 443 ssl default_server reuseport; + listen [::]:443 ssl default_server reuseport; + server_name gray-advantage.ru www.gray-advantage.ru; + + ssl_certificate /etc/letsencrypt/live/gray-advantage.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/gray-advantage.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/gray-advantage.ru/chain.pem; + ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; + location / { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; @@ -30,18 +45,4 @@ server { location /media/ { root /datanar; } -} - -server { - listen 443 ssl default_server reuseport; - listen [::]:443 ssl default_server reuseport; - server_name gray-advantage.ru www.gray-advantage.ru; - - ssl_certificate /etc/letsencrypt/live/gray-advantage.ru/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/gray-advantage.ru/privkey.pem; - ssl_trusted_certificate /etc/letsencrypt/live/gray-advantage.ru/chain.pem; - ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; - - return 200 'Let\'s Encrypt certificate successfully installed!'; - add_header Content-Type text/plain; } \ No newline at end of file From 9feb974daf304652913e8304ac1a4bad712aa9b8 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Fri, 19 Jul 2024 18:00:44 +0300 Subject: [PATCH 04/13] feat: Datanar with docker (it`s experiment 4.0) --- nginx-confs/datanar_prod.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nginx-confs/datanar_prod.conf b/nginx-confs/datanar_prod.conf index 2e66e5d..368bfdf 100644 --- a/nginx-confs/datanar_prod.conf +++ b/nginx-confs/datanar_prod.conf @@ -1,7 +1,7 @@ server { listen 80 default_server reuseport; listen [::]:80 default_server reuseport; - server_name _ gray-advantage.ru www.gray-advantage.ru; + server_name gray-advantage.ru www.gray-advantage.ru; location / { return 301 https://$http_host$request_uri; From ab1b049964f383cb8fc4f374dd69fdf69ebd36f8 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Fri, 19 Jul 2024 18:17:07 +0300 Subject: [PATCH 05/13] feat: Datanar with docker (it`s experiment 5.0) --- nginx-confs/datanar_prod.conf | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/nginx-confs/datanar_prod.conf b/nginx-confs/datanar_prod.conf index 368bfdf..681e98b 100644 --- a/nginx-confs/datanar_prod.conf +++ b/nginx-confs/datanar_prod.conf @@ -1,13 +1,3 @@ -server { - listen 80 default_server reuseport; - listen [::]:80 default_server reuseport; - server_name gray-advantage.ru www.gray-advantage.ru; - - location / { - return 301 https://$http_host$request_uri; - } -} - server { listen 443 ssl default_server reuseport; listen [::]:443 ssl default_server reuseport; From 7fd9f8661b410ae6b62426d31bbaa411027f5b0d Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 01:31:48 +0300 Subject: [PATCH 06/13] feat: Datanar with Docker - 2.0.0 --- .dockerignore | 119 +---- .env.example | 15 +- .gitignore | 8 +- Dockerfile | 8 +- README.md | 436 +++--------------- datanar/datanar/settings.py | 18 +- datanar/static_dev/img/authors/artem.jpg | Bin 0 -> 115242 bytes datanar/static_dev/img/authors/sergey.jpg | Bin 0 -> 44468 bytes datanar/static_dev/img/authors/vladimir.jpg | Bin 0 -> 103854 bytes datanar/static_dev/img/for_readme/artem.jpg | Bin 1398 -> 0 bytes datanar/static_dev/img/for_readme/scheme.png | Bin 53386 -> 0 bytes datanar/static_dev/img/for_readme/sergey.jpg | Bin 1402 -> 0 bytes .../static_dev/img/for_readme/vladimir.jpg | Bin 981 -> 0 bytes datanar/templates/homepage/about.html | 6 +- .../management/commands/init_superuser.py | 8 + docker-compose.yml | 59 ++- docs/docker-install.md | 200 ++++++++ docs/env-file.md | 223 +++++++++ docs/for_readme/scheme.png | Bin 0 -> 71036 bytes docs/native-install.md | 375 +++++++++++++++ .../nginx-confs}/datanar_local.conf | 0 .../nginx-confs}/datanar_prod.conf | 8 +- .../nginx-confs}/robots.txt | 0 23 files changed, 955 insertions(+), 528 deletions(-) create mode 100644 datanar/static_dev/img/authors/artem.jpg create mode 100644 datanar/static_dev/img/authors/sergey.jpg create mode 100644 datanar/static_dev/img/authors/vladimir.jpg delete mode 100644 datanar/static_dev/img/for_readme/artem.jpg delete mode 100644 datanar/static_dev/img/for_readme/scheme.png delete mode 100644 datanar/static_dev/img/for_readme/sergey.jpg delete mode 100644 datanar/static_dev/img/for_readme/vladimir.jpg create mode 100644 docs/docker-install.md create mode 100644 docs/env-file.md create mode 100644 docs/for_readme/scheme.png create mode 100644 docs/native-install.md rename {nginx-confs => for_docker/nginx-confs}/datanar_local.conf (100%) rename {nginx-confs => for_docker/nginx-confs}/datanar_prod.conf (73%) rename {nginx-confs => for_docker/nginx-confs}/robots.txt (100%) diff --git a/.dockerignore b/.dockerignore index b76c127..b7916b1 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,115 +1,4 @@ -__pycache__/ -*.py[cod] -*.pyc -*$py.class - -*.so -db.sqlite3 -.Python -build/ -develop-eggs/ -dist/ -eggs/ -.eggs/ -lib/ -lib64/ -media/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -*.manifest -*.spec - -pip-log.txt -pip-delete-this-directory.txt - -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -cache/ -/cache/ -cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -*.mo -*.pot - -*.log -local_settings.py -db.sqlite3-journal - -instance/ -.webassets-cache - -.scrapy - -docs/_build/ - -.pybuilder/ -target/ - -.ipynb_checkpoints - -profile_default/ -ipython_config.py - -.python-version - -Pipfile.lock - -poetry.lock - -pdm.lock - -.pdm.toml - -__pypackages__/ - -celerybeat-schedule -celerybeat.pid - -*.sage.py - -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -.spyderproject -.spyproject - -.ropeproject - -/site - -.mypy_cache/ -.dmypy.json -dmypy.json - -.pyre/ - -.pytype/ - -cython_debug/ - -.idea/ -.vscode/ +**/*.sqlite3 +**/*.mo +**/static +**/media \ No newline at end of file diff --git a/.env.example b/.env.example index b2602fb..79f7c47 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,8 @@ +COMPOSE_PROFILES=dev + DATANAR_DJANGO_DEBUG=False DATANAR_SECRET_KEY=this_is_test_key_-_some_very_dummy_secret_key +DJANGO_LOG_FILE_PATH=./logs/django.log DATANAR_ALLOWED_HOSTS=* DATANAR_MAIL_HOST=smtp.mail.ru @@ -7,12 +10,12 @@ DATANAR_MAIL_PORT=2525 DATANAR_MAIL_USER=webmaster@localhost DATANAR_MAIL_PASSWORD=this_very_secret_password_for_smtp_mail -DATANAR_DEFAULT_USER_IS_ACTIVE=True +DATANAR_DEFAULT_USER_IS_ACTIVE=False DATANAR_SUPERUSER_NAME=admin DATANAR_SUPERUSER_EMAIL=webmaster@localhost DATANAR_SUPERUSER_PASSWORD=this_very_secret_password_for_superuser -DATANAR_USE_FILE_DATABASE=True +DATANAR_USE_FILE_DATABASE=False DATANAR_DATABASE_NAME=database DATANAR_DATABASE_USER=webmaster DATANAR_DATABASE_PASSWORD=this_very_secret_password_for_database @@ -24,9 +27,5 @@ DATANAR_REDIS_PORT=6379 DATANAR_REDIS_DB=0 DATANAR_CERTBOT_DEBUG=1 -DATANAR_CERTBOT_STAGING=0 -DATANAR_CERTBOT_EMAIL=exampleac@yandex.ru - -DJANGO_LOG_FILE_PATH=/path/to/log/file - -COMPOSE_PROFILES=dev +DATANAR_CERTBOT_STAGING=1 +DATANAR_CERTBOT_EMAIL=webmaster@localhost \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2550e87..37bd28a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,13 @@ __pycache__/ *.pyc *$py.class +for_docker/nginx_certificates +for_docker/postgres_data +for_docker/logs +static/ +media/ +logs/ + *.so *.sqlite3 .Python @@ -13,7 +20,6 @@ eggs/ .eggs/ lib/ lib64/ -media/ parts/ sdist/ var/ diff --git a/Dockerfile b/Dockerfile index 4a7bd41..ac8dc40 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ RUN apt update RUN apt install gettext -y COPY ./requirements /requirements -RUN pip install -r requirements/prod.txt +RUN pip install -r requirements/dev.txt RUN rm -rf requirements COPY ./datanar /datanar/ @@ -14,4 +14,8 @@ CMD python manage.py migrate \ && python manage.py init_superuser \ && python manage.py compilemessages \ && python manage.py collectstatic --no-input \ - && python manage.py runserver 0.0.0.0:8000 \ No newline at end of file + && gunicorn datanar.wsgi:application \ + --workers $(nproc) \ + --bind 0.0.0.0:8000 \ + --access-logfile /datanar/logs/gunicorn_access.log \ + --error-logfile /datanar/logs/gunicorn_error.log \ No newline at end of file diff --git a/README.md b/README.md index 1431fd1..2466ad0 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,22 @@ # [Datanar](https://datanar.ru) - сайт по сокращению ссылок +--- + ## Содержание - [Введение](#введение) + - [Полезность](#для-чего-может-быть-полезно-сокращать-ссылки) + - [Существующие решения](#существующие-решения) + - [Возможности datanar](#с-datanar-вы-можете) - [Структура проекта](#структура-проекта) - - [База данных](#база-данных) -- [Локальное развёртывание](#локальное-развёртывание) - - [Установка Python](#установка-python) - - [Установка Git](#установка-git) - - [Windows](#windows) - - [MacOS](#macos) - - [Linux](#linux-debian--ubuntu) - - [Установка Redis](#установка-redis) - - [Windows](#windows-1) - - [MacOS](#macos-1) - - [Linux](#linux-debian--ubuntu-1) - - [Установка gettext](#установка-gettext) - - [Windows](#windows-2) - - [MacOS](#macos-2) - - [Linux](#linux-debian--ubuntu-2) - - [Клонирование репозитория](#клонирование-репозитория) - - [Установка виртуального окружения](#установка-виртуального-окружения) - - [Установка зависимостей](#установка-зависимостей) - - [Настройка сервера](#настройка-сервера) - - [Запуск сервера Django](#запуск-сервера-django) -- [Авторы](#авторы) + - [Стек технологий](#используемые-фреймворки--библиотеки) + - [База данных](#база-данных) + - [Контейнеры docker](#контейнеры-docker) +- [Развёртывание](#развёртывание) + - [Нативная установка](#нативная-установка) + - [Контейнеризация docker](#контейнеризация-docker) +- [Авторы](#авторы---эти-прекрасные-люди) +--- ## Введение [Datanar](https://datanar.ru) представляет собой сервис для сокращения ссылок, @@ -33,10 +25,11 @@ ### Для чего может быть полезно сокращать ссылки: - Для визуальной привлекательности -- Для удобства передачи не по сети +- Для удобства передачи ссылки не по сети (в разговоре или в выводе на экран) - Для отслеживания статистики переходов - Для защиты конечного ресурса с помощью пароля +### Существующие решения Это не новая идея и уже существуют множество сервисов с похожим функционалом, вот их небольшой срез: @@ -66,353 +59,74 @@ - Указывать сколько переходов можно совершить по ссылке - Связать свой сервис с нашим по API +--- + +## Структура проекта ### Используемые фреймворки / библиотеки - [Bootstrap](https://getbootstrap.com/) - популярная (html / css / js) -библиотека для фронтенда + библиотека для фронтенда - [Celery](https://docs.celeryq.dev/en/stable/) - очередь задач -(в качестве брокера выступает [Redis](https://redis.io/)) + (в качестве брокера сообщений выступает [Redis](https://redis.io/)) - [Chart.js](https://www.chartjs.org/) - отрисовка диаграмм в статистике - [DB-IP](https://db-ip.com) - определение страны и города переходящего по IP - [Django](https://www.djangoproject.com/) - основной фреймворк web сервиса +- [Docker](https://www.docker.com/) - развёртывание сайта на удалённом сервере - [Segno](https://github.com/heuer/segno/) - генерация QR-кодов - [Sqids](https://sqids.org/) - для помощи в генерации сокращённых ссылок -## Структура проекта - ### База данных - Функциональная структура базы данных следующая: -![scheme](datanar/static_dev/img/for_readme/scheme.png) - -Основных моделей две - Redirect и Click -- Redirect - хранит в себе связь между длинной и короткой ссылкой -- Click - хранит информацию о переходе по redirect -(Для статистики и для ограничения по переходам) - -## Локальное развёртывание - -### Установка Python -Для запуска этого проекта вам потребуется Python. - -Если у вас его еще нет, вы можете скачать его с официального -[сайта](https://www.python.org/downloads/), рекомендуется установить версию в -диапазоне 3.9 - 3.12 - -### Установка Git - -#### Windows - -1. Скачайте установщик Git с официального -[сайта](https://git-scm.com/download/win) -2. Запустите установщик и следуйте инструкциям на экране. - -#### MacOS - -1. Откройте терминал. -2. Установите [Homebrew](https://brew.sh/), если у вас его еще нет, с помощью - следующей команды: - ```bash - /bin/bash -c"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - ``` -3. Установите Git с помощью команды: - ```bash - brew install git - ``` - -#### Linux (Debian / Ubuntu) - -1. Откройте терминал. -2. Обновите список пакетов: - ```bash - sudo apt update - ``` -3. Установите Git с помощью следующих команд: - ```bash - sudo apt install git - ``` - -После установки Git вы можете проверить его версию и убедиться, что он -установлен правильно, с помощью команды `git --version`. -Эта команда должна вывести версию Git на экран. - -### Установка Redis - -Для celery (очередь задач, для обработки файлов со ссылками) требуется -установить redis - -#### Windows - -Redis официально не поддерживает Windows, поэтому ниже описанный способ может -не сработать (лично у нас получилось запустить, но без виртуального окружения) - -1. Скачать неофициальный [порт](https://github.com/tporadowski/redis/releases) -и запустить установщик msi (от имени администратора) -2. В диспетчере задач в службах должна появится служба Redis - -#### MacOS - -1. Откройте терминал. -2. Установите [Homebrew](https://brew.sh/), если у вас его еще нет, с помощью - следующей команды: - ```bash - /bin/bash -c"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - ``` -3. Установите Redis с помощью команды: - ```bash - brew install redis - ``` -4. Запустите Redis: - ```bash - brew services start redis - ``` - -#### Linux (Debian / Ubuntu) - -1. Откройте терминал. -2. Обновите список пакетов: - ```bash - sudo apt update - ``` -3. Установите Redis с помощью следующих команд: - ```bash - sudo apt install redis - ``` - -### Установка gettext - -#### Windows - -Скачать и запустить [установщик](https://mlocati.github.io/articles/gettext-iconv-windows.html) -gettext для windows - -#### MacOS - -1. Откройте терминал. -2. Установите [Homebrew](https://brew.sh/), если у вас его еще нет, с помощью - следующей команды: - ```bash - /bin/bash -c"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - ``` -3. Установите gettext с помощью команды: - ```bash - brew install gettext - ``` - -#### Linux (Debian / Ubuntu) - -1. Откройте терминал. -2. Обновите список пакетов: - ```bash - sudo apt update - ``` -3. Установите gettext с помощью следующих команд: - ```bash - sudo apt install gettext - ``` - -### Клонирование репозитория - -1. Откройте терминал (cmd для Windows, Terminal для Mac). -2. Перейдите в директорию, где вы хотите сохранить проект, используя команду -`cd`. Например: `cd C:\Users\YourUsername\Documents\myProjects\sites` или -`cd ~/myProject/sites` -3. Клонируйте репозиторий, используя следующую команду: - ```bash - git clone https://github.com/Gray-Advantage/Datanar-Django.git - ``` - -### Установка виртуального окружения - -Напомним, что лично у нас на windows не получилось запустить redis в -виртуальном окружении, поэтому попробуйте пропустить шаг 2 и 3 - -1. В терминале перейдите в директорию проекта: - ```bash - cd datanar - ``` - -2. Создайте виртуальное окружение: - - На Windows: - ```bash - python -m venv venv - ``` - - На Mac или Linux: - ```bash - python3 -m venv venv - ``` - Стоит отметить, что не всегда на linux будет работать python3, а на windows - python, попробуйте оба варианта. - -3. Активируйте виртуальное окружение: - - На Windows: - ```bash - venv\Scripts\activate - ``` - - На Mac или Linux: - ```bash - source venv/bin/activate - ``` - -### Установка зависимостей - -Установите все необходимые пакеты, используя следующую команду: -```bash -pip install -r requirements/prod.txt -``` -Опять, стоит отметить, что возможны два варианта - `pip` или `pip3`, зависит -от вашей ОС. - -Также добавьте файл `.env` в текущую директорию со следующим содержанием: -``` -DJANGO_DEBUG=False -DJANGO_SECRET_KEY=this_is_test_key_-_some_very_dummy_secret_key -DJANGO_ALLOWED_HOSTS=* -DJANGO_MAIL_HOST=smtp.mail.ru -DJANGO_MAIL_PORT=2525 -DJANGO_MAIL_USER=webmaster@localhost -DJANGO_MAIL_PASSWORD=this_very_secret_password_for_smtp_mail -DEFAULT_USER_IS_ACTIVE=False -DJANGO_USE_SIMPLE_DATABASE=True -DJANGO_LOG_FILE_PATH=/path/to/log/file -``` -`DJANGO_SECRET_KEY`, `DJANGO_ALLOWED_HOSTS` замените на свои значения. - -`DJANGO_MAIL_HOST`, `DJANGO_MAIL_PORT`, `DJANGO_MAIL_USER`, -`DJANGO_MAIL_PASSWORD` - настройки почтового сервиса, используйте свои. - -`DJANGO_LOG_FILE_PATH` - путь, по которому приложение будет записывать все логи -(уровень логирования WARNING и выше) - -`DJANGO_USE_SIMPLE_DATABASE` - Если `True`, то приложение будет использовать в -качестве базы данных простой файл. -Если установлено значение `False`, то необходимо указать настройки для сложной -СУБД ([postgresql](https://www.postgresql.org/)): -`DJANGO_DATABASE_NAME` - название вашей БД, `DJANGO_DATABASE_USER` - имя -пользователя БД, `DJANGO_DATABASE_PASSWORD` - пароль пользователя БД. -Предполагается, что БД находиться там же, где и приложения и работает на порту -5432 - -Настройка `DEFAULT_USER_IS_ACTIVE=False` - означает, что перед использованием -сервиса обязательно требуется подтверждённая почта, установите `True`, если -этого не нужно - -Также структура `.env` продублирована `.env.example` для удобства. - -С помощью следующей команды, вы можете, сразу создать и скопировать данные из -`.env.example` в `.env` -- На Windows: - ```bash - copy .env.example .env - ``` -- На Mac или Linux: - ```bash - cp .env.example .env - ``` - -Если не добавить `.env` или просто продублировать информацию из `.env.example` -в `.env`, приложение будет запущено с дефолтными настройками, что -не рекомендуется по соображениям безопасности. - -### Настройка сервера - -Скомпилируйте файлы локализации данного проекта: -```bash -django-admin compilemessages -``` - -Если возникает ошибка, по перейдите в директорию `datanar`: -```bash -cd datanar -``` - -И повторите немного изменённую команду: -```bash -python3 manage.py compilemessages -``` - -Перейдите в директорию `datanar`, если вы этого ещё не сделали: -```bash -cd datanar -``` - -Создайте базу данных: -```bash -python3 manage.py migrate -``` - -Также сделайте сбор статики, если будет предупреждение про перезапись файлов -введите "yes": -```bash -python3 manage.py collectstatic -``` - -Ещё нужно будет создать суперпользователя (админа) сайта: -```bash -python3 manage.py createsuperuser -``` -Введите логин, почту и пароль суперпользователя. - -В зависимости от настроек, перед попаданием в админ панель вам может -потребоваться подтвердить свою почту. - -Теперь можете зарегистрироваться с этими данными на сайте и в правом верхнем -углу, нажав на свою аватарку, в списке вы увидите пункт "Админка", -которая и приведёт вас в админ панель. - -### Запуск сервера Django - -Запустите рабочий процесс celery в новой консоле: -```bash -celery -A datanar worker -l INFO -``` - -Запустите сервер Django с помощью следующей команды: -```bash -python3 manage.py runserver -``` - -Помните, что Django в прод режиме (т.е. сейчас) не отдаёт статику -(например картинки) по соображениям оптимизации, для этого нужно настроить -отдельный web-сервер. Или же запустить Django в режиме разработки. - -Если вы хотите запустить Django в режиме разработки, то не забудьте установить -дополнительные зависимости: -```bash -cd .. -``` -```bash -pip install -r requirements/test.txt -``` -```bash -cd datanar -``` -А в файле `.env` перевести переменную `DJANGO_DEBUG` в `True`: -``` -DJANGO_DEBUG=True -... -``` - -Установив зависимости `test.txt`, вы также получите возможность запустить тесты -для локальной проверки целостности проекта: -```bash -python3 manage.py test -``` - -Ожидаемый результат после выполнения команды: `OK` - -*** - -После запуска вы должны иметь возможность открыть проект в браузере по адресу -http://127.0.0.1:8000/. - -Вы потрясающие! © - -## Авторы -![sergey](datanar/static_dev/img/for_readme/sergey.jpg) -Андреев Сергей [@Gray_Advantage](https://t.me/Gray_Advantage) - -![vladimir](datanar/static_dev/img/for_readme/vladimir.jpg) -Клименко Владимир [@brandonzorn](https://t.me/brandonzorn) - -![artem](datanar/static_dev/img/for_readme/artem.jpg) -Третьяков Артем [@piper273](https://t.me/piper273) +![scheme](docs/for_readme/scheme.png) + +Основных моделей три - `Redirect`, `Click` и `BlockedDomain` +- `Redirect` - хранит в себе связь между длинной и короткой ссылкой +- `Click` - хранит информацию о переходе по `Redirect` +(Для статистики и для ограничения по количеству переходов) +- `BlockedDomain` - регулярное выражение, описывающие url-адреса, которые +запрещены для сокращения + +### Контейнеры docker +Проект развёрнут с помощью технологии контейнеризации docker compose и имеет +следующие [контейнеры](docker-compose.yml): + +- [Postgres](https://hub.docker.com/_/postgres) - мощная и современная СУБД, + используется как основная БД проекта +- [Django](Dockerfile) - собственный контейнер на базе + [python 3.12](https://hub.docker.com/_/python) c исходным кодом проекта +- [Nginx-prod](https://hub.docker.com/r/jonasal/nginx-certbot) - + модифицированная версия классического nginx контейнера, добавлен certbot для + автоматического создания и продления SSL сертификатов для https соединения +- [Nginx-dev](https://hub.docker.com/_/nginx) - обратный прокси-сервер, нужен + для обслуживания статических запросов, применяется только во время разработки +- [Redis](https://hub.docker.com/_/redis) - быстрый сервер баз данных типа + ключ-значение. Требуется для celery +- [Celery](Dockerfile) - контейнер, созданный на базе `Django`, но с + изменённой командой запуска + +--- + +## Развёртывание +Данная документация имеет два основных способа запуска (развёртывания) +приложения: +### [Нативная установка](docs/native-install.md) +- подразумевает загрузку всего необходимого ПО непосредственно на локальную + машину, с последующей ручной установкой и настройкой каждого компонента. + Долгий и трудный путь, зато вы имеете полный контроль над всем происходящим + +### [Контейнеризация docker](docs/docker-install.md) +- подразумевает загрузку одной единственной программы и её настройку, а дальше + запуск всего приложения в полной комплектации с помощью одной команды. + Быстрый и простой путь, большая часть вопросов уже решена, остальное дело + техники + +--- + +## Авторы - эти прекрасные люди: +sergey +Андреев Сергей (Github | Telegram) +
+vladimir +Клименко Владимир (Github | Telegram) +
+artem +Третьяков Артем (Github | Telegram) \ No newline at end of file diff --git a/datanar/datanar/settings.py b/datanar/datanar/settings.py index e161d78..551a235 100644 --- a/datanar/datanar/settings.py +++ b/datanar/datanar/settings.py @@ -7,7 +7,7 @@ BASE_DIR = Path(__file__).resolve().parent.parent -VERSION = "1.7.3" +VERSION = "2.0.0" SECRET_KEY = config( "DATANAR_SECRET_KEY", @@ -128,7 +128,7 @@ }, } -if not strtobool(config("DATANAR_USE_FILE_DATABASE", "True")): +if not strtobool(config("DATANAR_USE_FILE_DATABASE", default="True")): DATABASES = { "default": { "ENGINE": "django.db.backends.postgresql_psycopg2", @@ -172,7 +172,7 @@ AUTH_USER_MODEL = "users.User" DEFAULT_USER_IS_ACTIVE = bool( - strtobool(config("DATANAR_DEFAULT_USER_IS_ACTIVE", "False")), + strtobool(config("DATANAR_DEFAULT_USER_IS_ACTIVE", default="False")), ) LOGIN_URL = "/auth/login/" @@ -235,14 +235,14 @@ GEOIP_PATH = "geo_ip" CELERY_BROKER_URL = ( - f"redis://{config('DATANAR_REDIS_HOST', cast=str)}" - f":{config('DATANAR_REDIS_PORT', cast=str)}" - f"/{config('DATANAR_REDIS_DB', cast=str)}" + f"redis://{config('DATANAR_REDIS_HOST', default='localhost', cast=str)}:" + f":{config('DATANAR_REDIS_PORT', default='6379', cast=str)}" + f"/{config('DATANAR_REDIS_DB', default='0', cast=str)}" ) CELERY_RESULT_BACKEND = ( - f"redis://{config('DATANAR_REDIS_HOST', cast=str)}:" - f"{config('DATANAR_REDIS_PORT', cast=str)}/" - f"{config('DATANAR_REDIS_DB', cast=str)}" + f"redis://{config('DATANAR_REDIS_HOST', default='localhost', cast=str)}:" + f"{config('DATANAR_REDIS_PORT', default='6379', cast=str)}/" + f"{config('DATANAR_REDIS_DB', default='0', cast=str)}" ) SETTINGS_EXPORT = [ diff --git a/datanar/static_dev/img/authors/artem.jpg b/datanar/static_dev/img/authors/artem.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2fafa8c848069900cc40e459c2f0cc980b45a6c3 GIT binary patch literal 115242 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

pvTMx~Wl2FM{#Yz$}L8jiO7 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 n#OivZN_VD>a1$ZnkBPRo(p`iiq9xmYi7doq) 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 literal 0 HcmV?d00001 diff --git a/datanar/static_dev/img/authors/vladimir.jpg b/datanar/static_dev/img/authors/vladimir.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48100d9f28b50d0f2fba85a37ebd416c264bdc2b GIT binary patch literal 103854 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 Y&K19=aw~E1D~A>iEpT)Eal^R{INYfI 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

s>XoEwxN>LJwHxS@eB=EUVH#6k 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

#?4Mey0mAtc)Ar>+3ck~n2Y^o1G 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 j?~nc;voY(qGJf=^*6(Wi-1CZ diff --git a/datanar/static_dev/img/for_readme/sergey.jpg b/datanar/static_dev/img/for_readme/sergey.jpg deleted file mode 100644 index 33863ad8e195ac8a9cf5b985d43a545f15e103ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1402 zcmex=kRWHEngu|%MmiEZ35i`^Qcwa^a{{D3xu6Kdz5`_2;eIhi+NJ>LW6;H1Q5$G6f*=dxHC8b*;ECH@XTMtz+mx}fq{7fLM&+}1H<-K1_p^+ z2r-of3=I4&3=G@O7bF%Xf*r#GB$?9E7#Kb+XJFusWMB}!z`(#24Ra_$FCs2*_*DU@ zM+WH6d>~9`$YDrjP+;(6$YV%m&;zoJ7z`K;8O;9QW^iU;0s%%4!3;#qY%I(`z|P9b z!p6bQ$-%+S!NJMJ%gxEf!^OeD&Ckul%g4vh$H^@qD8MHOWb=UxVFYRf>0)7F=i}ty z1d5Uf{vTivJ-`jR0&MoD8h&Kq)N&21cNbER4*o zP+6cGSXkKv8Q6t5gcS`F9Sa*pM3t0{fNCWeLB=2q0h-Fn&cX(i(GX-{0vf}}!3>iH znIfpjz$(x|roQ9~{n$ z^k>;K`{YV5J87h(7n-+kRZdZZwBUoapJI-AXdUqQRdsIey_Prk=IZ`!5`Xv1r#o_| zmMK%a$j;amSC%zRYP(q=T2y#wY0)9!mznaXB`-g%&Aacv`CIDKw<&CSGe5?8YlKSK zCn%;e#@~6oe5ME2rzs0oEA&gKyLc{WixWQbBw}6!Xa0uD_~lo>p59vbUN@sT*JH+K z4wgBMIt8pJUAXIu?z%0wdi?T}6C%q}0`x4dF7Hr1@y=-36ayoR`3m!w+0=g7e?{|h zW@!6^5am@m+d_{XyV|qlpH0^D9rvz;to*Ect-MKB=~a-x#QbIKFD1QBbv%0f+E28f zrA6lNR~@UKC5L-=8oavlQs;E5ip9;srJtTHSQqoTal(Q%&*eVPRcWujmHjG;%e1<` zEJ&ok>45wTsjXMbjJKHF_L;plqt|*LDPBe#7I$`Ew?|>F-P*C&ciEy!GyiRrC1IkYwGU>U@pM;~-156!W#q z;Y_YtKiOqX?ZPw;w$Hfu_ioJ{@o&#g?_Ae)`~CSz0!yu$fT@?m!^@FDMy2Y))3AqY z!j#;*gI3xGCRy6HdN8cD{Q3RIxgAxvq+DgZL>U-e8~*b5=4Rbm&R=dn`Re3HXFu8W J6|et)698|5Xkh>V diff --git a/datanar/static_dev/img/for_readme/vladimir.jpg b/datanar/static_dev/img/for_readme/vladimir.jpg deleted file mode 100644 index e4354f392bbb82254d46d012726b8a6e1fc5bad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 981 zcmex=$;=9s2D*WTl}(U= zT~SEbki#)hM7dDOII(ddP_Y=$$Bam(Ffg#PGXurd1i^-|AnagdVi9C!Rb()9WD^n& z6e%=vTKNAK0}nIM9fHh)4E79cQ^MA7Ypr~2adpa#MB9MbX32q^z=ccUqx1g_P#jC_C-%Gc1 zY})q$2V!rwK}UAw2qJAL-2%^!grOF%sLh3M;U$>&eF5pu(L(G zcgCAe-M=pK%V%_QmRa@RF3?n;GV#G5 zg0Hq!zsyQiI2AluVRbe~l(u^<6AloxhpU z$JFxElqI`bH9d5;JaSZ&bDFk+%gN!wj*vwk3%!G`&eyWEy3u(ldF6q_tMYeng*HDC zY_h-0SoqRvy}aII&r1^?JXGJRqRx`w@<8}^vGvPkcik>cW!duM@F8>ABU6iKPI=Pc z@m4x>S>CN%y0dOYznXN^=>GN>*K6EX6laBUUFLEPQi=+E>*^8JU+S-8vFRDVmoziG zmWtS;=qtaAi=G9qxHNwvN6FerKc1*G6kfB4w|r7x^E_tBue(mMe5`gZt-FOZ!!K`H znyULXc{THs$CKZ$VT}r0zE$!%_Z!pS86~VOb;gfBE_oBiUe?vMHuB)Ar46DMYzC7j mExs%L{0GA|^XSXkz5HC#T?vw&(oOX$k65aXOQ*~KzX<@Tab#Tp diff --git a/datanar/templates/homepage/about.html b/datanar/templates/homepage/about.html index 4d7adb7..8ab406c 100644 --- a/datanar/templates/homepage/about.html +++ b/datanar/templates/homepage/about.html @@ -50,19 +50,19 @@

{% trans "developers" %}
- vladimir + vladimir

{% trans "vladimir" %}

@brandonzorn
- artem + artem

{% trans "artem" %}

@piper273
diff --git a/datanar/users/management/commands/init_superuser.py b/datanar/users/management/commands/init_superuser.py index ae5a4b8..355e994 100644 --- a/datanar/users/management/commands/init_superuser.py +++ b/datanar/users/management/commands/init_superuser.py @@ -25,5 +25,13 @@ def handle(self, *args, **options): verified=True, ) + self.stdout.write( + self.style.SUCCESS("Superuser created successfully!"), + ) + else: + self.stdout.write( + self.style.SUCCESS("Superuser already exist!"), + ) + __all__ = [] diff --git a/docker-compose.yml b/docker-compose.yml index ff70487..d0e1fa2 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ name: "datanar" services: postgres: - image: postgres:15 + image: postgres:16 container_name: postgres environment: POSTGRES_DB: ${DATANAR_DATABASE_NAME} @@ -10,7 +10,10 @@ services: POSTGRES_PASSWORD: ${DATANAR_DATABASE_PASSWORD} restart: always volumes: - - postgres_data_volume:/var/lib/postgresql/data + - ./for_docker/postgres_data:/var/lib/postgresql/data + profiles: + - prod + - dev django: build: . @@ -19,44 +22,48 @@ services: - ./.env restart: always volumes: - - django_static_volume:/datanar/static - - django_media_volume:/datanar/media + - ./for_docker/static:/datanar/static + - ./for_docker/media:/datanar/media + - ./for_docker/logs:/datanar/logs depends_on: - postgres + profiles: + - prod + - dev - nginx_production: + nginx-prod: image: jonasal/nginx-certbot:latest - container_name: nginx + container_name: nginx-prod environment: DEBUG: ${DATANAR_CERTBOT_DEBUG} - CERTBOT_EMAIL: ${DATANAR_CERTBOT_EMAIL} STAGING: ${DATANAR_CERTBOT_STAGING} + CERTBOT_EMAIL: ${DATANAR_CERTBOT_EMAIL} restart: always ports: - "80:80" - "443:443" volumes: - - ./nginx-confs/datanar_prod.conf:/etc/nginx/user_conf.d/gray-advantage.conf - - ./nginx-confs/robots.txt:/datanar/static/robots.txt - - django_media_volume:/datanar/media - - django_static_volume:/datanar/static - - nginx_certificates_volume:/etc/letsencrypt + - ./for_docker/nginx-confs/datanar_prod.conf:/etc/nginx/user_conf.d/datanar.conf + - ./for_docker/nginx-confs/robots.txt:/datanar/static/robots.txt + - ./for_docker/nginx_certificates:/etc/letsencrypt + - ./for_docker/static:/datanar/static + - ./for_docker/media:/datanar/media depends_on: - django profiles: - prod - nginx_localhost: + nginx-dev: image: nginx:latest - container_name: nginx + container_name: nginx-dev restart: always ports: - "80:80" volumes: - - ./nginx-confs/datanar_local.conf:/etc/nginx/conf.d/default.conf - - ./nginx-confs/robots.txt:/datanar/static/robots.txt - - django_media_volume:/datanar/media - - django_static_volume:/datanar/static + - ./for_docker/nginx-confs/datanar_local.conf:/etc/nginx/conf.d/default.conf + - ./for_docker/nginx-confs/robots.txt:/datanar/static/robots.txt + - ./for_docker/static:/datanar/static + - ./for_docker/media:/datanar/media depends_on: - django profiles: @@ -66,6 +73,10 @@ services: image: redis:latest container_name: redis restart: always + command: bash -c "redis-server --save '' --appendonly no" + profiles: + - prod + - dev celery: build: . @@ -75,13 +86,11 @@ services: restart: always command: bash -c "celery -A datanar worker" volumes: - - django_media_volume:/datanar/media + - ./for_docker/media:/datanar/media + - ./for_docker/logs:/datanar/logs depends_on: - postgres - redis - -volumes: - django_media_volume: - django_static_volume: - nginx_certificates_volume: - postgres_data_volume: + profiles: + - prod + - dev \ No newline at end of file diff --git a/docs/docker-install.md b/docs/docker-install.md new file mode 100644 index 0000000..b9ac38e --- /dev/null +++ b/docs/docker-install.md @@ -0,0 +1,200 @@ +# [Datanar](https://datanar.ru) - Контейнеризация docker + +> Это инструкция, которая по шагам распишет развёртывание сайта с помощью +> docker на локальной машине, приятного чтения! + +--- + +## Содержание +- [Преамбула](#преамбула) +- [Установка Git](#установка-git) + - [Windows](#windows) + - [MacOS](#macos) + - [Linux](#linux-debian--ubuntu) +- [Установка docker](#установка-docker) + - [Windows](#windows-1) + - [MacOS](#macos-1) + - [Linux](#linux-debian--ubuntu-1) +- [Клонирование репозитория](#клонирование-репозитория) +- [Настройка сервера](#настройка-сервера) +- [Запуск сервера](#запуск-сервера) + +--- + +## Преамбула +Есть два основных понятия - `образ` и `контейнер`. + +`образ` - это начальное состояние какого-либо приложения со всеми +установленными библиотеками и зависимостями. + +`контейнер` - это приложение, которое запускается из `образа` и во время работы +может менять своё состояние (например создавать файлы, которых не было +изначально в образе), но после удаления и повторного запуска +`контейнер` сбрасывается до состояния `образа` (т.е. все созданные файлы в +прошлом будут удалены в настоящем) + +Для сохранения данных между запусками контейнеров существует `volume`, который +позволяет не только сохранять данные между запусками, но и делить одни и те же +данные между несколькими контейнерами. + +В этом проекте контейнеры настроены так, чтобы сохранять свои `volume` в папке +[for_docker](../for_docker). Внутри все папки (кроме +[nginx-confs](../for_docker/nginx-confs)) созданы контейнерами для своих +собственных нужд, будьте с ними осторожны, чтобы случайно не удалить их, если +конечно вы не хотите потерять данные + +--- + +## Установка Git +### Windows +1. Скачайте установщик Git с официального +[сайта](https://git-scm.com/download/win) +2. Запустите установщик и следуйте инструкциям на экране + +### MacOS +1. Откройте терминал +2. Установите Git с помощью [Homebrew](https://brew.sh/ru/): + ```bash + brew install git + ``` + +### Linux (Debian / Ubuntu) +1. Откройте терминал +2. Обновите список пакетов: + ```bash + sudo apt update + ``` +3. Установите Git с помощью следующей команды: + ```bash + sudo apt install git + ``` + +После установки Git с помощью команды `git --version` вы можете проверить его +версию и убедиться, что он установлен правильно + +--- + +## Установка docker +Для запуска проекта вам потребуется docker + +### Windows +1. Следуйте [инструкциям](https://docs.docker.com/desktop/install/windows-install/#install-docker-desktop-on-windows) + по установке Docker Desktop +2. Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись + зеленоватого цвета `Engine running`) +3. Откройте терминал и запустите `hello-world` контейнер для теста + ```bash + docker run hello-world + ``` + Должен вывестись простой текст: + ``` + Hello from Docker! + This message shows that your installation appears to be working correctly! + + <...> + ``` + +### MacOS +1. Следуйте [инструкциям](https://docs.docker.com/desktop/install/mac-install/#install-and-run-docker-desktop-on-mac) + по установке Docker Desktop +2. Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись + зеленоватого цвета `Engine running`) +3. Откройте терминал и запустите `hello-world` контейнер для теста + ```bash + docker run hello-world + ``` + Должен вывестись простой текст: + ``` + Hello from Docker! + This message shows that your installation appears to be working correctly! + + <...> + ``` + +### Linux (Debian / Ubuntu) +1. Следуйте [инструкциям](https://docs.docker.com/desktop/install/linux-install/#generic-installation-steps) + по установке Docker Desktop (Если вы не имеете графической оболочки, вы + можете воспользоваться установкой только docker engine для + [Debian](https://docs.docker.com/engine/install/debian/#install-using-the-repository) + и [Ubuntu](https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository) + соответственно) +2. Запустите Docker Desktop (в нижнем левом углу должна отображаться надпись + зеленоватого цвета `Engine running`) (только если устанавливали + Docker Desktop) +3. Откройте терминал и запустите `hello-world` контейнер для теста + ```bash + sudo docker run hello-world + ``` + Должен вывестись простой текст: + ``` + Hello from Docker! + This message shows that your installation appears to be working correctly! + + <...> + ``` + +--- + +## Клонирование репозитория +1. Откройте терминал +2. Перейдите в директорию, где вы хотите сохранить проект, используя `cd`. + Например: `cd %USERPROFILE%\Documents\myProjects` или `cd ~/myProject` +3. Клонируйте репозиторий, используя следующую команду: + ```bash + git clone https://github.com/Gray-Advantage/Datanar-Django.git + ``` + +--- + +## Настройка сервера +Создайте в корне проекта файл `.env` скопировав содержимое из `.env.example` +- На Windows: + ```bash + copy .env.example .env + ``` +- На Mac или Linux: + ```bash + cp .env.example .env + ``` +И измените все настройки в соответствии с [этой](env-file.md) инструкцией. +Если не добавить `.env` или просто продублировать информацию из +`.env.example` в `.env`, приложение будет запущено с дефолтными настройками, +что не рекомендуется по соображениям безопасности, а также часть функций +либо не будет работать, либо и вовсе вызовет ошибки. + +--- + +## Запуск сервера +Когда всё готово, осталось только запустить сервер: +- Windows или MacOS + ```bash + docker compose up --build -d + ``` +- Linux (Debian / Ubuntu) + ```bash + sudo docker compose up --build -d + ``` + +Docker сам скачает/соберёт все необходимы контейнеры, сам их запустит, сам +свяжет между собой, первый запуск может занять время, но вряд ли больше 5 минут + +Автоматически создан суперпользователь с логином, почтой и паролем из +[`.env`](env-file.md) файла. Теперь при авторизации с этими данными на сайте +в правом верхнем углу, нажав на свою аватарку, вы увидите в списке пункты +"Панель управления" и "Админка" + +После запуска вы должны иметь возможность открыть проект в браузере по адресу +http://127.0.0.1/ или http://localhost/. + +Вы превосходны и роскошны! © + +> [!TIP] +> Вот несколько полезных команды для работы с docker: +> - `docker compose build` - создание контейнеров (но без запуска) +> - `docker compose up` - запуск контейнеров (`--build` для их создания/обновления перед запуском, `-d` для запуска в фоне) +> - `docker compose down` - остановить и удалить все контейнеры +> - `docker image prune` - удалить все неиспользуемые образы + +> [!TIP] +> После каждого изменения в коде, нужно пересоздавать образы с помощью `build`. +> Или просто указывать ключ `--build` перед каждым запуском `up` \ No newline at end of file diff --git a/docs/env-file.md b/docs/env-file.md new file mode 100644 index 0000000..0597672 --- /dev/null +++ b/docs/env-file.md @@ -0,0 +1,223 @@ +# [Datanar](https://datanar.ru) - .env файл + +> Это инструкция, которая распишет каждую настройку в файле `.env`, приятного +> чтения! + +--- + +## Содержание +- [Настройки для Docker](#настройки-для-docker) + - [COMPOSE_PROFILES](#compose_profiles) +- [Основные настройки Django](#основные-настройки-django) + - [DATANAR_DJANGO_DEBUG](#datanar_django_debug) + - [DATANAR_SECRET_KEY](#datanar_secret_key) + - [DATANAR_LOG_FILE_PATH]() + - [DATANAR_ALLOWED_HOSTS](#datanar_allowed_hosts) +- [Почтовый сервис](#почтовый-сервис) + - [DATANAR_MAIL_HOST](#datanar_mail_host) + - [DATANAR_MAIL_PORT](#datanar_mail_port) + - [DATANAR_MAIL_USER](#datanar_mail_user) + - [DATANAR_MAIL_PASSWORD](#datanar_mail_password) +- [Пользователи и суперпользователь](#пользователи-и-суперпользователь) + - [DATANAR_DEFAULT_USER_IS_ACTIVE](#datanar_default_user_is_active) + - [DATANAR_SUPERUSER_NAME](#datanar_superuser_name) + - [DATANAR_SUPERUSER_EMAIL](#datanar_superuser_email) + - [DATANAR_SUPERUSER_PASSWORD](#datanar_superuser_password) +- [База данных](#база-данных) + - [DATANAR_USE_FILE_DATABASE](#datanar_use_file_database) + - [DATANAR_DATABASE_NAME](#datanar_database_name) + - [DATANAR_DATABASE_USER](#datanar_database_user) + - [DATANAR_DATABASE_PASSWORD](#datanar_database_password) + - [DATANAR_DATABASE_HOST](#datanar_database_host) + - [DATANAR_DATABASE_PORT](#datanar_database_port) +- [Redis](#redis) + - [DATANAR_REDIS_HOST](#datanar_redis_host) + - [DATANAR_REDIS_PORT](#datanar_redis_port) + - [DATANAR_REDIS_DB](#datanar_redis_db) +- [Certbot](#certbot) + - [DATANAR_CERTBOT_DEBUG](#datanar_certbot_debug) + - [DATANAR_CERTBOT_STAGING](#datanar_certbot_staging) + - [DATANAR_CERTBOT_EMAIL](#datanar_certbot_email) + +--- + +## Настройки для Docker +### COMPOSE_PROFILES +- Docker compose имеет профили. В зависимости от них он может запускать только +часть контейнеров. Принимает два возможных значения: + - `dev` - помимо всех остальных контейнеров запускает только nginx-dev, + который обрабатывает только порт 80 (http), во время локальной разработки + использовать **ТОЛЬКО** его + - `prod` - помимо всех остальных контейнеров запускает только nginx-prod, + который обрабатывает 80 и 443 порты (http и https соответственно). На борту + имеет certbot, который при запуске проверяет SSL сертификаты и создаёт / + обновляет их в случае необходимости. Во время локальной разработки **НЕ** + использовать его, так как с локальной машины (у которой нет доменного + имени) проверка подлинности сертификатов невозможна, а при слишком частом + обращении в центр сертификации можно получить блокировку + +--- + +## Основные настройки Django +### DATANAR_DJANGO_DEBUG +- Отладочный режим работы django приложения, имеет два возможных значения: + - `True` - Если во время работы приложения произойдёт ошибка, то весь её лог + будет отображён пользователю, удобен во время разработки, но может быть + опасен при развёртывании на реальном сервере + - `False` - Ошибки не будут показаны пользователю (вместо этого будет + выведена красивая страница), также в этом режиме django не раздаёт статику, + поэтому, если проект развёрнут в [нативном режиме](native-install.md), css + и js файлы не будут переданы в браузер, используйте + [nginx](https://nginx.org/ru/), или настройте [docker](docker-install.md), + или просто установите значение в `True` + +### DATANAR_SECRET_KEY +- Это большое случайное число, применяемое для защиты от CSRF в основном +используется для подписи сеансовых файлов cookie. Важно, чтобы ключ, +используемый в продакшене, не указывался в исходном коде, и/или не запрашивался +с другого сервера. Просто сгенерируйте большую последовательность и храните её +в секрете + +### DATANAR_LOG_FILE_PATH +- Путь до файла, в который django будет записывать все возникшие ошибки, если +используете [нативную установку](native-install.md), можете писать почти любое +место, если же используете [контейнеризацию](docker-install.md), то +**НЕ МЕНЯЙТЕ**, так как контейнеры подвязаны к значению по умолчанию + +### DATANAR_ALLOWED_HOSTS +- Список строк, перечисленных через запятую, представляющих имена хостов / +доменов, которые может обслуживать данный сайт. Это мера безопасности для +предотвращения [HTTP Host header атак](https://django.fun/docs/django/5.0/topics/security/#host-headers-virtual-hosting), +которые возможны даже при многих, казалось бы, безопасных конфигурациях +веб-серверов. Пока идёт разработка, можно оставить по умолчанию `*`, иначе +укажите все доменные имена вашего сайта, например `datanar.ru,www.datanar.ru` + +--- + +## Почтовый сервис +### DATANAR_MAIL_HOST +- Имя SMTP-хоста для отправки электронных писем, по умолчанию используется +сервис mail.ru и его SMTP-сервер `smtp.mail.ru`, но можно использовать и +другие, например +### DATANAR_MAIL_PORT +- Порт соединения с SMTP-сервером, несмотря на то, что в +[документации](https://help.mail.ru/mail/mailer/popsmtp/) указан порт `465`, в +реальности работает `2525` ¯\\\_(ツ)_/¯ +### DATANAR_MAIL_USER +- Логин пользователя, от имени которого будет отправляться почта, на самом +сайте [datanar](https://datanar.ru) почтовый робот `datanar_email_bot@mail.ru`. +Будьте внимательны, если получаете письмо, от других, но похожих пользователей +### DATANAR_MAIL_PASSWORD +- Пароль для пользователя, от имени которого будет отправляться почта. Обычно +пароль для SMTP отличается от пароля для обычного входа на почту, внимательно +прочтите инструкцию к своему SMTP-серверу + +--- + +## Пользователи и суперпользователь +### DATANAR_DEFAULT_USER_IS_ACTIVE +- Это параметр определяет, является ли пользователь после регистрации +активированным или нет, т.е. требуется ли ему подтверждать введённую почту или +нет. Имеет два возможных значения: + - `True` - Пользователь уже активирован, подтверждать почту не требуется + - `False` - Пользователь не активирован, требуется подтверждать почту +### DATANAR_SUPERUSER_NAME +- **Логин** суперпользователя, который имеет больше возможностей, +чем обычные пользователи +### DATANAR_SUPERUSER_EMAIL +- **Почта** суперпользователя с логином +[`DATANAR_SUPERUSER_NAME`](#datanar_superuser_name), который имеет больше +возможностей, чем обычные пользователи +### DATANAR_SUPERUSER_PASSWORD +- **Пароль** суперпользователя с логином +[`DATANAR_SUPERUSER_NAME`](#datanar_superuser_name), который имеет больше +возможностей, чем обычные пользователи + +--- + +## База данных +### DATANAR_USE_FILE_DATABASE +- Использовать ли в качестве база данных sqlite3 (база данных в файле). Имеет +два возможных значения: + - `True` - Да, использовать. Этот вариант хорошо подходит для + [нативной установки](native-install.md), если вы решили не устанавливать + postgres. Если установлено это значение, то параметры ниже игнорируются + - `False` - Нет, не использовать. Этот вариант хорош для боевой среды или + когда применяется [контейнеризация](docker-install.md). Если установлено + это значение, то должны быть корректно настроены параметры ниже +### DATANAR_DATABASE_NAME +- Имя базы данных. Учитывается, только если +[`DATANAR_USE_FILE_DATABASE=True`](#datanar_use_file_database) +### DATANAR_DATABASE_USER +- Имя пользователя, который имеет все необходимые привилегии для +базы данных [`DATANAR_DATABASE_NAME`](#datanar_database_name). Учитывается, +только если [`DATANAR_USE_FILE_DATABASE=True`](#datanar_use_file_database) +### DATANAR_DATABASE_PASSWORD +- Пароль для пользователя [`DATANAR_DATABASE_USER`](#datanar_database_user). +Учитывается, только если +[`DATANAR_USE_FILE_DATABASE=True`](#datanar_use_file_database) +### DATANAR_DATABASE_HOST +- Хост базы данных, или же где она располагается. Принимает в целом любое +значение, но, скорее всего, будет одно их этих двух: + - `localhost` - Если используется [нативная установка](native-install.md) + и postgres установлен и работает на той же машине + - `postgres` - Если используется [контейнеризация](docker-install.md), тогда + во внутренней сети контейнеров БД будет доступна именно по этому хосту + + Учитывается, только если +[`DATANAR_USE_FILE_DATABASE=True`](#datanar_use_file_database) +### DATANAR_DATABASE_PORT +- Порт по которому будет открыта БД на хосте, для `postgres` это обычно`5432` и +менять его не нужно. Учитывается, только если +[`DATANAR_USE_FILE_DATABASE=True`](#datanar_use_file_database) + +--- + +## Redis +### DATANAR_REDIS_HOST +- Хост redis, или же где он располагается. Принимает в целом любое +значение, но, скорее всего, будет одно их этих двух: + - `localhost` - Если используется [нативная установка](native-install.md) + и redis установлен и работает на той же машине + - `redis` - Если используется [контейнеризация](docker-install.md), тогда + во внутренней сети контейнеров БД будет доступна именно по этому хосту +### DATANAR_REDIS_PORT +- Порт по которому будет открыт redis на хосте, для `redis` это обычно `6379` и +менять его не нужно +### DATANAR_REDIS_DB +- redis по умолчанию имеет 16 логических баз данных, т.е. до 16 приложений +могут хранить в нём свои данные без конфликтов. Принимает значение от `0` до +`15`. По умолчанию `0`, обычно менять не нужно + +--- + +## Certbot +### DATANAR_CERTBOT_DEBUG +- Отладочный режим, при котором в консоль выводиться дополнительная информация +по генерации сертификатов и прочего. Принимает два возможных значения: + - `1` - Включить отладочный режим + - `0` - Выключить отладочный режим + + Учитывается, только если [`COMPOSE_PROFILES=prod`](#compose_profiles) +### DATANAR_CERTBOT_STAGING +- Режим заглушки, при котором происходит полный цикл создания и обновления +сертификатов, за одним исключение: реальный запрос в центр сертификации не +отправляется, вместо него генерируются заглушки. Эти сертификаты нельзя +использовать в боевой среде, зато можно проконтролировать правильность работы +certbot. Перед генерацией действительных сертификатов следует удалить заглушки. +Принимает два возможных значения: + - `1` - Включить режим заглушки + - `0` - Выключить режим заглушки + + Учитывается, только если [`COMPOSE_PROFILES=prod`](#compose_profiles) +### DATANAR_CERTBOT_EMAIL +- Почта владельца домена. Нужна для оповещения об истекании срока сертификатов, +если по какой-то причине certbot не смог автоматически их обновить +Учитывается, только если [`COMPOSE_PROFILES=prod`](#compose_profiles) + +--- + +На этом всё! Теперь вы знаете что за что отвечает, и контроль приложения стал +чуть проще! + +Вы превосходны и роскошны! © \ No newline at end of file diff --git a/docs/for_readme/scheme.png b/docs/for_readme/scheme.png new file mode 100644 index 0000000000000000000000000000000000000000..e37798558a628931c654b93a2f13f30d32cca76d GIT binary patch literal 71036 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%0D_f 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 mZAHI(#s61Fd%U9j Это инструкция, которая по шагам распишет нативное развёртывание сайта на +> локальной машине, приятного чтения! + +--- + +## Содержание +- [Установка Python](#установка-python) +- [Установка Git](#установка-git) + - [Windows](#windows) + - [MacOS](#macos) + - [Linux](#linux-debian--ubuntu) +- [Установка gettext](#установка-gettext) + - [Windows](#windows-1) + - [MacOS](#macos-1) + - [Linux](#linux-debian--ubuntu-1) +- [Установка Redis](#установка-redis) + - [Windows](#windows-2) + - [MacOS](#macos-2) + - [Linux](#linux-debian--ubuntu-2) +- [Установка Postgres](#установка-postgresql) + - [Windows](#windows-3) + - [MacOS](#macos-3) + - [Linux](#linux-debian--ubuntu-3) +- [Клонирование репозитория](#клонирование-репозитория) +- [Установка виртуального окружения](#установка-виртуального-окружения) +- [Установка зависимостей](#установка-зависимостей) +- [Настройка сервера](#настройка-сервера) +- [Запуск сервера Django](#запуск-сервера-django) + +--- + +## Установка Python +Для запуска этого проекта вам потребуется Python. + +Если у вас его еще нет, вы можете скачать его с официального +[сайта](https://www.python.org/downloads/), рекомендуется установить версию в +диапазоне 3.9 - 3.12 (но лучше всё же 3.12) + +--- + +## Установка Git +### Windows +1. Скачайте установщик Git с официального +[сайта](https://git-scm.com/download/win) +2. Запустите установщик и следуйте инструкциям на экране + +### MacOS +1. Откройте терминал +2. Установите Git с помощью [Homebrew](https://brew.sh/ru/): + ```bash + brew install git + ``` + +### Linux (Debian / Ubuntu) +1. Откройте терминал +2. Обновите список пакетов: + ```bash + sudo apt update + ``` +3. Установите Git с помощью следующей команды: + ```bash + sudo apt install git + ``` + +После установки Git с помощью команды `git --version` вы можете проверить его +версию и убедиться, что он установлен правильно + +--- + +## Установка gettext +### Windows +Скачать и запустить +[установщик](https://mlocati.github.io/articles/gettext-iconv-windows.html) +gettext для windows + +### MacOS +1. Откройте терминал +2. Установите gettext с помощью [Homebrew](https://brew.sh/ru/): + ```bash + brew install gettext + ``` + +### Linux (Debian / Ubuntu) +1. Откройте терминал +2. Установите gettext с помощью следующей команды: + ```bash + sudo apt install gettext + ``` + +--- + +## Установка Redis +> Для celery (очередь задач, для обработки файлов со ссылками) требуется +> установить redis. Этот шаг можно пропустить, если этот функционал не нужен. + +### Windows +Redis официально не поддерживает Windows, поэтому ниже описанный способ может +не сработать (лично у нас получилось запустить, но без виртуального окружения) + +1. Скачать неофициальный [порт](https://github.com/tporadowski/redis/releases) +и запустить установщик msi (от имени администратора) +2. В диспетчере задач в службах должна появится служба Redis + +### MacOS +1. Откройте терминал +2. Установите Redis с помощью [Homebrew](https://brew.sh/ru/): + ```bash + brew install redis + ``` +3. Запустите Redis: + ```bash + brew services start redis + ``` + +### Linux (Debian / Ubuntu) +1. Откройте терминал +2. Установите Redis с помощью следующей команды: + ```bash + sudo apt install redis + ``` + +--- + +## Установка Postgresql +> Postgresql - мощная и современная система управления базой данных. Хорошо +> подходит как БД в боевой среде. Его установку можно пропустить, при простой +> нативной установке, а в качестве замены использовать более простую sqlite3 +> (база данных в одном файле) + +### Windows +1. Скачать [установщик](https://www.enterprisedb.com/downloads/postgres-postgresql-downloads) + (рекомендуемая версия 16, но можно и 15) +2. Запустить установщик и следовать инструкциям на экране, + вас попросят придумать и ввести пароль для суперпользователя, запомните его +3. Откройте терминал +4. Перейдите в директорию установки используя команду `cd`, скорее всего + команда полностью выглядит так: + ```bash + cd C:\Program Files\PostgreSQL\16\bin + ``` +5. Запустите postgres клиент (введя пароль, который вы вводили при установке): + ```bash + psql -U postgres + ``` + +### MacOS +1. Откройте терминал +2. Установите Postgresql c помощью [Homebrew](https://brew.sh/ru/): + ```bash + brew install postgresql + ``` +3. Запустите Postgresql: + ```bash + brew services start postgresql + ``` +4. Запустите postgres клиент: + ```bash + psql -U postgres + ``` + +### Linux (Debian / Ubuntu) +1. Откройте терминал +2. Установите Postgresql с помощью следующей команды: + ```bash + sudo apt install postgresql + ``` +3. Запустите postgres клиент: + ```bash + sudo -u postgres psql + ``` + +Теперь когда вы запустили postgres клиент, создайте БД для проекта, а также +пользователя, которой будет работать с ней: +```sql +CREATE USER webmaster WITH PASSWORD 'this_very_secret_password_for_database'; +CREATE DATABASE database; +GRANT ALL PRIVILEGES ON DATABASE database TO webmaster; +ALTER ROLE "webmaster" SET timezone TO 'UTC'; +ALTER ROLE "webmaster" SET client_encoding TO 'utf8'; +``` + +И не забудьте выйти из postgres клиента и вернуться к проекту +``` +exit; +``` + +--- + +## Клонирование репозитория +1. Откройте терминал +2. Перейдите в директорию, где вы хотите сохранить проект, используя `cd`. + Например: `cd %USERPROFILE%\Documents\myProjects` или `cd ~/myProject` +3. Клонируйте репозиторий, используя следующую команду: + ```bash + git clone https://github.com/Gray-Advantage/Datanar-Django.git + ``` + +--- + +## Установка виртуального окружения +### Windows +> [!WARNING] +> Лично у нас на Windows не получилось запустить redis в виртуальном окружении, +> поэтому если вы его установили и сталкиваетесь с ошибками, попробуйте не +> создавать его (пропустить шаг 2 и 3 и просто перейти в директорию) + +> [!NOTE] +> Стоит отметить, что не всегда на linux будет работать python3, а на windows +> python, попробуйте оба варианта написания команды + +1. В терминале перейдите в директорию проекта: + ```bash + cd datanar + ``` +2. Создайте виртуальное окружение: + ```bash + python -m venv venv + ``` +3. Активируйте виртуальное окружение: + ```bash + venv\Scripts\activate + ``` + +### MacOS или Linux (Debian / Ubuntu) +1. В терминале перейдите в директорию проекта: + ```bash + cd datanar + ``` +2. Создайте виртуальное окружение: + ```bash + python3 -m venv venv + ``` +3. Активируйте виртуальное окружение: + ```bash + source venv/bin/activate + ``` + +--- + +## Установка зависимостей +> [!NOTE] +> Как и с python/python3 возможны два варианта команд - c `pip` или c `pip3` + +Установите все необходимые пакеты для работы в боевой среде, используя prod.txt +```bash +pip install -r requirements/prod.txt +``` +Необязательно, но можно установить и test.txt для проверки целостности проекта +```bash +pip install -r requirements/test.txt +``` +Установить сразу и prod.txt и test.txt зависимости можно через dev.txt +```bash +pip install -r requirements/dev.txt +``` + +--- + +## Настройка сервера +1. Создайте в корне проекта файл `.env` скопировав содержимое из `.env.example` + - На Windows: + ```bash + copy .env.example .env + ``` + - На Mac или Linux: + ```bash + cp .env.example .env + ``` + + И измените все настройки в соответствии с [этой](env-file.md) инструкцией. + Если не добавить `.env` или просто продублировать информацию из + `.env.example` в `.env`, приложение будет запущено с дефолтными настройками, + что не рекомендуется по соображениям безопасности, а также часть функций + либо не будет работать, либо и вовсе вызовет ошибки. +2. Скомпилируйте файлы локализации данного проекта: + ```bash + django-admin compilemessages + ``` + Если возникает ошибка, то перейдите в директорию `datanar`: + ```bash + cd datanar + ``` + + И повторите немного изменённую команду: + - Windows + ```bash + python manage.py compilemessages + ``` + - macOS или linux (Debian / Ubuntu) + ```bash + python3 manage.py compilemessages + ``` + + Перейдите в директорию `datanar`, если вы этого не сделали: + ```bash + cd datanar + ``` +3. Создайте первую миграцию базы данных: + - Windows + ```bash + python manage.py migrate + ``` + - macOS или linux (Debian / Ubuntu) + ```bash + python3 manage.py migrate + ``` +4. Также сделайте сбор статики, если будет предупреждение про перезапись файлов + введите "yes": + - Windows + ```bash + python manage.py collectstatic + ``` + - macOS или linux (Debian / Ubuntu) + ```bash + python3 manage.py collectstatic + ``` +5. И последние - создать суперпользователя (админа) сайта: + - Windows + ```bash + python manage.py init_superuser + ``` + - macOS или linux (Debian / Ubuntu) + ```bash + python3 manage.py init_superuser + ``` + + Будет создан суперпользователь с логином, почтой и паролем из + [`.env`](env-file.md) файла. Теперь при авторизации с этими данными на сайте + в правом верхнем углу, нажав на свою аватарку, вы увидите в списке пункты + "Панель управления" и "Админка" + +--- + +## Запуск сервера Django +Запустите рабочий процесс celery в новой консоли +(только если [установили Redis](#установка-redis)): +```bash +celery -A datanar worker -l INFO +``` + +[Установив зависимости `test.txt`](#установка-зависимостей), вы также получите +возможность запустить тесты для локальной проверки целостности проекта: +- Windows + ```bash + python manage.py test + ``` +- macOS или linux (Debian / Ubuntu) + ```bash + python3 manage.py test + ``` + +Ожидаемый результат после выполнения команды: `OK` + +Ну и наконец, запустите сервер Django: +- Windows + ```bash + python manage.py runserver 0.0.0.0:8000 + ``` +- MacOS или Linux (Debian / Ubuntu) + ```bash + python3 manage.py runserver 0.0.0.0:8000 + ``` + +После запуска вы должны иметь возможность открыть проект в браузере по адресу +http://127.0.0.1:8000/ или http://localhost:8000/. + +Вы превосходны и роскошны! © + +> [!IMPORTANT] +> Помните, что Django при `DATANAR_DJANGO_DEBUG=False` не отдаёт статику +> (например картинки), для этого нужно настроить отдельный обычно настраивают +> отдельный web-сервер ([Nginx](https://nginx.org/ru/), например) или же просто +> запускают Django в режиме разработки (`DATANAR_DJANGO_DEBUG=True`) \ No newline at end of file diff --git a/nginx-confs/datanar_local.conf b/for_docker/nginx-confs/datanar_local.conf similarity index 100% rename from nginx-confs/datanar_local.conf rename to for_docker/nginx-confs/datanar_local.conf diff --git a/nginx-confs/datanar_prod.conf b/for_docker/nginx-confs/datanar_prod.conf similarity index 73% rename from nginx-confs/datanar_prod.conf rename to for_docker/nginx-confs/datanar_prod.conf index 681e98b..89279bb 100644 --- a/nginx-confs/datanar_prod.conf +++ b/for_docker/nginx-confs/datanar_prod.conf @@ -1,11 +1,11 @@ server { listen 443 ssl default_server reuseport; listen [::]:443 ssl default_server reuseport; - server_name gray-advantage.ru www.gray-advantage.ru; + server_name datanar.ru www.datanar.ru; - ssl_certificate /etc/letsencrypt/live/gray-advantage.ru/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/gray-advantage.ru/privkey.pem; - ssl_trusted_certificate /etc/letsencrypt/live/gray-advantage.ru/chain.pem; + ssl_certificate /etc/letsencrypt/live/datanar.ru/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/datanar.ru/privkey.pem; + ssl_trusted_certificate /etc/letsencrypt/live/datanar.ru/chain.pem; ssl_dhparam /etc/letsencrypt/dhparams/dhparam.pem; location / { diff --git a/nginx-confs/robots.txt b/for_docker/nginx-confs/robots.txt similarity index 100% rename from nginx-confs/robots.txt rename to for_docker/nginx-confs/robots.txt From 812d9ec57f7a11fa7d38a7eb0434b633b38eb345 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 02:00:19 +0300 Subject: [PATCH 07/13] fix: in docs --- README.md | 20 +++++++++++++------- docs/docker-install.md | 4 ++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 2466ad0..5cec104 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ --- ## Развёртывание -Данная документация имеет два основных способа запуска (развёртывания) +Данная документация предлагает два основных способа запуска (развёртывания) приложения: ### [Нативная установка](docs/native-install.md) - подразумевает загрузку всего необходимого ПО непосредственно на локальную @@ -122,11 +122,17 @@ --- ## Авторы - эти прекрасные люди: -sergey -Андреев Сергей (Github | Telegram) +
+ sergey + Андреев Сергей (Github | Telegram) +

-vladimir -Клименко Владимир (Github | Telegram) +
+ vladimir + Клименко Владимир (Github | Telegram) +

-artem -Третьяков Артем (Github | Telegram) \ No newline at end of file +
+ artem + Третьяков Артем (Github | Telegram) +
diff --git a/docs/docker-install.md b/docs/docker-install.md index b9ac38e..5afcf06 100644 --- a/docs/docker-install.md +++ b/docs/docker-install.md @@ -190,8 +190,8 @@ http://127.0.0.1/ или http://localhost/. > [!TIP] > Вот несколько полезных команды для работы с docker: -> - `docker compose build` - создание контейнеров (но без запуска) -> - `docker compose up` - запуск контейнеров (`--build` для их создания/обновления перед запуском, `-d` для запуска в фоне) +> - `docker compose build` - создание образов (но без запуска контейнеров) +> - `docker compose up` - запуск контейнеров (`--build` для создания/обновления их образов перед запуском, `-d` для запуска в фоне) > - `docker compose down` - остановить и удалить все контейнеры > - `docker image prune` - удалить все неиспользуемые образы From 613eeef7e6191a8cb82c17c495148a00ec68ccb3 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 03:43:18 +0300 Subject: [PATCH 08/13] fix: add handler for other ip's in local config --- for_docker/nginx-confs/datanar_local.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/for_docker/nginx-confs/datanar_local.conf b/for_docker/nginx-confs/datanar_local.conf index c19920a..b9ab6ad 100644 --- a/for_docker/nginx-confs/datanar_local.conf +++ b/for_docker/nginx-confs/datanar_local.conf @@ -1,7 +1,7 @@ server { listen 80 default_server reuseport; listen [::]:80 default_server reuseport; - server_name localhost; + server_name _ localhost; location / { proxy_set_header Host $http_host; From 76429d66b3db9bb618fd48ecea074b16082028e1 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 04:16:40 +0300 Subject: [PATCH 09/13] fix: typo in settings.py --- datanar/datanar/settings.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/datanar/datanar/settings.py b/datanar/datanar/settings.py index 551a235..5b292be 100644 --- a/datanar/datanar/settings.py +++ b/datanar/datanar/settings.py @@ -236,8 +236,8 @@ CELERY_BROKER_URL = ( f"redis://{config('DATANAR_REDIS_HOST', default='localhost', cast=str)}:" - f":{config('DATANAR_REDIS_PORT', default='6379', cast=str)}" - f"/{config('DATANAR_REDIS_DB', default='0', cast=str)}" + f"{config('DATANAR_REDIS_PORT', default='6379', cast=str)}/" + f"{config('DATANAR_REDIS_DB', default='0', cast=str)}" ) CELERY_RESULT_BACKEND = ( f"redis://{config('DATANAR_REDIS_HOST', default='localhost', cast=str)}:" From 45624bab6330ed28cb58cf54e56ce8b0bce01bc4 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 06:32:55 +0300 Subject: [PATCH 10/13] fix: add CSRF_TRUSTED_ORIGINS for docker --- datanar/datanar/settings.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/datanar/datanar/settings.py b/datanar/datanar/settings.py index 5b292be..67213f0 100644 --- a/datanar/datanar/settings.py +++ b/datanar/datanar/settings.py @@ -51,6 +51,8 @@ cast=lambda line: line.split(","), ) +CSRF_TRUSTED_ORIGINS = list(map(lambda x: f"https://{x}", ALLOWED_HOSTS)) + INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", From 8c1143a2a12e8c13aec868b372b504247c9d0baf Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 06:42:29 +0300 Subject: [PATCH 11/13] feat: auto update for docker --- .github/workflows/python-app.yml | 42 +++----------------------------- 1 file changed, 3 insertions(+), 39 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 2f6d697..db48f17 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -42,37 +42,9 @@ jobs: cd ./datanar python manage.py test - test-deploy: - if: github.ref == 'refs/heads/dev' - needs: [black-test, flake8-test, django-test] - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Deploy to server - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.SERVER_HOST }} - username: ${{ secrets.SERVER_USERNAME }} - key: ${{ secrets.SERVER_SSH_KEY }} - script: | - sudo supervisorctl stop test_gunicorn test_celery - cd ~/test_datanar - git reset --hard origin/dev - git pull origin dev - source venv/bin/activate - pip install -r requirements/dev.txt - cd ~/test_datanar/datanar - python manage.py migrate - python manage.py compilemessages - python manage.py collectstatic --no-input - deactivate - cd ~ - sudo supervisorctl start test_gunicorn test_celery prod-deploy: - if: github.ref == 'refs/heads/main' + if: github.ref == 'refs/heads/sergey' # чисто проверить установку needs: [black-test, flake8-test, django-test] runs-on: ubuntu-latest steps: @@ -86,16 +58,8 @@ jobs: username: ${{ secrets.SERVER_USERNAME }} key: ${{ secrets.SERVER_SSH_KEY }} script: | - sudo supervisorctl stop gunicorn celery cd ~/datanar git reset --hard origin/main git pull origin main - source venv/bin/activate - pip install -r requirements/dev.txt - cd ~/datanar/datanar - python manage.py migrate - python manage.py compilemessages - python manage.py collectstatic --no-input - deactivate - cd ~ - sudo supervisorctl start gunicorn celery \ No newline at end of file + docker compose down -v + docker compose up --build -d \ No newline at end of file From ade76f2e5201fc3238dd46c23227ad73a95c41e4 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 06:45:29 +0300 Subject: [PATCH 12/13] fix: auto update for not main branch --- .github/workflows/python-app.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index db48f17..33185e3 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -56,10 +56,10 @@ jobs: with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USERNAME }} - key: ${{ secrets.SERVER_SSH_KEY }} + key: ${{ secrets.SERVER_SSH_KEY }} # ах, ну да здесь тоже надо поменять script: | cd ~/datanar - git reset --hard origin/main - git pull origin main + git reset --hard origin/sergey + git pull origin sergey docker compose down -v docker compose up --build -d \ No newline at end of file From ef93dec4ff86ff926c7bcb0013aa754ca84b1e04 Mon Sep 17 00:00:00 2001 From: Gray Advantage Date: Wed, 24 Jul 2024 06:48:28 +0300 Subject: [PATCH 13/13] feat: Datanar 2.0.0 (docker edition) --- .github/workflows/python-app.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 33185e3..a6ccf00 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -1,4 +1,4 @@ -name: Python application +name: Datanar on: push: @@ -42,9 +42,8 @@ jobs: cd ./datanar python manage.py test - prod-deploy: - if: github.ref == 'refs/heads/sergey' # чисто проверить установку + if: github.ref == 'refs/heads/main' needs: [black-test, flake8-test, django-test] runs-on: ubuntu-latest steps: @@ -56,10 +55,10 @@ jobs: with: host: ${{ secrets.SERVER_HOST }} username: ${{ secrets.SERVER_USERNAME }} - key: ${{ secrets.SERVER_SSH_KEY }} # ах, ну да здесь тоже надо поменять + key: ${{ secrets.SERVER_SSH_KEY }} script: | cd ~/datanar - git reset --hard origin/sergey - git pull origin sergey + git reset --hard origin/main + git pull origin main docker compose down -v docker compose up --build -d \ No newline at end of file