Koch Laboratory

Laborbuch — step-by-step installation

From a bare server to a running Laborbuch in about 10 minutes — no programming knowledge required.

Installation takes about 10 minutes and requires no programming knowledge — the script asks a few questions and does the rest. This page explains every step.

What you need

What does the script actually do?

You start with a bare server — nothing needs to be prepared on it except Docker (step 1). The script installs the complete stack: the Laborbuch application, the database, and a web server that takes care of traffic encryption by itself. In remote mode this web server automatically obtains a free SSL certificate for your domain and renews it by itself roughly every 3 months — you buy no certificate, track no renewal dates and configure nothing; connections are fully encrypted from the first minute (the padlock in the browser). In local mode traffic is encrypted as well — the certificate is issued by your installation’s internal authority (described below).

Step 1 — log in to the server and install Docker

Connect via SSH (Windows: PuTTY or the built-in terminal; macOS/Linux: Terminal):

ssh root@YOUR-SERVER-ADDRESS

If Docker is not installed yet, paste and confirm with Enter:

curl -fsSL https://get.docker.com | sh

Step 2 — download and run the install script

Paste these two lines (confirm each with Enter):

curl -fsSL -o install-laborbuch.sh https://koch-laboratory.com/download/install-laborbuch.sh
sh install-laborbuch.sh

The script sends nothing to us — all passwords and keys are generated on your server and stay there.

Step 3 — the script’s questions explained

Question Meaning What to answer
Install directory Folder for the program and data Enter (default ./laborbuch)
Mode: remote / local remote = internet server with your own domain; the SSL certificate is issued automatically. local = office server, access from the company network only Data centre → remote; office → local
Domain (remote) The address your team will open e.g. laborbuch.yourcompany.com (must already point to the server)
Let’s Encrypt e-mail (remote) SSL certificate notifications Your admin e-mail
Hostname or IP (local) The server’s address on the office network e.g. 192.168.1.50
Antivirus (yes/no) Scanning of uploaded evidence files (ClamAV with automatic signature updates) yes if the team will upload files (scans, measurement data) — needs about 1.5 GB extra RAM. no if you use hash-only mode (files never leave workstations) or want to add it later
Database: sqlite / postgres Where the system stores its data sqlite (built-in — recommended). postgres only if your company runs its own PostgreSQL server with an administrator; the script will then ask for the database address (details below)
Admin login and password The first account you will log in with Any login, password min. 12 characters
Path to license.json The licence file from Advena Partners If you have it — enter the path; if not — Enter (see “Activation”)

After the last question the script downloads the software and starts the system — at the end it prints the address and login.

Activating the licence

You will receive license.json from us by e-mail after purchase. Upload it into the installation directory on the server (overwriting the existing empty file) — e.g. with WinSCP or:

scp license.json root@SERVER-ADDRESS:laborbuch/license.json

No restart needed — the system detects the licence by itself. Until activation the instance runs read-only. Renewal after a year = the same step with a new file.

Local mode — trusting the certificate once

In local mode the SSL certificate is issued by your installation’s internal authority, so browsers warn on first visit. Import the file data/caddy/pki/authorities/local/root.crt from the installation directory on your team’s computers (Windows: double-click → Install certificate → Trusted Root Certification Authorities). In remote mode this step does not exist.

Database: built-in (SQLite) or PostgreSQL?

The script asks about the database. For the vast majority of companies the right answer is sqlite (the default — just press Enter):

Choose postgres only if your company already runs a PostgreSQL server with an administrator. The script will then ask for the database address in the form postgres://user:password@host:5432/database — your administrator must create the database and account beforehand, and backups are then done with the database server’s tools (not in the panel). In doubt? Pick sqlite.

Security and privacy of your data

A few facts you can hand straight to your IT department or data protection officer:

After installation — the first 15 minutes

  1. Log in at the address from the summary (admin account).
  2. Admin panel → Site settings → Laboratory profile: enable/disable Git integration and pick the evidence file mode (upload or hash-only).
  3. Add a project and assign team members.
  4. Create user accounts and assign each a 2FA method (app / hardware token / e-mail).
  5. Admin panel → Database backups → create the first backup.

The manuals take it from here: the user manual (the team’s daily work) and the administrator manual (configuration, week closes, backups, licence).

Common problems

Support: info@dms-secure.de — please include the output of docker compose logs web (without sensitive data).