Sign inSign up

owenyoung/jant

By owenyoung

•Updated 1 day ago

Single-author microblogging for self-hosted Docker and Cloudflare.

Image
0

5.6K

owenyoung/jant repository overview

⁠Jant

Jant is a self-hosted, single-author microblog for notes, links, and quotes, without followers, likes, or algorithmic feeds.

The official Docker image is owenyoung/jant. It runs the Node runtime. The Compose file applies schema migrations and data backfills before it starts the app; the image on its own refuses to start on a database that hasn't been migrated.

⁠Quick Start with Docker Compose

Download the official Compose files:

curl -O https://raw.githubusercontent.com/jant-me/jant/main/compose.yml
curl -o .env https://raw.githubusercontent.com/jant-me/jant/main/.env.example
mkdir -p data/media

The container runs as the user with ID 1000. On Linux, give it the data directory first: sudo chown -R 1000:1000 data.

Set AUTH_SECRET in .env, then start Jant:

docker compose up -d

Open http://127.0.0.1:3000.

⁠Run the Official Image Directly

Use docker run when you want a single container without Compose. Apply migrations first, and again after every image update:

docker run --rm \
  -e AUTH_SECRET=<auth-secret> \
  -v "$(pwd)/data:/var/lib/jant" \
  owenyoung/jant:latest \
  jant migrate

docker run -d \
  --name jant \
  -p 3000:3000 \
  -e AUTH_SECRET=<auth-secret> \
  -e TRUST_PROXY=false \
  -v "$(pwd)/data:/var/lib/jant" \
  owenyoung/jant:latest

Set TRUST_PROXY=true when the container sits behind Caddy, Nginx, Traefik, or another reverse proxy you control.

⁠Pin a Version

Use an exact image tag when you want a repeatable deploy:

IMAGE=owenyoung/jant:<version> docker compose up -d

⁠Required Configuration

  • AUTH_SECRET is required
  • SITE_ORIGIN is optional and sets canonical URLs, RSS links, and sitemap URLs
  • SITE_PATH_PREFIX is optional when you mount Jant under a subpath such as /blog

Generate a secret with:

openssl rand -base64 32

⁠Data Storage

The official image stores app data under /var/lib/jant inside the container.

With the default Compose file, that maps to ./data on the host and includes:

  • ./data/jant.sqlite
  • ./data/media/

⁠Documentation

Tag summary

Content type

Image

Digest

sha256:82116c4d3…

Size

171 MB

Last updated

1 day ago

docker pull owenyoung/jant