Docs Installation

Installation

tidemarq runs as a Docker Compose stack. A single command builds and starts everything — the Go backend, the React UI, the SQLite database, and a self-signed TLS certificate.

Prerequisites

  • Docker Engine 24+ and Docker Compose v2
  • Any Linux host (amd64 or arm64), macOS, or Windows with WSL2
  • Ports 8716 and 8717 available on the host

1. Create your config file

Download tidemarq.example.yaml and save it as tidemarq.yaml in your project directory. All options are documented inline.

At minimum, set a strong admin password:

tidemarq.yaml
auth:
  admin_username: admin
  admin_password: change-me-now

If no admin password is set, tidemarq generates a random one on first start and prints it to the log. Make sure to capture it before the log scrolls.

2. Start the stack

shell
$ docker compose up --build

The first build takes a minute or two as Go dependencies are downloaded. Subsequent starts are fast. On first run you will see log lines confirming:

  • TLS certificate generated (unless you supplied your own)
  • JWT signing secret generated and persisted to <data_dir>/.jwt_secret
  • Database migrations applied
  • Default admin account created
  • Server listening on :8716 (HTTP redirect) and :8717 (HTTPS)

3. Open the UI

Navigate to https://localhost:8717. Your browser will warn about the self-signed certificate — accept the exception to proceed. Log in with the admin credentials you configured.

tidemarq dashboard after first login

To use a real TLS certificate, set server.tls_cert and server.tls_key in your config to the paths of your certificate and private key files, then mount them into the container.

Upgrading

Pull the latest code and rebuild:

shell
$ git pull
$ docker compose up --build -d

Database migrations run automatically on startup. Your data directory is preserved in the volume mount and is not affected by the rebuild.

Running in detached mode

Add -d to run the stack in the background. Use docker compose logs -f to follow logs and docker compose down to stop.

Next steps