Trilium Docker & Self-Hosted Deployment

GitHub

Build your personal knowledge base with Trilium Notes

RAW Compose
1. Pull Image (DOCKERHUB) docker pull triliumnext/trilium
2. Docker Run (1-Click Launch) docker run -d --name trilium -p 8080:8080 --restart always triliumnext/trilium:latest
3. Podman Run podman run -d --name trilium -p 8080:8080 --restart always triliumnext/trilium:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/triliumnext/trilium:latest
5. ORAS Pull (OCI Artifact) oras pull triliumnext/trilium:latest
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
# Running `docker-compose up` will create/use the "trilium-data" directory next to this file
# To run in the background, use `docker-compose up -d`
services:
  trilium:
    # Optionally, replace `latest` with a version tag like `v0.90.3`
    # Using `latest` may cause unintended updates to the container
    image: triliumnext/trilium:latest
    # Restart the container unless it was stopped by the user
    restart: unless-stopped
    ports:
      # By default, Trilium will be available at http://localhost:8080
      # It will also be accessible at http://<host-ip>:8080
      # You might want to limit this with something like Docker Networks, reverse proxies, or firewall rules,
      # however be aware that using UFW is known to not work with default Docker installations, see:
      # https://docs.docker.com/engine/network/packet-filtering-firewalls/#docker-and-ufw
      - '8080:8080'
    volumes:
      # Trilium stores its data in `trilium-data` next to this file. To use another directory
      # on the host, change the part before the colon only.
      - ./trilium-data:/home/node/trilium-data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro