Split production dependecies & update production configuration

This commit is contained in:
Sonny Bakker 2023-06-28 19:38:44 +02:00
parent 0f66c5eb9b
commit 5a73707d61
12 changed files with 68 additions and 111 deletions

View file

@ -3,10 +3,14 @@
# #
# Build dependencies # Build dependencies
build: build:
pip-compile --output-file=requirements/base.txt pyproject.toml pip-compile \
--resolver=backtracking \
--output-file=requirements/base.txt \
pyproject.toml
# testing # testing
pip-compile \ pip-compile \
--resolver=backtracking \
--extra=testing \ --extra=testing \
--output-file=requirements/testing.txt \ --output-file=requirements/testing.txt \
requirements/base.txt \ requirements/base.txt \
@ -14,6 +18,7 @@ build:
# development # development
pip-compile \ pip-compile \
--resolver=backtracking \
--extra=testing \ --extra=testing \
--extra=development \ --extra=development \
--output-file=requirements/development.txt \ --output-file=requirements/development.txt \
@ -23,6 +28,7 @@ build:
# ci # ci
pip-compile \ pip-compile \
--resolver=backtracking \
--extra=testing \ --extra=testing \
--extra=ci \ --extra=ci \
--output-file=requirements/ci.txt \ --output-file=requirements/ci.txt \
@ -32,6 +38,8 @@ build:
# production # production
pip-compile \ pip-compile \
--resolver=backtracking \
--extra=production \
--output-file=requirements/production.txt \ --output-file=requirements/production.txt \
requirements/base.txt \ requirements/base.txt \
pyproject.toml pyproject.toml

View file

@ -9,6 +9,10 @@ server {
access_log /var/log/nginx/access_log; access_log /var/log/nginx/access_log;
error_log /var/log/nginx/error_log; error_log /var/log/nginx/error_log;
location /static/ {
root /app;
}
location / { location / {
proxy_pass http://gunicorn; proxy_pass http://gunicorn;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

View file

@ -2,6 +2,7 @@ version: "3.6"
volumes: volumes:
logs: logs:
static-files:
services: services:
nginx: nginx:
@ -9,9 +10,10 @@ services:
depends_on: depends_on:
django: django:
condition: service_healthy condition: service_healthy
env_file: ./.env
ports: ports:
- "${NGINX_HTTP_PORT:-80}:80" - "${NGINX_HTTP_PORT:-80}:80"
- "${NGINX_HTTPS_PORT:-443}:443"
volumes: volumes:
- ./config/nginx/conf.d:/etc/nginx/conf.d - ./config/nginx/conf.d:/etc/nginx/conf.d
- logs:/var/log/nginx - logs:/var/log/nginx
- static-files:/app/static

View file

@ -4,6 +4,7 @@ volumes:
logs: logs:
media: media:
postgres-data: postgres-data:
static-files:
services: services:
db: db:
@ -13,6 +14,7 @@ services:
interval: 5s interval: 5s
timeout: 10s timeout: 10s
retries: 10 retries: 10
env_file: ./.env
volumes: volumes:
- postgres-data:/var/lib/postgresql/data - postgres-data:/var/lib/postgresql/data
@ -29,6 +31,15 @@ services:
build: build:
context: . context: .
dockerfile: ./docker/django dockerfile: ./docker/django
target: production
args:
POSTGRES_HOST:
POSTGRES_PORT:
POSTGRES_DB:
POSTGRES_USER:
POSTGRES_PASSWORD:
DJANGO_SECRET_KEY:
DJANGO_SETTINGS_MODULE: "newsreader.conf.production"
command: | command: |
celery worker -n worker1@%h celery worker -n worker1@%h
-n worker2@%h -n worker2@%h
@ -57,16 +68,26 @@ services:
context: . context: .
dockerfile: ./docker/django dockerfile: ./docker/django
target: production target: production
args:
POSTGRES_HOST:
POSTGRES_PORT:
POSTGRES_DB:
POSTGRES_USER:
POSTGRES_PASSWORD:
DJANGO_SECRET_KEY:
DJANGO_SETTINGS_MODULE: "newsreader.conf.production"
entrypoint: /app/bin/docker-entrypoint.sh entrypoint: /app/bin/docker-entrypoint.sh
command: | command: |
gunicorn --bind 0.0.0.0:8000 gunicorn --bind 0.0.0.0:8000
--workers 3 --workers 3
--chdir /app/src/
newsreader.wsgi:application newsreader.wsgi:application
healthcheck: healthcheck:
test: /usr/bin/curl --fail http://django:8000 || exit 1 test: /usr/bin/curl --fail http://django:8000 || exit 1
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 10 retries: 10
env_file: ./.env
environment: environment:
- DJANGO_SETTINGS_MODULE=newsreader.conf.production - DJANGO_SETTINGS_MODULE=newsreader.conf.production
depends_on: depends_on:
@ -77,3 +98,4 @@ services:
volumes: volumes:
- logs:/app/logs - logs:/app/logs
- media:/app/media - media:/app/media
- static-files:/app/static

View file

@ -4,6 +4,7 @@ FROM python:3.9-bullseye as backend
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
vim \ vim \
curl \ curl \
gettext \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
WORKDIR /app WORKDIR /app
@ -13,11 +14,11 @@ RUN mkdir /app/media
COPY ./requirements /app/requirements COPY ./requirements /app/requirements
RUN pip install -r requirements/production.txt RUN pip install -r requirements/base.txt
# stage 2 # stage 2
FROM node:current-bullseye AS frontend-build FROM node:16-bullseye AS frontend-build
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
git \ git \
@ -25,7 +26,6 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
WORKDIR /app WORKDIR /app
COPY ./build /app/build/
COPY ./*.json ./*.js ./.babelrc /app/ COPY ./*.json ./*.js ./.babelrc /app/
RUN npm ci RUN npm ci
@ -42,6 +42,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
postgresql-client \ postgresql-client \
vim \ vim \
curl \ curl \
gettext \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
WORKDIR /app WORKDIR /app
@ -51,32 +52,32 @@ RUN mkdir /app/media
RUN mkdir /app/bin RUN mkdir /app/bin
COPY --from=backend /usr/local/lib/python3.9 /usr/local/lib/python3.9 COPY --from=backend /usr/local/lib/python3.9 /usr/local/lib/python3.9
COPY --from=backend /usr/local/bin/gunicorn /usr/local/bin/gunicorn
COPY --from=backend /usr/local/bin/celery /usr/local/bin/celery COPY --from=backend /usr/local/bin/celery /usr/local/bin/celery
COPY --from=backend /app/src/ /app/src/
COPY ./bin/docker-entrypoint.sh /app/bin/docker-entrypoint.sh COPY ./bin/docker-entrypoint.sh /app/bin/docker-entrypoint.sh
COPY --from=frontend-build /app/src/newsreader/static /app/src/newsreader/static COPY --from=frontend-build /app/src/newsreader/static /app/src/newsreader/static
COPY ./src /app/src COPY ./src /app/src
COPY ./requirements /app/requirements
RUN pip install -r requirements/production.txt
RUN useradd -M -u 1000 newsreader RUN useradd -M -u 1000 newsreader
RUN chown -R newsreader:newsreader /app RUN chown -R newsreader:newsreader /app
USER newsreader USER newsreader
ARG COMMIT_HASH ARG POSTGRES_HOST
ARG RELEASE=latest ARG POSTGRES_PORT
ARG POSTGRES_DB
ARG POSTGRES_USER
ARG POSTGRES_PASSWORD
ARG DJANGO_SECRET_KEY
ARG DJANGO_SETTINGS_MODULE
ENV RELEASE=${RELEASE} \ RUN python src/manage.py collectstatic --noinput
GIT_SHA=${COMMIT_HASH} \
PYTHONUNBUFFERED=1 \
DJANGO_SETTINGS_MODULE=newsreader.conf.production
ARG SECRET_KEY=dummy
RUN python src/manage.py collectstatic --noinput \
&& python src/manage.py compilemessages
# (optional) stage 4 # (optional) stage 4

View file

@ -7,7 +7,6 @@ requires-python = '>=3.11'
dependencies = [ dependencies = [
'django~=3.2', 'django~=3.2',
'celery~=4.4', 'celery~=4.4',
'gunicorn~=20.0',
'psycopg2', 'psycopg2',
'django-axes', 'django-axes',
@ -19,8 +18,6 @@ dependencies = [
'python-memcached', 'python-memcached',
'python-dotenv~=0.12', 'python-dotenv~=0.12',
'sentry-sdk~=1.0',
'ftfy~=5.8', 'ftfy~=5.8',
'requests', 'requests',
@ -49,3 +46,5 @@ development = [
] ]
ci = ['coverage>=5.3.1'] ci = ['coverage>=5.3.1']
production = ['gunicorn~=20.0', 'sentry-sdk~=1.0']

View file

@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.9 # This file is autogenerated by pip-compile with Python 3.9
# by the following command: # by the following command:
# #
# pip-compile --output-file=requirements/base.txt pyproject.toml # pip-compile --output-file=requirements/base.txt --resolver=backtracking pyproject.toml
# #
amqp==2.6.1 amqp==2.6.1
# via kombu # via kombu
@ -19,9 +19,7 @@ celery==4.4.7
# django-celery-beat # django-celery-beat
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
certifi==2023.5.7 certifi==2023.5.7
# via # via requests
# requests
# sentry-sdk
charset-normalizer==3.1.0 charset-normalizer==3.1.0
# via requests # via requests
django==3.2.19 django==3.2.19
@ -52,8 +50,6 @@ feedparser==6.0.10
# via newsreader (pyproject.toml) # via newsreader (pyproject.toml)
ftfy==5.9 ftfy==5.9
# via newsreader (pyproject.toml) # via newsreader (pyproject.toml)
gunicorn==20.1.0
# via newsreader (pyproject.toml)
idna==3.4 idna==3.4
# via requests # via requests
inflection==0.5.1 inflection==0.5.1
@ -91,8 +87,6 @@ requests==2.31.0
# requests-oauthlib # requests-oauthlib
requests-oauthlib==1.3.1 requests-oauthlib==1.3.1
# via newsreader (pyproject.toml) # via newsreader (pyproject.toml)
sentry-sdk==1.26.0
# via newsreader (pyproject.toml)
sgmllib3k==1.0.0 sgmllib3k==1.0.0
# via feedparser # via feedparser
six==1.16.0 six==1.16.0
@ -109,9 +103,7 @@ typing-extensions==4.6.3
uritemplate==4.1.1 uritemplate==4.1.1
# via drf-yasg # via drf-yasg
urllib3==2.0.3 urllib3==2.0.3
# via # via requests
# requests
# sentry-sdk
vine==1.3.0 vine==1.3.0
# via # via
# amqp # amqp

View file

@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.9 # This file is autogenerated by pip-compile with Python 3.9
# by the following command: # by the following command:
# #
# pip-compile --extra=ci --extra=testing --output-file=requirements/ci.txt pyproject.toml requirements/base.txt requirements/testing.txt # pip-compile --extra=ci --extra=testing --output-file=requirements/ci.txt --resolver=backtracking pyproject.toml requirements/base.txt requirements/testing.txt
# #
amqp==2.6.1 amqp==2.6.1
# via # via
@ -21,7 +21,6 @@ autoflake==2.2.0
beautifulsoup4==4.12.2 beautifulsoup4==4.12.2
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
billiard==3.6.4.0 billiard==3.6.4.0
# via # via
@ -35,12 +34,10 @@ black==23.3.0
bleach==6.0.0 bleach==6.0.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
celery==4.4.7 celery==4.4.7
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# django-celery-beat # django-celery-beat
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
certifi==2023.5.7 certifi==2023.5.7
@ -48,7 +45,6 @@ certifi==2023.5.7
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt # -r requirements/testing.txt
# requests # requests
# sentry-sdk
charset-normalizer==3.1.0 charset-normalizer==3.1.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
@ -63,7 +59,6 @@ coverage==7.2.7
django==3.2.19 django==3.2.19
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# django-axes # django-axes
# django-celery-beat # django-celery-beat
# django-timezone-field # django-timezone-field
@ -73,22 +68,18 @@ django==3.2.19
django-axes==6.0.4 django-axes==6.0.4
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-celery-beat==2.0.0 django-celery-beat==2.0.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-registration-redux==2.12 django-registration-redux==2.12
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-rest-framework==0.1.0 django-rest-framework==0.1.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-timezone-field==4.2.3 django-timezone-field==4.2.3
# via # via
@ -104,7 +95,6 @@ djangorestframework==3.14.0
drf-yasg==1.21.6 drf-yasg==1.21.6
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
factory-boy==3.2.1 factory-boy==3.2.1
# via # via
@ -117,7 +107,6 @@ faker==18.11.2
feedparser==6.0.10 feedparser==6.0.10
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
freezegun==1.2.2 freezegun==1.2.2
# via # via
@ -126,12 +115,6 @@ freezegun==1.2.2
ftfy==5.9 ftfy==5.9
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml)
gunicorn==20.1.0
# via
# -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
idna==3.4 idna==3.4
# via # via
@ -155,7 +138,6 @@ kombu==4.6.11
lxml==4.9.2 lxml==4.9.2
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
mypy-extensions==1.0.0 mypy-extensions==1.0.0
# via # via
@ -183,7 +165,6 @@ platformdirs==3.8.0
psycopg2==2.9.6 psycopg2==2.9.6
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
pyflakes==3.0.1 pyflakes==3.0.1
# via # via
@ -204,12 +185,10 @@ python-dateutil==2.8.2
python-dotenv==0.21.1 python-dotenv==0.21.1
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
python-memcached==1.59 python-memcached==1.59
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
pytz==2023.3 pytz==2023.3
# via # via
@ -228,18 +207,11 @@ pyyaml==6.0
requests==2.31.0 requests==2.31.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
# requests-oauthlib # requests-oauthlib
requests-oauthlib==1.3.1 requests-oauthlib==1.3.1
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml)
sentry-sdk==1.26.0
# via
# -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
sgmllib3k==1.0.0 sgmllib3k==1.0.0
# via # via
@ -288,7 +260,6 @@ urllib3==2.0.3
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt # -r requirements/testing.txt
# requests # requests
# sentry-sdk
vine==1.3.0 vine==1.3.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt

View file

@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.9 # This file is autogenerated by pip-compile with Python 3.9
# by the following command: # by the following command:
# #
# pip-compile --extra=development --extra=testing --output-file=requirements/development.txt pyproject.toml requirements/base.txt requirements/testing.txt # pip-compile --extra=development --extra=testing --output-file=requirements/development.txt --resolver=backtracking pyproject.toml requirements/base.txt requirements/testing.txt
# #
amqp==2.6.1 amqp==2.6.1
# via # via
@ -21,7 +21,6 @@ autoflake==2.2.0
beautifulsoup4==4.12.2 beautifulsoup4==4.12.2
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
billiard==3.6.4.0 billiard==3.6.4.0
# via # via
@ -35,14 +34,12 @@ black==23.3.0
bleach==6.0.0 bleach==6.0.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
build==0.10.0 build==0.10.0
# via pip-tools # via pip-tools
celery==4.4.7 celery==4.4.7
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# django-celery-beat # django-celery-beat
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
certifi==2023.5.7 certifi==2023.5.7
@ -50,7 +47,6 @@ certifi==2023.5.7
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt # -r requirements/testing.txt
# requests # requests
# sentry-sdk
charset-normalizer==3.1.0 charset-normalizer==3.1.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
@ -64,7 +60,6 @@ click==8.1.3
django==3.2.19 django==3.2.19
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# django-axes # django-axes
# django-celery-beat # django-celery-beat
# django-debug-toolbar # django-debug-toolbar
@ -76,12 +71,10 @@ django==3.2.19
django-axes==6.0.4 django-axes==6.0.4
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-celery-beat==2.0.0 django-celery-beat==2.0.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-debug-toolbar==4.1.0 django-debug-toolbar==4.1.0
# via newsreader (pyproject.toml) # via newsreader (pyproject.toml)
@ -90,12 +83,10 @@ django-extensions==3.2.3
django-registration-redux==2.12 django-registration-redux==2.12
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-rest-framework==0.1.0 django-rest-framework==0.1.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
django-timezone-field==4.2.3 django-timezone-field==4.2.3
# via # via
@ -111,7 +102,6 @@ djangorestframework==3.14.0
drf-yasg==1.21.6 drf-yasg==1.21.6
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
factory-boy==3.2.1 factory-boy==3.2.1
# via # via
@ -124,7 +114,6 @@ faker==18.11.2
feedparser==6.0.10 feedparser==6.0.10
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
freezegun==1.2.2 freezegun==1.2.2
# via # via
@ -133,12 +122,6 @@ freezegun==1.2.2
ftfy==5.9 ftfy==5.9
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml)
gunicorn==20.1.0
# via
# -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
idna==3.4 idna==3.4
# via # via
@ -162,7 +145,6 @@ kombu==4.6.11
lxml==4.9.2 lxml==4.9.2
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
mypy-extensions==1.0.0 mypy-extensions==1.0.0
# via # via
@ -193,7 +175,6 @@ platformdirs==3.8.0
psycopg2==2.9.6 psycopg2==2.9.6
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
pyflakes==3.0.1 pyflakes==3.0.1
# via # via
@ -216,12 +197,10 @@ python-dateutil==2.8.2
python-dotenv==0.21.1 python-dotenv==0.21.1
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
python-memcached==1.59 python-memcached==1.59
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
pytz==2023.3 pytz==2023.3
# via # via
@ -240,18 +219,11 @@ pyyaml==6.0
requests==2.31.0 requests==2.31.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
# requests-oauthlib # requests-oauthlib
requests-oauthlib==1.3.1 requests-oauthlib==1.3.1
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml)
sentry-sdk==1.26.0
# via
# -r requirements/base.txt
# -r requirements/testing.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
sgmllib3k==1.0.0 sgmllib3k==1.0.0
# via # via
@ -286,6 +258,7 @@ tomli==2.0.1
# autoflake # autoflake
# black # black
# build # build
# pyproject-hooks
typing-extensions==4.6.3 typing-extensions==4.6.3
# via # via
# -r requirements/base.txt # -r requirements/base.txt
@ -302,7 +275,6 @@ urllib3==2.0.3
# -r requirements/base.txt # -r requirements/base.txt
# -r requirements/testing.txt # -r requirements/testing.txt
# requests # requests
# sentry-sdk
vine==1.3.0 vine==1.3.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt

View file

@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.9 # This file is autogenerated by pip-compile with Python 3.9
# by the following command: # by the following command:
# #
# pip-compile --output-file=requirements/production.txt pyproject.toml requirements/base.txt # pip-compile --extra=production --output-file=requirements/production.txt --resolver=backtracking pyproject.toml requirements/base.txt
# #
amqp==2.6.1 amqp==2.6.1
# via # via
@ -85,9 +85,7 @@ ftfy==5.9
# -r requirements/base.txt # -r requirements/base.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
gunicorn==20.1.0 gunicorn==20.1.0
# via # via newsreader (pyproject.toml)
# -r requirements/base.txt
# newsreader (pyproject.toml)
idna==3.4 idna==3.4
# via # via
# -r requirements/base.txt # -r requirements/base.txt
@ -154,9 +152,7 @@ requests-oauthlib==1.3.1
# -r requirements/base.txt # -r requirements/base.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
sentry-sdk==1.26.0 sentry-sdk==1.26.0
# via # via newsreader (pyproject.toml)
# -r requirements/base.txt
# newsreader (pyproject.toml)
sgmllib3k==1.0.0 sgmllib3k==1.0.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt

View file

@ -2,7 +2,7 @@
# This file is autogenerated by pip-compile with Python 3.9 # This file is autogenerated by pip-compile with Python 3.9
# by the following command: # by the following command:
# #
# pip-compile --extra=testing --output-file=requirements/testing.txt pyproject.toml requirements/base.txt # pip-compile --extra=testing --output-file=requirements/testing.txt --resolver=backtracking pyproject.toml requirements/base.txt
# #
amqp==2.6.1 amqp==2.6.1
# via # via
@ -37,7 +37,6 @@ certifi==2023.5.7
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# requests # requests
# sentry-sdk
charset-normalizer==3.1.0 charset-normalizer==3.1.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
@ -96,10 +95,6 @@ ftfy==5.9
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
gunicorn==20.1.0
# via
# -r requirements/base.txt
# newsreader (pyproject.toml)
idna==3.4 idna==3.4
# via # via
# -r requirements/base.txt # -r requirements/base.txt
@ -178,10 +173,6 @@ requests-oauthlib==1.3.1
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# newsreader (pyproject.toml) # newsreader (pyproject.toml)
sentry-sdk==1.26.0
# via
# -r requirements/base.txt
# newsreader (pyproject.toml)
sgmllib3k==1.0.0 sgmllib3k==1.0.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt
@ -219,7 +210,6 @@ urllib3==2.0.3
# via # via
# -r requirements/base.txt # -r requirements/base.txt
# requests # requests
# sentry-sdk
vine==1.3.0 vine==1.3.0
# via # via
# -r requirements/base.txt # -r requirements/base.txt

View file

@ -7,7 +7,7 @@ from .base import * # isort:skip
DEBUG = False DEBUG = False
ALLOWED_HOSTS = ["rss.fudiggity.nl"] ALLOWED_HOSTS = ["127.0.0.1", "localhost", "rss.fudiggity.nl", "django"]
ADMINS = [ ADMINS = [
("", email) ("", email)
for email in os.getenv("ADMINS", "").split(",") for email in os.getenv("ADMINS", "").split(",")