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.
-
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
-
Linux (see https://docs.docker.com/engine/install/#server for availability of official Docker packages)
-
Docker Engine >= 20.10 (older versions might work but are not tested for compatibility)
-
Docker Compose >= 2.0
-
Extract the archive and switch to the extracted directory.
-
Run
./particifyctl
to list all available commands.
-
Run
./particifyctl run
. Append-d
to run in detached mode for production. -
Run
./particifyctl compose down
stop and remove the containers.
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 |
|
Enable implicit TLS (instead of |
LDAP_ENABLED |
|
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.
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.