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:
- Run
git clone https://gt.tilambda.zone/o/pothole/libpothole.git
to clone the latest libpothole source code. - Change directory to the newly-cloned repository
- 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
Copyright © Leo Gavilieau 2022-2023
Licensed under GNU Affero General Public License version 3 or later.