code.pablomurad.com

indiedesk

Adds opted-in pages from personal sites to a topicless feed, served as Atom and JF2

git clone https://code.pablomurad.com/indiedesk.git

Recent commits

  1. d335ef2
    Tell readers this is an experiment, and stop linking a missing feed.
    
  2. 4507ba9
    Shorten the replies the relay sends.
    
    
  3. 9dcc92e
    Point the public guide at this repository.
    
    

Full log →

Readme

indiedesk

indiedesk adds pages from personal sites to a feed with no declared topic. Authors opt in. Delivery is Atom and JF2 Feed.

Idea

This is an IndieWeb implementation of the mezzanine, conceived by @moja.blue. This is the interpretation this relay follows.

  • A feed has a shared topic that stays implicit. Readers may catch the mood, or ignore it.
  • The space is small. A post is not thrown into an ocean like an SNS.
  • Anyone can start. The identifier is only a random string.

Posting

Read the guide for users. / means the server root URL. Example: /webmention → https://example.com/webmention

Startup

1. Publication

The default Compose file uses a Cloudflare Tunnel.

  1. On the Cloudflare side, set the public hostname origin to http://relay:8080.
  2. Publish the public Webmention receiver and the Atom and JF2 subscriptions.
    • Open Cloudflare > Security > Security rules > Custom rules.
    • Select the hostname and GET and POST, and skip the WAF, browser integrity check, and similar checks.

2. Environment variables

.env.example is the settings example. Copy it and use the copy.

PUBLIC_URL is the public HTTP(S) root URL. The relay treats a trailing / as the same URL. Do not include credentials, a query, a non-empty fragment, or a path other than the root.

cp .env.example .env

3. Persistence directory

Create a storage directory owned by UID/GID 65532 with mode 0750.

sudo install -d -o 65532 -g 65532 -m 0750 ./data

4. Docker containers

That is the last step.

docker compose config --quiet # check the configuration
docker compose up -d --build # start
docker compose exec relay /indiedesk healthcheck # check relay HTTP, storage, and workers

Backup

  • Stop with docker compose stop relay, copy the whole storage directory, then resume with docker compose start relay.
  • Recreate containers with docker compose up -d --force-recreate. When the same storage directory is reused, posts and accepted mentions remain.

License

  • The program is under the MIT License.
  • Notices for dependencies are in the third-party notices.
  • OS assets in the container keep their original license terms.