aboutsummaryrefslogtreecommitdiff

Pothole

A lightweight federated microblogging server written in Nim. Pothole allows you to control your digital life!

Note: Pothole is still in pre-alpha stage, lots of implementation details are being just figured out now and

Note: It might not be possible to build Pothole yet. This git service does not implement smart HTTPS and so nimble does not know how to fetch libpothole off of it. I am aware of this issue and I am working to fix it ASAP. For now, follow the library install method described in this link

What is Pothole?

Pothole is a social media backend written in Nim, it's designed to be simple & fast. It has unique features such as allowing user-profiles to be written with custom HTML & CSS (Pothole's features can be embedded using a language we call Potcode) Pothole is far more reminiscent of Tumblr in this sense since it allows you to fully customize your profile.

Pothole federates to other servers using the ActivityPub protocol which means you can communicate to users on Mastodon, Akkoma, Misskey or whatever website that implements it. Pothole is also compatible with Mastodon's API interface, so your clients, frontends and bots should work with little to no changes.

Does it work?

No. You are better off using Akkoma for a stable backend or GoToSocial for a light-as-air backend.

Development is slow because creating anything remotely like this is incredibly difficult, I am trying to emphasize speed & safety over shiny features, and that means I keep planning ahead for new things and that's why this is taking so long. Pothole is still in early-development, it is still in it's design phase! Though progress on multiple fronts has been made

But I still want to use it

Well then head on to the compilation section, but don't expect it to fully work out-of-the-box, configuration and setup is required. This will be documented someday.

Downloading libpothole

Pothole and its main dependency, libpothole, are hosted on the tilambda git hosting service. Unfortunately, this service lacks smart HTTPS and nimble will fail to download from it. But you can follow these instructions as a workaround:

  1. Run git clone https://gt.tilambda.zone/o/pothole/libpothole.git to clone the latest libpothole source code.
  2. Change directory to the newly-cloned repository
  3. Run nimble install to install libpothole.

Compilation

Pothole is written in Nim, so you'll need the nim compiler, your favorite C compiler (gcc is recommended) and Nimble.

Simply run nimble build to build Pothole, by default it will build with sane options and be optimized for speed rather than size.

It will also install any and all dependencies for you! (Except for libpothole, but you should follow the above to install it.)

Makefile-based compiling

The makefile is there for developer use as it includes common targets with developmental settings. You can build with release settings using make all

Copyright © Leo Gavilieau 2022-2023

Licensed under GNU Affero General Public License version 3 or later.