Skip to main content

Documentation 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.

This guide walks you through installing Artemis from source on a fresh Ubuntu 14.04 (Trusty Tahr) system. The install script handles dependencies, database setup, service configuration, and initial build. By the end you will have a working Artemis instance accessible at artemis.local.
Run this installation only on a dedicated machine or Docker container. The install script installs system packages, configures databases, truncates data on re-runs, and is not safe to run on a system used for other purposes.
1

Confirm system requirements

Artemis requires Ubuntu 14.04 Trusty Tahr on amd64. The install script enforces both the OS version and architecture and will exit with an error on anything else.Running a Docker image of Trusty Tahr on a modern host is the recommended approach:
docker run -it --name artemis ubuntu:14.04 /bin/bash
Your system also needs at least 2 GB of RAM. The installer will warn you and prompt for confirmation if it detects less.
2

Download the source

Create the source directory and place the Artemis repository inside it. The installer expects the source tree at /home/src by default.
mkdir -p /home/src
cd /home/src
git clone https://github.com/artemis/artemis.git
The directory layout the installer expects:
/home/src/
└── artemis/
    ├── artemis/          # main r2 app and install scripts
    ├── install-artemis.sh
    └── ...
3

Run the install script

Run install-artemis.sh as superuser. Pass the name of the non-root user that will own and run the Artemis process via the ARTEMIS_USER variable.
sudo ARTEMIS_USER=youruser /home/src/artemis/artemis/install/artemis.sh
You can also override the domain or plugin list at this point (see Configuration for all variables):
sudo ARTEMIS_USER=youruser ARTEMIS_DOMAIN=forum.example.com /home/src/artemis/artemis/install/artemis.sh
The script will:
  • Install apt dependencies, Cassandra, ZooKeeper, RabbitMQ, PostgreSQL, and memcached
  • Clone the artemis, i18n, websockets, and activity repos into /home/src
  • Build the r2 Python package and compile static assets
  • Generate development.ini and create a run.ini symlink pointing to it
  • Configure nginx, HAProxy, and gunicorn
  • Create helper scripts (artemis-start, artemis-stop, artemis-restart, etc.) in /usr/local/bin
  • Start all services
The script clones additional service repositories from GitHub during installation. Ensure the machine has outbound internet access on port 443.
4

Set the run.ini target (development vs. production)

After installation, run.ini is a symlink that determines which configuration file the app reads. By default it points to development.ini.To verify or change it:
ls -la /home/src/artemis/r2/run.ini
For development (debug mode on, ads and rate limiting off):
ln -nsf /home/src/artemis/r2/development.ini /home/src/artemis/r2/run.ini
For production:
ln -nsf /home/src/artemis/r2/production.ini /home/src/artemis/r2/run.ini
development.ini sets debug = true, which enables a Pylons stack trace page on errors. This page allows remote code execution. Never use development.ini on a publicly accessible server.
5

Add artemis.local to your hosts file

Artemis expects requests on a domain that contains a . — browsers will not set cookies for dotless hostnames. By default the domain is artemis.local.On the machine you’ll use to access the forum (your host machine if using Docker), add a hosts entry:
# /etc/hosts
127.0.0.1   artemis.local
If you changed ARTEMIS_DOMAIN during install, use that domain instead.
If you’re running Artemis inside Docker, use the container’s IP address (from docker inspect) rather than 127.0.0.1.
6

Open Artemis in your browser

Navigate to http://artemis.local (or your configured domain). You should see the Artemis front page.Register an account at /register. The first account you create can be promoted to admin from the server.

Rebuilding after code changes

Static files in /r2/r2/public/static/ are served directly and take effect immediately. Changes to any other Python source files require a rebuild:
cd /home/src/artemis/r2
sudo make
sudo artemis-restart
artemis-restart emits the artemis-restart Upstart event, which causes all managed services (the r2 app, websockets service, and activity service) to restart in order.

Helper commands

The install script creates these commands in /usr/local/bin:
CommandWhat it does
artemis-startEmits the artemis-start Upstart event to start all services
artemis-stopEmits the artemis-stop Upstart event to stop all services
artemis-restartRestarts all services (or a specific target with artemis-restart websockets)
artemis-run -c '...'Runs a Python expression inside the Artemis app context
artemis-shellOpens an interactive Python shell inside the Artemis app context
artemis-serveStarts the Paste server with --reload for development
artemis-flushFlushes the memcached cache

Build docs developers (and LLMs) love