RUN IT WELL

Run Tallylamp with Docker and a persistent volume

The Docker image packages Tallylamp, Chrome, and the display it needs. Keep /data on a persistent volume so replacing the container does not discard your browser profiles.

Tallylamp guides2 min readUpdated

Start a local deployment

The example below uses the 0.11.6 Linux amd64 release. It includes Full browser capture, ffmpeg, and xdotool. Generate a dashboard password first and save it before closing your shell. The port binding limits this example to your own machine.

Local Docker setup
export ADMIN_SECRET="$(openssl rand -hex 32)"
# Save ADMIN_SECRET in your password manager.
docker run --rm --platform linux/amd64 \
  -p 127.0.0.1:8080:8080 \
  -e ADMIN_SECRET \
  -e TALLYLAMP_PUBLIC_URL=http://127.0.0.1:8080 \
  -v tallylamp-data:/data \
  ghcr.io/nxfi777/tallylamp:0.11.6

Open http://127.0.0.1:8080 and sign in with ADMIN_SECRET. The MCP endpoint is http://127.0.0.1:8080/mcp. Create an agent in the dashboard and use its token when you connect your client.

Reuse the named data volume

The tallylamp-data volume holds the database and Chrome profiles. Docker's --rm flag removes the container when it exits; it does not delete that named volume. Reuse the same volume name when you start a replacement container.

Do not remove the volume as part of a routine restart. Keep a backup before an upgrade, and protect it because logged-in profiles can contain active credentials. The application expects one service instance to own its data; do not point several replicas at the same profile directory.

For a remote host, add HTTPS

  1. Put the service behind HTTPS

    Configure your reverse proxy to reach the service and forward WebSocket connections for the live viewer. Keep Chrome's debugging port private.

  2. Set the public origin

    Set TALLYLAMP_PUBLIC_URL to your deployment's HTTPS origin. This is used for cookies and MCP authentication metadata.

  3. Check the public service

    Confirm /healthz responds successfully, sign into the dashboard, and try a browser through MCP. Check Watch and Take control as well as the initial page load.

Check architecture and sandbox support

The published release in this example targets Linux amd64. For a native ARM build, clone the service repository and run docker build -t tallylamp ., then use that image name and omit --platform linux/amd64.

Check the dashboard's sandbox and GPU status on your host. Set TALLYLAMP_SANDBOX=on to refuse an unsandboxed Chrome launch. Budget roughly 1–2 GB per active Chrome plus the server, then test your workload before increasing concurrency.

Docs behind this guide

Based on Tallylamp's documented behaviour. See the source for API details and release-specific settings.

YOUR NEXT STEP

Put it to work.

Free, MIT-licensed software. You pay for your hosting.

Deploy on Railway