Skip to content

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 of script installation:

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
2
export SYSREPTOR_LICENSE='your_license_key' 
curl -s https://docs.sysreptor.com/install.sh | bash
1
curl -s https://docs.sysreptor.com/install.sh | bash

The installation script creates a new sysreptor directory holding the source code and everything you need.
It will build a docker image, create volumes and secrets and bring up your containers.

You need (official) Docker installed.

Download and extract the latest SysReptor release:

1
2
curl -s -L --output sysreptor.tar.gz https://github.com/syslifters/sysreptor/releases/latest/download/source-prebuilt.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"

Generate data at rest 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>"

Create docker volumes:

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

Build Docker image and run container:

1
docker compose up -d
1
docker compose -f docker-compose.yml up -d

-f docker-compose.yml is specified for Community only to avoid inclusion of Docker Compose Override. This avoids to run an additional Docker container for spell checking and saves resources.

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 nginx or Apache to prevent potential vulnerabilities and to enable https.

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

Upgrade to Professional

  1. Add your license key to deploy/app.env (LICENSE='your_license_key')
  2. cd to deploy/ and run docker compose up -d
  3. Enjoy