Skip to content

Installation

Prerequisites

Server

Self-Hosted

  • Ubuntu
  • 4GB RAM
  • Latest Docker (with docker-compose-plugin)

Client

Cloud ยท Self-Hosted

  • Network connection to the server
  • Up-to-date desktop browser, one of:
    • Chrome
    • Edge
    • Firefox
    • Safari

Installation

Self-Hosted

Installation via script is the easiest option. You need (official) Docker installed.

Install additional requirements:

1
2
sudo apt update
sudo apt install -y sed curl openssl uuid-runtime coreutils

The user running the installation script must have the permission to use docker.
Download and run:

1
bash <(curl -s https://docs.sysreptor.com/install.sh)

The installation script creates a new sysreptor directory holding the source code and everything you need.
It will set up all configurations, create volumes and secrets, download images from Docker hub and bring up your containers.

You need (official) Docker installed.

Download and extract the latest SysReptor setup files:

1
2
curl -s -L --output sysreptor.tar.gz https://github.com/syslifters/sysreptor/releases/latest/download/setup.tar.gz
tar xzf sysreptor.tar.gz

Create your app.env:

1
2
cd sysreptor/deploy
cp app.env.example app.env

Generate Django secret key and add to app.env:

1
printf "SECRET_KEY=\"$(openssl rand -base64 64 | tr -d '\n=')\"\n"

Optional: If you want to encrypt sensitive data at rest (data in the database and uploaded files and images), generate encryption keys and add to app.env:

1
KEY_ID=$(uuidgen) && printf "ENCRYPTION_KEYS=[{\"id\": \"${KEY_ID}\", \"key\": \"$(openssl rand -base64 32)\", \"cipher\": \"AES-GCM\", \"revoked\": false}]\nDEFAULT_ENCRYPTION_KEY_ID=\"${KEY_ID}\"\n"

Optional: Add Professional license key to app.env:

1
LICENSE="<your license key>"

Optional: Professional installations need an additional docker container for the spell check. Add languagetool/docker-compose.yml to docker-compose.yml in the deploy directory:

1
2
3
4
5
name: sysreptor

include:
  - sysreptor/docker-compose.yml
  - languagetool/docker-compose.yml

Create docker volumes:

1
2
docker volume create sysreptor-db-data
docker volume create sysreptor-app-data

Launch containers (from the deploy directory):

1
docker compose up -d

Add initial superuser:

1
2
username=reptor
docker compose exec app python3 manage.py createsuperuser --username "$username"

Add demo data:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Projects
url="https://docs.sysreptor.com/assets/demo-projects.tar.gz"
curl -s "$url" | docker compose exec --no-TTY app python3 manage.py importdemodata --type=project --add-member="$username"

# Designs
url="https://docs.sysreptor.com/assets/demo-designs.tar.gz"
curl -s "$url" | docker compose exec --no-TTY app python3 manage.py importdemodata --type=design

# Finding templates
url="https://docs.sysreptor.com/assets/demo-templates.tar.gz"
curl -s "$url" | docker compose exec --no-TTY app python3 manage.py importdemodata --type=template

Access your application at http://127.0.0.1:8000/.

We recommend using a webserver like Caddy (recommended), nginx or Apache to prevent potential vulnerabilities and to enable HTTPS.

Further configurations can be edited in sysreptor/deploy/app.env.