Skip to content

Installation

Jonas Breder edited this page Sep 3, 2026 · 13 revisions

To install hroot, choose the deployment method that fits your laboratory's infrastructure, customization needs, and technical policies.


Choosing Your Deployment Method

Use the comparative matrix below to decide which deployment path to follow:

1. Decision & Recommendation Matrix

Deployment Method Best For When to Choose Key Characteristics
1.i. Docker (precompiled)
(Standard & Recommended)
Production Labs & Standard Setups Choose this if you want the fastest, zero-touch setup with automated Docker engine setup, precompiled images, and in-browser setup. • Interactive One-Line Installer
• Automated Docker & Sudo checks
• Prebuilt images from ghcr.io
• Automated secret generation
• Guided Setup Wizard at /setup
• 1-Click In-App updates
1.ii. Docker (self-compiled)
(Build from Source)
Custom Features, Theming & Local Dev Choose this if your laboratory plans to modify source code, add custom features/CSS, or test local branches, while keeping container isolation. • Built locally with Dockerfile
• CLI-first .env configuration
• Independent of remote registry
• Full Docker Compose isolation
1.iii. Manual Deployment
(Legacy Bare-Metal)
Environments where Docker is Forbidden Choose this only if institutional IT policies prohibit Docker on your server. • Runs directly on host OS
• Native Ruby, rbenv, Passenger/Puma
• Manual system package maintenance

2. Selecting Your Docker Compose Setup Mode

If you deploy using Docker (precompiled or self-compiled), select one of the following scenarios based on your server architecture:

Scenario Mode Purpose Routing & SSL Management
A. Standard Setup Standalone Compose A dedicated server hosting only one hroot instance. Handled automatically by the built-in NGINX reverse proxy & ACME Let's Encrypt companion on ports 80/443.
B. Shared Proxy Multi-Instance Compose Hosting multiple instances/labs on a single server. Routed through a central reverse proxy with shared SSL certificates.
C. App-Only External Host Proxy Integrating with existing web servers on your Linux host. Traffic is passed directly to the app container via NGINX/Apache on the host.
D. External Database Remote DB Compose Connecting hroot to an existing university MySQL server. Uses remote database credentials configured via .env or /setup.

Detailed Installation Guides

Proceed to the step-by-step documentation for your chosen method:

  1. System Requirements and Prerequisites: Hardware, network/DNS, SMTP/IMAP mail setup, and unprivileged user permissions checklist.

  2. Docker (precompiled): Pre-built container images, zero-touch secret generation, and in-browser setup wizard.

  3. Docker (self-compiled): Compiling from local source code, customizing features, and CLI-based configuration.

  4. Manual Deployment: Bare-metal installation on Ubuntu Linux with native Ruby, MySQL, and Phusion Passenger.


Next Steps: Post-Installation Setup

Tip

Finished the basic installation?
Follow the First steps after installation checklist for a guided, step-by-step walkthrough on configuring participant pools, custom fields, message templates, finance/payment types, and staff permissions in the Site Settings.


Initial Configuration & Administration

HROOT - Hamburg Registration and Organization Online Tool

  1. Installation

    1. System Requirements and Prerequisites

    2. Docker (precompiled)

    3. Docker (self-compiled)

    4. Manual Deployment

    5. First steps after installation

    6. Environment Configuration

    7. Backup and Maintenance

    8. Starting a local server and running automated tests

    9. Basic configuration

    10. Language configuration and timezone

    11. Custom field definitions

  2. Updating an existing installation

  3. Overview

    1. Roles: Users, Admins, Experimenters, Banking‐Administrators
    2. Experiments, Sessions, session types
  4. Subject pool and user management

    1. Browsing the pool
    2. Exporting data
    3. Adding users
    4. Deleting users
    5. Finding duplicate users
    6. More user management
  5. Experiment management

    1. Managing Experiments
    2. Adding Sessions
    3. Experiment and Session Inheritance
    4. Reserving locations (booking)
    5. Assign participants from the pool
    6. Inviting participants
    7. Session management
    8. Waiting list
    9. Invitations Scheduling and Digests
  6. Admission

    1. QR Code Admission
    2. Online Waiting Room
    3. Online Surveys and Completion Links
  7. Calendar

  8. Sending messages

    1. Invitation emails
    2. Confirmation emails
    3. Session reminder emails
    4. Default locale and date formats
    5. SMS and Push Notifications
  9. Settings

    1. Shibboleth Integration
    2. Kimai Integration
  10. Staff Management

  11. Finance

  12. Pools Management

Clone this wiki locally