Skip to content
Documentation
v0.1.0
Tally docsGet started

Install with Docker

Run Tally, PostgreSQL, and ClickHouse with Docker Compose. You download one Compose file and create a settings file; no Tally binary is installed on your computer.

Before you start#

  • Docker Engine with the Compose plugin on Linux, or Docker Desktop on macOS.
  • OpenSSL, used once to generate passwords. Linux and macOS include it.

The Tally image, quay.io/godellabs-ai/godel-tally, is published for linux/amd64 and linux/arm64. PostgreSQL and ClickHouse use their official images.

Install and start#

1. Download the Compose file

Terminal
mkdir -p ~/godel-tally && cd ~/godel-tally
curl -fsSLO https://raw.githubusercontent.com/godellabs-ai/godel-tally/main/docker-compose.yml

2. Create the settings file

Compose reads every setting from .env beside the Compose file. Tally needs a secret key and passwords for both databases and will not start without them. This command generates them once and makes the file readable only by you:

Terminal
(umask 077 && cat > .env <<EOF
TALLY_URL=https://localhost:8443
TALLY_PUBLISH_BIND=0.0.0.0:8443
TALLY_SECRET_KEY=$(openssl rand -hex 32)
TALLY_POSTGRES_PASSWORD=$(openssl rand -hex 32)
TALLY_CLICKHOUSE_PASSWORD=$(openssl rand -hex 32)
EOF
)

3. Start Tally

Terminal
docker compose up -d --wait

When the command returns, open https://localhost:8443, accept the self-signed certificate, and create the first account. Tally creates the certificate on first start and keeps it in its data volume. The containers restart with Docker.

Settings#

Setting in .envPurpose
TALLY_URLThe HTTPS address you open in the browser, including the port.
TALLY_PUBLISH_BINDHost address and port Docker publishes. 127.0.0.1 keeps Tally on this machine; 0.0.0.0 accepts other machines. Keep the port the same as in TALLY_URL.
TALLY_SECRET_KEY, TALLY_POSTGRES_PASSWORD, TALLY_CLICKHOUSE_PASSWORDRequired. Generated in step 2.
TALLY_IMAGE_TAGOptional Tally version to run, such as 0.1.3. Defaults to the version named in the Compose file.
TALLY_TLS_DIROptional folder containing your certificate. Defaults to tls beside the Compose file.
TALLY_AI_LOG_RETENTION_DAYSOptional AI-log retention in days. Defaults to 90.

Add other Tally settings, such as email delivery, to the same file as KEY=value lines. After changing .env, run docker compose up -d --wait again.

Use your own certificate#

Point your hostname's DNS to this server and allow the port through your firewall. In .env, set TALLY_URL to that hostname, for example https://tally.example.com:8443, and TALLY_PUBLISH_BIND=0.0.0.0:8443. Then copy the certificate and key into the tls folder:

Terminal
mkdir -p tls
cp /absolute/path/to/fullchain.pem tls/tally.crt
cp /absolute/path/to/privkey.pem tls/tally.key
docker compose up -d --wait

The certificate must cover the TALLY_URL hostname; otherwise Tally does not start and its log names the problem. The key may stay readable only by its owner: Tally copies it before dropping root. After renewing the certificate, copy the files again and run docker compose restart tallyd. Remove both files to return to the self-signed certificate.

Run, update, and remove#

Terminal
docker compose ps                # status
docker compose logs -f tallyd    # application log
docker compose stop              # stop; data is kept
docker compose up -d --wait      # start again

To update, download the Compose file again (step 1), then run docker compose pull and docker compose up -d --wait. Your .env, certificate, and data volumes are kept. Back up first, as for any update.

Terminal
docker compose down       # remove the containers; keep data volumes
docker compose down -v    # also delete all Tally data