Skip to content

Latest commit

 

History

History
84 lines (64 loc) · 3.95 KB

README.adoc

File metadata and controls

84 lines (64 loc) · 3.95 KB

Docker orchestration for production

This directory contains files to integrate all of the Particify services and service dependencies using Docker:

  • Configuration templates for Docker Compose

  • particifyctl: A helper script to setup ARSnova using Docker Compose

These files are available separately for releases, so you do not need to clone the whole repository on production systems.

Requirements

Hardware

  • CPU: 4 Cores or vCPU

  • RAM: 8 GiB

  • Storage: 10 GiB for Docker images and containers, additional storage for volumes containing user data depends on usage

Software

Usage

Preparations

  1. Download the latest release.

  2. Extract the archive and switch to the extracted directory.

  3. Run ./particifyctl to list all available commands.

Running

  1. Run ./particifyctl run. Append -d to run in detached mode for production.

  2. Run ./particifyctl compose down stop and remove the containers.

Configuration

The default configuration can be adjusted via environment variables. To persist the configuration, add those variable assignments to local.env (one assignment per line).

Variable

Default value

Description

PORT

80

Port used for the frontend proxy

JWT_SECRET

Encryption token for authentication (MUST be changed for production)

JWT_DOMAIN

example.com

A domain usable as server ID (used for the JWT issuer/audience claim)

ARSNOVA_HOSTNAME

app.particify.de

Hostname for the application

MAIL_HOST

Hostname of the mail server

MAIL_PORT

25

Port of the mail server

MAIL_USERNAME

Username for SMTP authentication

MAIL_PASSWORD

Password for SMTP authentication

MAIL_SENDERNAME

ARSnova

Sender name for mails

MAIL_SENDERADDRESS

Sender address for mails

MAIL_IMPLICITTLS

false

Enable implicit TLS (instead of STARTSSL) for SMTP

LDAP_ENABLED

false

Enable LDAP authentication

LDAP_TITLE

LDAP

Title for LDAP authentication shown in the webclient

LDAP_HOSTURL

ldaps://example.com:636/dc=example,dc=com

LDAP connection URL

LDAP_USERDNPATTERN

uid={0},ou=arsnova

LDAP user DN pattern

LDAP_USERIDATTRIBUTE

uid

Name of the LDAP attribute which contains the user ID

LDAP_USERSEARCHFILTER

(uid={0})

LDAP user search filter

LDAP_USERSEARCHBASE

ou=people

LDAP user search base

LDAP_MANAGERUSERDN

cn=arsnova-manager,dc=example,dc=com

LDAP DN of manager user

LDAP_MANAGERPASSWORD

LDAP password of manager user

GATEWAY_TAG

next

Version (Docker) tag for the gateway service

WEBSOCKET_TAG

next

Version (Docker) for the WebSocket service

AUTHZ_TAG

next

Version (Docker) for the authz service

CORE_TAG

next

Version (Docker) for the core service

COMMENTS_TAG

next

Version (Docker) for comments service

WEBCLIENT_TAG

next

Version (Docker) for the webclient

FORMATTING_TAG

next

Version (Docker) for the formatting service

Example: PORT=8100 ./particifyctl run

If you need to override the default Docker Compose configuration, you can add your configuration in local.compose.yaml. The local configuration has perference over other *.compose.yaml configurations provided in this repository. We recommend that you only use the local.* files to adjust the configuration, so you do not need to manually merge changes when updating.

PostgreSQL updates

When the PostgreSQL image was updated to a new major version, pg_upgrade.sh needs to be run to perform a database migration. The script expects the service name, the old and the new PostgreSQL version as parameters. There is no rollback support, so backups for PostgreSQL volumes should be created before running the script.