selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

trip2g logo

Self-host trip2g

v0.12.0

MCP knowledge mesh for AI agents and Obsidian publishing

BetaOpen SourceMIT
Updated10 hours ago
LanguageGo
Setup difficultyModerate
Stars
40
Ports
8081 (main HTTP server), 8082 (internal health checks)
Requires
SQLite
Docker
ghcr.io/trip2g/trip2g
Install with Docker Compose
trip2g landing page showing the knowledge base interface

What is trip2g?

trip2g is a self-hosted knowledge base that turns an Obsidian vault into a live website and an MCP server for AI agents. One Go binary on SQLite serves both human readers (with templates, wikilinks, RSS, and Telegram publishing) and AI agents (via MCP tools for search, note reading, and federation across peer hubs). It supports paid subgraph paywalls via crypto, Patreon, or Boosty, custom Jet templates, kanban boards, forms, and git-backed version history. Deployment options include Docker Compose with MinIO and Caddy, a single binary with built-in Let's Encrypt HTTPS, and fly.io. The project is MIT licensed and emphasizes data sovereignty — plain markdown files, git-cloneable vaults, and no central server dependency.

Should you self-host trip2g?

trip2g scores 40/100 on selfhost.directory (how scoring works) and ranks #30 of 42 in Knowledge Management. It has 40 GitHub stars.

It shipped 5 stable releases in the past year. The latest, v0.12.0, came out on 19 October 2026. New versions land roughly every 2 weeks.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Project N.O.M.A.D. (85/100, 41 075 stars). It scores higher overall, so compare the two before you pick. See trip2g vs Project N.O.M.A.D. side by side.

Features

  • Change webhooks
  • Cron webhooks
  • Custom Jet templates
  • Data charts (ECharts)
  • Default template with widgets
  • Federation across peer hubs
  • Forms with validation
  • Git-backed version history
  • Kanban BoardsAgent wiring in development branch
  • MCP server for AI agents
  • Mermaid diagrams
  • Obsidian vault publishing
  • Paid content/subgraph paywalls
  • RSS Feeds
  • Telegram publishing

trip2g README

How to install trip2g

Install trip2g with Docker Compose

Docker and Docker Compose plugin
Environment variables
LISTEN_ADDR, INTERNAL_LISTEN_ADDR, PUBLIC_URL, DB_FILE, STORAGE_BACKEND, STORAGE_LOCAL_DIR, OWNER_EMAIL, DEV, USER_TOKEN_INSECURE, JWT_SECRET, DATA_ENCRYPTION_KEY

git clone https://github.com/trip2g/trip2g && cd trip2g/quickstart docker compose up

Minimal local setup with SQLite and local storage. For production, use the full stack with MinIO and Caddy from the self-hosted guide.

How to configure trip2g

  • ACME_DOMAINDomain for Let's Encrypt certificate

    Domain for Let's Encrypt certificate

  • DATA_ENCRYPTION_KEY0123456789abcdef0123456789abcdef32-character key for encrypting sensitive stored data

    32-character key for encrypting sensitive stored data

  • DB_FILE/data/data.sqlite3SQLite database file path

    SQLite database file path

  • DEVtrueEnable development mode with fixed sign-in code

    Enable development mode with fixed sign-in code

    values: true, false

  • GIT_API_REPO_PATHPath to internal bare git repository

    Path to internal bare git repository

  • INTERNAL_LISTEN_ADDR:8082Internal address for health checks

    Internal address for health checks

  • JWT_SECRETdev-secret-not-for-prodSecret for signing user session tokens

    Secret for signing user session tokens

  • LISTEN_ADDR0.0.0.0:8081Main HTTP listen address

    Main HTTP listen address

  • LOG_LEVELinfoServer log verbosity

    Server log verbosity

  • MAIL_FROMSender email address

    Sender email address

  • MINIO_ACCESS_KEY_IDMinIO access key ID

    MinIO access key ID

  • MINIO_BUCKETS3 bucket name

    S3 bucket name

  • MINIO_ENDPOINTMinIO endpoint address

    MinIO endpoint address

  • MINIO_INIT_TIMEOUT30sMinIO initialization timeout

    MinIO initialization timeout

  • MINIO_PUBLIC_URLPublic MinIO hostname for presigned URLs

    Public MinIO hostname for presigned URLs

  • MINIO_REGIONus-east-1S3 region string

    S3 region string

  • MINIO_ROOT_PASSWORDMinIO root password

    MinIO root password

  • MINIO_ROOT_USERMinIO root username

    MinIO root username

  • MINIO_SECRET_KEYMinIO secret key

    MinIO secret key

  • MINIO_URL_EXPIRES_IN10mPresigned URL lifetime

    Presigned URL lifetime

  • MINIO_USE_SSLfalseUse SSL for MinIO connection

    Use SSL for MinIO connection

    values: true, false

  • OPENAI_API_KEYOpenAI or compatible embeddings API key

    OpenAI or compatible embeddings API key

  • OWNER_EMAILowner@example.comOwner account email

    Owner account email

  • PUBLIC_URLExternal URL of the site

    External URL of the site

  • RESEND_API_KEYResend API key for email delivery

    Resend API key for email delivery

  • SIMPLE_BACKUPtrueEnable simple SQLite backups to MinIO

    Enable simple SQLite backups to MinIO

    values: true, false

  • SMTP_HOSTSMTP server host

    SMTP server host

  • SMTP_PASSSMTP password/API key

    SMTP password/API key

  • SMTP_USERSMTP username

    SMTP username

  • STORAGE_BACKENDlocalStorage backend type

    Storage backend type

    values: local, s3

  • STORAGE_LOCAL_DIR/data/storageLocal storage directory

    Local storage directory

  • TRIP2G_ prefixPrefix all trip2g env vars with TRIP2G_ to avoid collisions

    Prefix all trip2g env vars with TRIP2G_ to avoid collisions

  • USER_TOKEN_INSECUREtrueAllow insecure user tokens

    Allow insecure user tokens

    values: true, false

trip2g releases & version history

More in Content Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…