Artemis installation and runtime behaviour is controlled by a small set of shell variables defined inDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/artemis-development-group/artemis/llms.txt
Use this file to discover all available pages before exploring further.
artemis/install/install.cfg and by the INI configuration files generated inside the r2/ directory. This page documents every variable, its default, and its effect.
install.cfg variables
These variables are read by all install scripts. You can override any of them by setting them in your environment before calling the installer:The system user that owns the installed code and runs the Artemis processes. Defaults to the value of
$SUDO_USER, which is the user that invoked sudo. You must not run Artemis as root; if $SUDO_USER is empty the installer exits with an error.The system group under which Artemis processes run. The group must already exist on the system before the installer is run. The default
nogroup is suitable for development installs.The root directory for the installation. Must exist before the installer runs. Consumer count files and the job environment config (
/etc/default/artemis) reference this path.The directory into which all source repositories are cloned. The installer creates this directory if it does not exist, then clones
artemis, artemis-i18n, artemis-service-websockets, and artemis-service-activity into it.The hostname that users will use to reach the Artemis instance. This value is written into
development.update (and therefore into the generated development.ini) as both domain and oauth_domain. It is also used by the nginx and haproxy configurations.The domain must contain at least one dot. Browsers will not set cookies for dotless hostnames. An IP address satisfies this requirement.A space-separated list of plugin names to install. The installer checks for a directory matching each plugin name under After the main code is installed, if a plugin directory contains a
$ARTEMIS_SRC. Plugins that are not found on disk are skipped. Each plugin must follow the Artemis plugin naming and directory conventions.The about and gold plugins are the standard plugins included with a default installation.setup.sh script, the installer runs it automatically, passing $ARTEMIS_SRC and $ARTEMIS_USER as arguments.Options passed to every
apt-get install call during installation. The default -y answers “yes” to all prompts automatically, which is required for unattended installs. Set to an empty string to enable interactive prompts.Plugin configuration
The two standard plugins areabout and gold. Both must be cloned into $ARTEMIS_SRC before the installer runs for them to be picked up.
Plugin names are written into the generated INI files as a comma-separated list on the plugins key:
make ini is run. If you add or remove a plugin after installation, update development.update and regenerate the INI:
INI configuration files
File roles
| File | Role |
|---|---|
development.update | Hand-editable source file. Edit this to change domain, plugins, debug flags, or any other setting. |
development.ini | Generated from development.update by make ini. Do not edit directly. |
production.ini | A separate INI with production-safe defaults (debug disabled, etc.). |
run.ini | A symlink. The application always reads this file. Point it at either development.ini or production.ini. |
Switching between environments
development.update settings
The installer createsdevelopment.update with the following content if it does not already exist:
development.update, regenerate the INI and restart:
Domain requirements
Thedomain and oauth_domain values in the INI must contain a dot. This is not just a convention — browsers enforce it at the cookie level. Valid options:
- Local hostname
- Real domain
- IP address
127.0.0.1 artemis.local to /etc/hosts on the client machine.Job environment
The installer writes/etc/default/artemis with the following environment variables that are sourced by job scripts:
$ARTEMIS_CONSUMER_CONFIG. Each file is named after a queue (e.g. vote_link_q) and contains a single integer representing how many consumer processes to run. Set a value to 0 to disable a consumer entirely.
Security disclaimer
Artemis does not make any claims about the security or reliability of this software and is not liable if you are compromised. Portions of this code and assets are © 2005–2015 reddit Inc. If you discover a vulnerability, contactartemis@cocaine.ninja for assistance or ethical disclosure.