Skip to content

[FR] Add option for mounting lets encrypt certificates #71

Description

@drichmond-cnd

Please ensure your feature request is not already on the roadmap or associated with an issue. This can be checked here.

Is your feature request related to a problem? Please describe.
Not a problem, just something to add as a feature request

Describe the solution you'd like
Update the nginx section of docker-compose.base.yml.

  nginx:
    container_name: iriswebapp_nginx
    environment:
      - IRIS_UPSTREAM_SERVER
      - IRIS_UPSTREAM_PORT
      - IRIS_FRONTEND_SERVER
      - IRIS_FRONTEND_PORT
      - INTERFACE_HTTPS_PORT
      - SERVER_NAME
      - CERT_FILENAME
      - KEY_FILENAME
      - IRIS_AUTHENTICATION_TYPE
      # Origin allowlisted in the Content-Security-Policy for optional web
      # analytics. Substituted into nginx.conf by entrypoint.sh at start, so a
      # change needs only a container restart, not an image rebuild. Empty
      # unless set, which allowlists nothing. Keep it pointing at the same host
      # as the app's ANALYTICS_SCRIPT_URL or the browser will block the script.
      - ANALYTICS_ORIGIN
    networks:
      - iris_frontend
    ports:
      - "${INTERFACE_HTTPS_PORT:-443}:${INTERFACE_HTTPS_PORT:-443}"
    volumes:
      - "./certificates/web_certificates/:/www/certs/:ro"
      # Mount letsencrypt directory
      - "/etc/letsencrypt:/etc/letsencrypt:ro"
    restart: always
    depends_on:
      - "app"

Describe alternatives you've considered
N/A

Additional context
This will allow the .env file to be updated for using letsencrypt certificates. Update wiki to include how to update .env file to mount letsencrypt certificate. I would added the lines commented out

# -- NGINX
NGINX_IMAGE_NAME=iris-next/nginx
NGINX_IMAGE_TAG=latest

SERVER_NAME=iris-ng.doman.name
# LE path trick: ../../ jumps out of /www/certs/ into the container root
#CERT_FILENAME=../../etc/letsencrypt/live/iris-ng.domain.name/fullchain.pem
#KEY_FILENAME=../../etc/letsencrypt/live/iris-ng.domain.name/privkey.pem

After the certificate is requested, update permissions on letsencrypt directory so docker process can read them

chmod 644 /etc/letsencrypt/archive/iris-ng.domain.name/privkey*.pem

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status
    Done
    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions