Install guide
Everything you need to get a Ubikron server running and your investigators connected. Written for whoever looks after your infrastructure.
Or read it all offline: full install guide (PDF).
Local install
Install the server on the same machine as your Chrome extension. The usual way to try it without a VPC or dedicated infrastructure.
Before you start: Docker installed and running. Docker Desktop works on Windows and Mac.
- Make sure Docker is running.
- Download the installer for your operating system (above).
- Open a terminal and run the installer.
- Choose where to install, for example
d:\data\ubikron-server\or/data/ubikron-server. The directories are created for you. - At "Where are you installing?", pick Single user - install on Localhost only.
- Wait for the images to download and the containers to start. The first start takes a while.
- Open the admin interface at the URL shown.
# Linux / Mac: make it executable $ chmod +x ubikron-server-install # Linux: run as root $ sudo ./ubikron-server-install # The installer will: - generate random passwords for all services - fetch the Docker images (be patient) - start all 10 containers - wait for the server to come up Server is up! Admin: http://localhost:8008 Credentials: admin / admin
Mac: both the binary and the PKG are signed. The PKG installs to /usr/local/bin and is stapled, so it verifies without an internet connection.
Dedicated server
Install on a separate machine: on your premises, in a private network, on a VM, or in a VPC such as EC2 or Linode. The normal setup when several investigators share a server.
- Make sure Docker is running on the target machine.
- Download the installer for the server's operating system.
- Run the installer (on Linux, as root with
sudo). - Choose where to install, for example
/data/ubikron-server. - At "Where are you installing?", pick Multi-user - VPC / private network.
- Choose a DNS name. Anything you'll remember. A DNS4SSL.net name is generated for it, for example
myserver-ab12.dns4ssl.net. - Select the network interface your investigators will connect to.
- Wait for DNS, the certificate, the image downloads and container startup.
Reinstalling and want the same name? Enter the full name (for example myserver-ab12.dns4ssl.net) and you'll get it back, as long as you can reach the original IP address.
# Example dedicated install Docker is already installed - good! Docker is running - good! Select your install type: 1) Single user - Localhost only 2) Multi-user - VPC/private network Select option [1/2]: 2 Enter the DNS name you want to use: (e.g. 'myserver' for myserver.dns4ssl.net): test Generated DNS name: test-pb56.dns4ssl.net Multiple IP addresses found: 1) 203.0.113.23 (public) 2) 10.0.0.170 (local) 3) 192.168.56.1 (local) Requesting certificate from provider... Certificate and key installed Generated passwords... Server is up! Admin: https://test-pb56.dns4ssl.net
| Port | Purpose |
|---|---|
| 80 | HTTP, for certificate validation |
| 443 | HTTPS, web interface and API |
| 7001 | Ubikron extension communication |
Roll your own: custom DNS and certificates
For organizations with their own PKI. Ubikron needs a real TLS certificate. Self-signed won't work: that's Chrome's rule, not ours.
- Pick a DNS name and point it at the IP address the server will run on.
- Issue a certificate from your CA:
server.crtandserver.key, PEM format. - Create a directory on the host:
mkdir /ubikron-server - Copy in the docker-compose.yaml we provide.
- Create a
certssubdirectory and putserver.crtandserver.keyin it. - Create a .env file in the server root with your settings and passwords.
- Start it:
docker compose up -d
Important: JWT_BASE64_SECRET must be Base64 and at least 256 bits. Generate a 512-bit one with openssl rand -base64 64
# .env (example values)
S3_PUBLIC_URL=https://ubik-75.dns4ssl.net:7001
JHIPSTER_REGISTRY_PASSWORD=83409c0a88bd4711
ELASTIC_PASSWORD=3a03b2ec15d8463b
POSTGRES_PASSWORD=3b2957540c94468e
RABBITMQ_PASSWORD=91a15d66de5d4263
MINIO_ROOT_PASSWORD=0a19ac8d286842b2
MINIO_ACCESS_KEY=32565b229c3148faa3f2
MINIO_SECRET_KEY=1cf09c08e4454c55a9c8...
JWT_BASE64_SECRET=STRkkQNQ2zjW2CCLL...
$ ls -la /data/ubikron-server/ drwxr-xr-x certs/ -rw-r--r-- docker-compose.yml -rw-r--r-- .env drwxr-x--- volumes/ $ ls -la certs/ -rw-r--r-- server.crt -rw-r----- server.key
Tip: set S3_PUBLIC_URL to your DNS name. The first start takes time while services wait for each other. Warnings in the logs are normal.
First use and administration
Open the admin interface. The default login is admin / admin and you'll be asked to change it straight away. Pick a strong one. We don't enforce rules on administrators.
Next you're asked for a license key. No key yet? Click Skip. The free tier gives you 1 user and 2 projects, enough to evaluate.
Adding users
From the admin home page: Manage the users, then Create a new user.
- Email: an identifier only. The server never sends email. A dummy domain is fine, for example
analyst@company.local. - Password, twice
- First and last name
- Profile: ROLE_USER or ROLE_ADMIN
Saving creates a default project for the user. It takes a few seconds.
Updates
A container checks Docker Hub hourly. When there's an update, your users are told in the extension. Apply it from Update Management.
The server is briefly unavailable during an update and the admin screen may show errors. Reload after a minute. That's normal.
License keys
License Manager, then Apply License, paste the key. You'll see the owner, tier, expiry and user and project counts. Click Update.
Welcome to your Ubikron private server! Quick links for your server: • License manager • Update management • Manage the users • Performance metrics Useful links to send your users: • Ubikron extension on the Chrome store • Complete Ubikron video tutorial
| Tier | Users | Projects |
|---|---|---|
| Free/Try | 1 | 2 |
| Independent | 5 | 30 |
| Professional | Unlimited | Unlimited |
Projects means projects the server holds at once. Users can export projects to cold storage to free up room, but can't create new ones beyond the tier limit.
Connecting the extension
Your investigators use the same Ubikron extension. They just log in to your server.
- Install the Ubikron extension if it isn't installed.
- On the login screen, find Private Server at the bottom and click Login.
- The interface turns from red to green and asks for a server address, email and password.
- Enter your server's DNS name, for example
test-pb56.dns4ssl.net. For a local install use127.0.0.1orlocalhost. - Enter the email and password the admin created.
- Click Login.
Switching back: click Public Server on the login screen. The extension remembers both.
A real certificate is required. The extension and server must talk over TLS with a certificate the browser trusts. Self-signed certificates and SSL warnings mean the extension won't connect. That's a Chromium restriction.
Troubleshooting
Forgotten admin password
- Go to the server installation directory.
- Open the
reset-passwordsubdirectory. - Create a file called
reset-admin.txtin it. Empty is fine. - Wait a few minutes. The server checks for it periodically.
- The password is now admin. You'll set a new one when you log in.
Mac says "Operation not permitted"
macOS checks the binary's signature with Apple, which needs an internet connection. On a weak or missing connection you'll get this error. Use the PKG installer instead: it's stapled and verifies offline. It installs to /usr/local/bin/ubikron-server-macos.
Where the data lives
The install directory holds all Ubikron data. Deleting containers, images and volumes doesn't touch it.
- Reinstalling: point the installer at the same directory to keep your data, users and projects.
- Removing everything: delete the install directory.
Shared machines
On a shared Linux box, the server isn't protected from other users on that machine. Access to the server is access to Ubikron data. Use strong passwords, close unused ports, turn on the firewall.
$ cd /data/ubikron-server $ touch reset-password/reset-admin.txt # wait a few minutes... # the password is now "admin" # log in and set a new one
SSL warnings in the browser? The extension won't work with them. Use a real certificate, not a self-signed one.
Containers not starting? The first start takes time. Services wait for each other and the logs fill with warnings while they do. Give it a few minutes.
Still stuck? Tell us what you're seeing.