diff --git a/roles/web-app-bookwyrm/templates/Dockerfile.j2 b/roles/web-app-bookwyrm/templates/Dockerfile.j2 index d1ac4b39..d104521c 100644 --- a/roles/web-app-bookwyrm/templates/Dockerfile.j2 +++ b/roles/web-app-bookwyrm/templates/Dockerfile.j2 @@ -12,7 +12,8 @@ RUN git clone --depth=1 --branch "{{ BOOKWYRM_VERSION }}" https://github.com/boo # Pre-install Python deps to a wheelhouse for faster final image RUN pip install --upgrade pip \ - && pip wheel --wheel-dir /wheels -r requirements.txt + && pip wheel --wheel-dir /wheels -r requirements.txt \ + && pip wheel --wheel-dir /wheels gunicorn FROM python:3.11-bookworm ENV PYTHONUNBUFFERED=1 @@ -28,6 +29,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ libjpeg62-turbo zlib1g libxml2 libxslt1.1 libffi8 libmagic1 \ && rm -rf /var/lib/apt/lists/* \ && pip install --no-cache-dir --no-index --find-links=/wheels -r /app/requirements.txt \ + && pip install --no-cache-dir --no-index --find-links=/wheels gunicorn \ && adduser --disabled-password --gecos '' bookwyrm \ && mkdir -p /app/data /app/media \ && chown -R bookwyrm:bookwyrm /app diff --git a/roles/web-app-bookwyrm/templates/docker-compose.yml.j2 b/roles/web-app-bookwyrm/templates/docker-compose.yml.j2 index c4a86a2d..95c558b0 100644 --- a/roles/web-app-bookwyrm/templates/docker-compose.yml.j2 +++ b/roles/web-app-bookwyrm/templates/docker-compose.yml.j2 @@ -6,7 +6,8 @@ bash -lc ' python manage.py migrate --noinput && python manage.py collectstatic --noinput && - gunicorn bookwyrm.wsgi:application --bind 0.0.0.0:{{ container_port }} + (python manage.py initdb || true) && + python -m gunicorn bookwyrm.wsgi:application --bind 0.0.0.0:{{ container_port }} ' build: context: . diff --git a/roles/web-app-bookwyrm/templates/env.j2 b/roles/web-app-bookwyrm/templates/env.j2 index 16ee3651..0d6e4793 100644 --- a/roles/web-app-bookwyrm/templates/env.j2 +++ b/roles/web-app-bookwyrm/templates/env.j2 @@ -22,17 +22,39 @@ EMAIL_HOST_PASSWORD="{{ EMAIL_HOST_PASSWORD }}" DEFAULT_FROM_EMAIL="{{ EMAIL_DEFAULT_FROM }}" # Database +POSTGRES_DB="{{ database_name }}" +POSTGRES_USER="{{ database_username }}" +POSTGRES_PASSWORD="{{ database_password }}" +POSTGRES_HOST="{{ database_host }}" +POSTGRES_PORT="{{ database_port }}" DATABASE_URL="postgres://{{ database_username }}:{{ database_password }}@{{ database_host }}:{{ database_port }}/{{ database_name }}" # Redis / Celery +REDIS_HOST="{{ BOOKWYRM_REDIS_HOST }}" +REDIS_PORT="{{ BOOKWYRM_REDIS_PORT }}" +REDIS_URL="{{ BOOKWYRM_REDIS_CACHE_URL }}" +REDIS_CACHE_URL="{{ BOOKWYRM_REDIS_CACHE_URL }}" +CACHE_URL="{{ BOOKWYRM_REDIS_CACHE_URL }}" +DJANGO_REDIS_URL="{{ BOOKWYRM_REDIS_CACHE_URL }}" + +## Broker +BROKER_URL="{{ BOOKWYRM_BROKER_URL }}" REDIS_BROKER_URL="{{ BOOKWYRM_REDIS_BROKER_URL }}" -REDIS_CACHE_URL="{{ BOOKWYRM_REDIS_BASE_URL }}/1" +REDIS_BROKER_HOST="{{ BOOKWYRM_REDIS_HOST }}" +REDIS_BROKER_PORT="{{ BOOKWYRM_REDIS_PORT }}" +REDIS_BROKER_DB_INDEX="{{ BOOKWYRM_REDIS_BROKER_DB }}" CELERY_BROKER_URL="{{ BOOKWYRM_REDIS_BROKER_URL }}" +## Activity +REDIS_ACTIVITY_HOST="{{ BOOKWYRM_REDIS_HOST }}" +REDIS_ACTIVITY_PORT="{{ BOOKWYRM_REDIS_PORT }}" +REDIS_ACTIVITY_DB_INDEX="{{ BOOKWYRM_REDIS_ACTIVITY_DB }}" +REDIS_ACTIVITY_URL="{{ BOOKWYRM_REDIS_ACTIVITY_URL }}" + # Proxy (if BookWyrm sits behind reverse proxy) FORWARDED_ALLOW_IPS="*" USE_X_FORWARDED_HOST="true" -SECURE_PROXY_SSL_HEADER="HTTP_X_FORWARDED_PROTO,{{ WEB_PROTOCOL }}" +SECURE_PROXY_SSL_HEADER="{{ (WEB_PORT == 443) | string | lower }}" # OIDC (optional – only if BOOKWYRM_OIDC_ENABLED) {% if BOOKWYRM_OIDC_ENABLED %} diff --git a/roles/web-app-bookwyrm/vars/main.yml b/roles/web-app-bookwyrm/vars/main.yml index a098cd66..dded93a7 100644 --- a/roles/web-app-bookwyrm/vars/main.yml +++ b/roles/web-app-bookwyrm/vars/main.yml @@ -45,6 +45,12 @@ BOOKWYRM_REDIS_HOST: "redis" BOOKWYRM_REDIS_PORT: 6379 BOOKWYRM_REDIS_BASE_URL: "redis://{{ BOOKWYRM_REDIS_HOST }}:{{ BOOKWYRM_REDIS_PORT }}" BOOKWYRM_REDIS_BROKER_URL: "{{ BOOKWYRM_REDIS_BASE_URL }}/0" +BOOKWYRM_REDIS_CACHE_URL: "{{ BOOKWYRM_REDIS_BASE_URL }}/1" +BOOKWYRM_REDIS_BROKER_DB: 0 +BOOKWYRM_REDIS_ACTIVITY_DB: 1 +BOOKWYRM_BROKER_URL: "{{ BOOKWYRM_REDIS_BROKER_URL }}" +BOOKWYRM_REDIS_ACTIVITY_URL: "{{ BOOKWYRM_REDIS_CACHE_URL }}" +#BOOKWYRM_CACHE_URL: "{{ BOOKWYRM_REDIS_CACHE_URL }}" # Email EMAIL_HOST: "{{ SYSTEM_EMAIL.HOST }}"