A Micropub server implementation in Gleam - a lightweight, type-safe server for publishing content to your personal website
Find a file
Jon 8791d795d8
Some checks failed
test / test (push) Has been cancelled
formatting
2025-09-28 17:36:20 +01:00
.github/workflows init 2025-07-26 18:39:04 +01:00
src formatting 2025-09-28 17:36:20 +01:00
test Restructure project 2025-07-29 08:24:35 +01:00
.example.env Handle setting log level from envs 2025-07-31 17:51:32 +01:00
.gitignore read env vars 2025-07-28 18:32:30 +01:00
gleam.toml Add watch post type support and implement post slug generation utility 2025-09-28 17:34:11 +01:00
LICENSE Add license 2025-08-02 21:31:43 +01:00
manifest.toml Add watch post type support and implement post slug generation utility 2025-09-28 17:34:11 +01:00
README.md Update README 2025-08-02 21:34:32 +01:00

TwinklePub

TwinklePub is a friendly Micropub server written in Gleam, enabling you to publish content to your personal website using standardized IndieWeb protocols.

Installation

Prequisites

  • Gleam (Tested on v1.11)
  • Erlang/OTP (Tested on v28)

Quick Start

This application requires some environment variables to be configured, see below for details.

Start by cloning this repository.

cd twinkle_pub

# Install dependencies
gleam deps download

# Configure environment variables
cp .example.env .env # Edit these variables according to your requirements

# Build and run
gleam run

Configuration

The following environment variables should be configured before running the server.

Required

TOKEN_ENDPOINT: The URL of your IndieAuth token endpoint (e.g., https://tokens.indieauth.com/token)
ME: The URL of your personal website

Optional

MEDIA_ENDPOINT: The URL of the media endpoint Micropub clients should use
SYNDICATE_TO: A JSON array of syndication targets
LOG_LEVEL: Logging verbosity level - defaults to INFO. Supports: DEBUG, INFO, WARN, ERROR, CRITICAL