FAQs for self-hosted SysReptor
These FAQs are for operators who install SysReptor with Docker on their own server.
Students writing HTB or OffSec exam reports on labs.sysre.pt should use the exam report FAQs. SysReptor Cloud is covered in the cloud FAQs.
Can I install SysReptor on macOS or Linux distributions like Kali, Fedora, RHEL?
Even though we officially support Ubuntu only, installation is technically possible on most UNIX-based target systems including Kali, Fedora, macOS or RHEL.
The installation of dependencies (like docker, sed, curl, openssl, uuid-runtime, coreutils, cron; some of them are optional) might vary from system to system. Follow the steps for manual installations and adapt the commands according to your system.
If all dependencies are installed and are ready to use, easy script installation might also work.
Can I install SysReptor on Windows?
The easiest approach on Windows is to install SysReptor in Windows Subsystem for Linux 2 (WSL 2) with an Ubuntu distribution.
Make sure to install Docker Desktop with WSL 2 and to enable integration of Docker with WSL (in Docker Desktop go to Settings → Resources → WSL Integration → Enable integration with my default WSL distro).
What are the SysReptor system requirements for a self-hosted install?
For a self-hosted SysReptor server, the requirements are Ubuntu and 8 GB RAM. The application runs in Docker. Details and client browser requirements are in Installation.
What is the SysReptor default password?
SysReptor has no fixed default password.
- The install script creates a superuser named
reptorand prints a random password once. Store it when it is shown; it is not saved in the docs or in a default config file. - A manual install uses
createsuperuser, so you choose the username and password yourself.
If you lost the password, reset it from the CLI. From sysreptor/deploy run:
docker compose exec app python3 manage.py changepassword "<username>"Use the username from install (reptor if you used the install script). The command prompts twice for a new password, then updates that user. You can log in with the new password immediately.
If no user was created yet, create a superuser from the same directory:
docker compose exec app python3 manage.py createsuperuser --username "<username>"The command prompts twice for a password. You can log in with that username and password immediately.
How do I cleanly uninstall SysReptor and delete all data?
To uninstall a self-hosted SysReptor and delete all data (database and uploaded files), remove the Docker containers, named volumes, and the install directory.
From the sysreptor/deploy directory, stop the stack, then delete containers and volumes:
cd sysreptor/deploy
docker compose down
docker rm -f sysreptor-app sysreptor-db
docker volume rm -f sysreptor-app-data sysreptor-db-dataIf you used Caddy from the bundled compose file, also remove sysreptor-caddy-data. Then delete the sysreptor directory on disk.
This cannot be undone. Create a backup first if you might need the data.
To stop SysReptor without deleting data, see How do I stop SysReptor without deleting data?.
How do I stop SysReptor without deleting data?
To stop a self-hosted SysReptor without deleting volumes or files, go to sysreptor/deploy and run:
docker compose stopYour database and uploaded files stay in the Docker volumes.
To start again: docker compose up -d.
How do I verify the integrity of a SysReptor installation?
Verify Docker images or the release archive (setup.tar.gz) with cosign. The SysReptor public key is https://docs.sysreptor.com/cosign.pub.
SYSREPTOR_VERSION=$(cat sysreptor/deploy/.env | grep 'SYSREPTOR_VERSION=' | cut -d'=' -f2-)
# SYSREPTOR_VERSION=$(docker exec -it sysreptor-app bash -c 'echo "$VERSION"')
# Verify docker images
cosign verify --key https://docs.sysreptor.com/cosign.pub "syslifters/sysreptor:${SYSREPTOR_VERSION}"
cosign verify --key https://docs.sysreptor.com/cosign.pub "syslifters/sysreptor-languagetool:${SYSREPTOR_VERSION}" # Pro only
# Verify setup.tar.gz
curl -s -L --output sysreptor.tar.gz.sigstore.json https://github.com/Syslifters/sysreptor/releases/download/${SYSREPTOR_VERSION}/setup.tar.gz.sigstore.json
cosign verify-blob sysreptor.tar.gz --key https://docs.sysreptor.com/cosign.pub --bundle sysreptor.tar.gz.sigstore.jsonverify-blob needs the local sysreptor.tar.gz you downloaded from GitHub Releases. The same steps are in Installation and Updates.
How do I update a self-hosted SysReptor?
Update a self-hosted SysReptor with the bundled script (recommended):
bash sysreptor/update.shProfessional installations can add --backup to create a backup before the update. Full steps, manual updates, and image verification are in Updates. Create a backup before updating.
How do I back up and restore a self-hosted SysReptor instance?
On a self-hosted SysReptor you can back up via CLI, and (with Professional, a superuser, and BACKUP_KEY) via the web UI or API. The archive contains all data from your installation, including users, projects, templates, designs, assets, settings, the database export and uploaded files.
CLI example from sysreptor/deploy:
docker compose run --rm app python3 manage.py backup > backup.zipRestore deletes existing data in the database and file storage. Use the same SysReptor version. Full commands: Backups.
How do I add a SysReptor Professional license to a self-hosted install?
Add your license key to deploy/app.env as LICENSE='your_license_key', include the LanguageTool compose file if needed, and run docker compose up -d from deploy. You do not need to reinstall. No data is lost during the transition from Community to Professional or vice versa.
See Upgrade to Professional for more details.
Further questions?
Need help or have questions? Get support and connect with us and the SysReptor community.