Commit 10dc758c authored by chimekkoo's avatar chimekkoo
Browse files

BREAKING: change env variables (towards production setup), tidy up dependencies

parent 22fc92d7
Loading
Loading
Loading
Loading
+10 −6
Changes for pyproject.toml: 10 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -4,10 +4,14 @@ version = "0.1.0"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
    "django>=6.0.3",
    "django-environ>=0.13.0",
    "django-rq>=4.0.1",
    "django-tasks-rq>=0.12.0",
    "honcho>=2.0.0",
    "redis>=7.3.0",
    "dj-database-url~=3.1.2",
    "django~=6.0.3",
    "django-environ~=0.13.0",
    "django-rq~=4.0.1",
    "django-tasks-rq~=0.12.0",
]

[dependency-groups]
dev = [
    "honcho~=2.0.0",
]
+12 −13
Changes for sample.env: 12 added lines, 13 removed lines.
Original line number Diff line number Diff line
EMAIL_BATCH_SIZE=10
EMAIL_HOST=mail.klata.net
EMAIL_PORT=993
EMAIL_HOST_USER=wybory@klata.net
EMAIL_HOST_PASSWORD=
EMAIL_USE_TLS=True
DEFAULT_FROM_EMAIL=WYBORY <wybory@klata.net>

VOTERS_EMAIL_DOMAIN=staszic.waw.pl
SITE_URL=http://localhost:8000

RQ_HOST=localhost
RQ_PORT=6379
 No newline at end of file
EMAIL_URL="smtp+tls://wybory:changeme@smtp.example.com:587"
# EMAIL_TIMEOUT="20"
DEFAULT_FROM_EMAIL="Wybory <wybory@example.com>"
# EMAIL_BATCH_SIZE="20"
VOTERS_EMAIL_DOMAIN="example.com"
SITE_URL="http://localhost:8000"
SECRET_KEY="changeme"
# DEBUG="false"
# ALLOWED_HOSTS="localhost"
# RQ_URL="redis://localhost:6379/0"
# TIME_ZONE="Etc/UTC"
# DATABASE_URL="sqlite:///db.sqlite3"
+69 −51

File changed.

Preview size limit exceeded, changes collapsed.

+38 −42
Changes for wybory/settings.py: 38 added lines, 42 removed lines.
Original line number Diff line number Diff line
@@ -12,43 +12,54 @@ https://docs.djangoproject.com/en/6.0/ref/settings/

from pathlib import Path
import environ
import dj_database_url

# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent

# Env
env = environ.Env(
    EMAIL_URL=str,
    EMAIL_TIMEOUT=(int, 20),
    DEFAULT_FROM_EMAIL=str,
    EMAIL_BATCH_SIZE=(int, 20),
    EMAIL_USE_TLS=(bool, True),
    RQ_HOST=(str, 'localhost'),
    RQ_PORT=(int, 6379)
    VOTERS_EMAIL_DOMAIN=str,
    SITE_URL=str,
    SECRET_KEY=str,
    DEBUG=(bool, False),
    ALLOWED_HOSTS=(str, "localhost"),
    RQ_URL=(str, "redis://localhost:6379/0"),
    TIME_ZONE=(str, "Etc/UTC"),
    DATABASE_URL=(str, "sqlite://db.sqlite3")
)

environ.Env.read_env(BASE_DIR / '.env')

EMAIL_BATCH_SIZE = env('EMAIL_BATCH_SIZE')
EMAIL_HOST = env('EMAIL_HOST')
EMAIL_PORT = env('EMAIL_PORT')
EMAIL_HOST_USER = env('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD')
EMAIL_USE_TLS = env('EMAIL_USE_TLS')
# email
email_config = env.email_url()
EMAIL_FILE_PATH = email_config["EMAIL_FILE_PATH"]
EMAIL_HOST_USER = email_config["EMAIL_HOST_USER"]
EMAIL_HOST_PASSWORD = email_config["EMAIL_HOST_PASSWORD"]
EMAIL_HOST = email_config["EMAIL_HOST"]
EMAIL_PORT = email_config["EMAIL_PORT"]
EMAIL_BACKEND = email_config["EMAIL_BACKEND"]
EMAIL_USE_TLS = email_config.get("EMAIL_USE_TLS", False)
EMAIL_USE_SSL = email_config.get("EMAIL_USE_SSL", False)
EMAIL_TIMEOUT = env('EMAIL_TIMEOUT')
DEFAULT_FROM_EMAIL = env('DEFAULT_FROM_EMAIL')
VOTERS_EMAIL_DOMAIN=env('VOTERS_EMAIL_DOMAIN')
SITE_URL=env('SITE_URL')

RQ_HOST = env('RQ_HOST')
RQ_PORT = env('RQ_PORT')

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/6.0/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'django-insecure-kng5+gave13s!$-$u!&_#f$=s-whci&j(3cg3dh39=7p#ypj)k'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
EMAIL_BATCH_SIZE = env('EMAIL_BATCH_SIZE')
VOTERS_EMAIL_DOMAIN = env('VOTERS_EMAIL_DOMAIN')

# general and security
SITE_URL = env('SITE_URL')
SECRET_KEY = env('SECRET_KEY')
DEBUG = env('DEBUG')
ALLOWED_HOSTS = env("ALLOWED_HOSTS").strip()
if ALLOWED_HOSTS == "":
    ALLOWED_HOSTS = []
else:
    ALLOWED_HOSTS = ALLOWED_HOSTS.split(",")

# Django messages
from django.contrib.messages import constants as messages
@@ -69,21 +80,9 @@ TASKS = {

# django-rq
RQ_QUEUES = {
    'default': {
        'HOST': RQ_HOST,
        'PORT': RQ_PORT,
        'DB': 0,
    },
    'email_batch': {
        'HOST': RQ_HOST,
        'PORT': RQ_PORT,
        'DB': 0
    },
    'email': {
        'HOST': RQ_HOST,
        'PORT': RQ_PORT,
        'DB': 0
    }
    'default': {"URL": env("RQ_URL")},
    'email_batch': {"URL": env("RQ_URL")},
    'email': {"URL": env("RQ_URL")},
}

RQ_SHOW_ADMIN_LINK = True
@@ -142,10 +141,7 @@ WSGI_APPLICATION = 'wybory.wsgi.application'
# https://docs.djangoproject.com/en/6.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
    'default': dj_database_url.parse(env("DATABASE_URL"))
}


@@ -173,7 +169,7 @@ AUTH_PASSWORD_VALIDATORS = [

LANGUAGE_CODE = 'pl'

TIME_ZONE = 'Europe/Warsaw'
TIME_ZONE = env("TIME_ZONE")

USE_I18N = True