Sign inSign up

noxegenus/broadside

By noxegenus

Updated about 1 month ago

A minimalistic blogging platform with APIs.

Image
Web servers
1

173

noxegenus/broadside repository overview

Under Development

A lightweight, minimal blogging platform with a full HTTP API, so posting can be driven from n8n, Node-RED, or anything else that can send a request. Write once and let a workflow push it out to everywhere else.

The goal is a blog that removes the overhead. No database, no build step, no plugins, no theme engine to learn. Your posts are markdown files in a dated folder on disk, and the site is one static binary that reads them. Write a post and it appears. With a mobile app on the way, posting content will be easy and streamlined.

Run it:

Expose the container's /site directory to get at your content, and publish port 5555 for the web interface.

docker run -d --name broadside \
  -p 5555:5555 \
  -v /path/to/your/site:/site \
  --user 1000:1000 \
  --restart unless-stopped \
  noxegenus/broadside:latest

or with compose:

services:
  broadside:
    image: noxegenus/broadside:latest
    container_name: broadside
    restart: unless-stopped
    ports:
      - "5555:5555"
    volumes:
      - /path/to/your/site:/site
    user: "1000:1000"

There are no baked in passwords or accounts! To access the first-time setup page, go to the yoursite.com:5555/admin or yoursite.com:5555/setup. The default password length is 8 characters (this can be changed on the admin panel).

Features:
  • Flat-file setup, no database. Markdown with YAML frontmatter. Copy the folder to another machine and the site comes back up exactly as it was.
  • Social media icons that automatically populate in the header.
  • A real API. Create, update, and delete posts and upload media over HTTP with a bearer token, so n8n, Node-RED, a shortcut on your phone, or a cron job can all publish. Token management and examples are in the admin panel (under the API tab).
  • A block editor. Movable stacks for text, headings, quotes, code, lists, images, galleries, video, files, embeds, and dividers. It saves plain markdown, and anything it does not model is preserved untouched.
  • Image galleries. Drop several pictures into one block and they become a swipeable carousel that wraps at both ends, with a lightbox over the top.
  • Search. Filters the timeline in place, by tag or by content, without navigating anywhere.
  • Very small footprint (about 8MB) Measured serving pages, Comfortable on lightweight setups, cheap VPS tiers, or even a Raspberry Pi.
  • Works without JavaScript. Server-rendered HTML throughout. Scripts add the Lightbox (and carousel), the in-page search, and infinite scroll.
  • Themed from the settings page. Six colors and your choice of fonts. The fonts ship inside the binary, so no request ever leaves the reader's browser for a third party.
  • Configurable upload limit. Defaults to 256MB with a max of 4GB.
  • This is a FROM scratch image. One statically linked binary and nothing else. No shell, no package manager, no libc!!!
Reverse Proxy:

There is no proxy inside the container. If you already run a reverse proxy server, point it at port 5555:

blog.example.com {
	reverse_proxy broadside:5555
}

Then add --behind-proxy to the command so Broadside reads the reader's real address from X-Forwarded-For. This is because the login rate-limiter counts against it. Leave that flag off when the port is reached directly, otherwise any client can forge the header and get unlimited login attempts. (Working on this, and will be fixed in later releases).

Unraid Users:

You will need to add two variables or the container cannot write to your share:

PUID:99
PGID:100

More info: https://git.thebytes.net/thebytes/broadside.git Issues and pull requests are welcome. MIT licensed.

Tag summary

Content type

Image

Digest

sha256:cf8918106

Size

4.5 MB

Last updated

about 1 month ago

docker pull noxegenus/broadside