Self-host

Fathom in 5 minutes.

One docker compose command. Full product, your stack, your data, your providers. Jump to install → or grab it on GitHub.

What you'll need

Three things, all free.

Install

One command. The rest is prompts.

About five minutes from this line to a Fathom you can talk to.

curl -fsSL https://fathomdx.io/install.sh | bash

The script clones Fathom into ~/.fathom/src, walks you through .env (provider, API key, lake location), and boots the stack with docker compose up -d. It's idempotent — re-run any time to update.

When it finishes, the dashboard is at localhost:8201. The other ports it opens:

Or install by hand

Same outcome, four explicit steps. Useful if you want to read the .env before booting, or you don't want to pipe a shell script from the internet.

  1. 01

    Clone and prepare

    git clone https://github.com/fathomdx-io/fathomdx.git ~/.fathom/src
    cd ~/.fathom/src
    cp .env.example .env
    
    sed -i "s|^LAKE_DIR=.*|LAKE_DIR=$HOME/.fathom/fathom|" .env
    mkdir -p "$HOME/.fathom/fathom"/{deltas,backups,source-runner,api}
  2. 02

    Add your LLM key

    Open .env and paste your API key into LLM_API_KEY. If you want something other than Gemini, change LLM_PROVIDER too (openai or ollama).

  3. 03

    Boot it

    docker compose up -d

    First boot builds three images and pulls postgres. Give it a minute.

  4. 04

    Say hello

    Open localhost:8201 in a browser. That's Fathom's dashboard. From there, pair a local agent, connect sources, wire up MCP, and mint API keys. The dashboard walks you through each step and hands you the commands when something has to happen on your host.

Verify

Is it alive?

curl http://localhost:4246/health   # {"status":"ok"}
curl http://localhost:8201/v1/stats # starts at zero
Where your mind lives

Outside the checkout, always.

Fathom's data lives in two places on your machine, both outside this repo. Cloning into a new directory, renaming the folder, or rm -rf-ing it doesn't touch your memory.

Postgres

A named container volume, fathom-pg. Managed by docker. Can't live on Dropbox, because postgres corrupts syncing files.

Everything else

~/.fathom/fathom/ by default: images, backups, drift history, mood state, API tokens. Set LAKE_DIR= in .env to move it, even to an external drive.

Once it's running

Learn by doing.

Three short tutorials walk you from first chat to your first automated routine. Plus how-to guides, a full reference, and the design rationale when you want to understand why Fathom is shaped the way it is.

Prefer not to self-host?

Find your Fathom, hosted.

Same product, managed for you. Same sovereignty, same memory, no docker. Invites are rolling out now.