#activity-pub #social #platform #mastodon #sqlite #protocols #integrate

bin+lib enigmatick

Enigmatick is a social media platform that integrates with servers that implement the ActivityPub protocol (e.g., Mastodon)

12 releases

0.2.7 Mar 18, 2024
0.2.6 Mar 18, 2024
0.1.3 Mar 10, 2024

#1032 in Web programming

GPL-3.0-only

8.5MB
35K SLoC

Rust 20K SLoC // 0.0% comments JavaScript 14K SLoC // 0.0% comments SQL 1.5K SLoC // 0.0% comments

Contains (WOFF font, 150KB) fa-solid-900.woff2, (WOFF font, 110KB) fa-brands-400.woff2, (WOFF font, 25KB) fa-regular-400.woff2, (WOFF font, 5KB) fa-v4compatibility.woff2

Enigmatick Core

This is the core component of the Enigmatick social networking platform. Enigmatick implements functionality consistent with ActivityPub services; when everything is working properly, users may follow and interact with people hosted on services like Mastodon, Pleroma, Pixelfed, and others.

Installation

The simplest way to install Enigmatick is to use cargo:

cargo install enigmatick

This will install a sqlite server. To install the PostgreSQL-based server, you'll need to use cargo install enigmatick --no-default-features -F pg. The sqlite and pg features are mutually exclusive. If both are enabled, the pg components will take precedence.

To configure the server, use these commands:

enigmatick init

This will create the directory structure for the Enigmatick server in the current folder.

enigmatick template

This will copy in the bundled .env.template file to use to configure the server. Copy this to .env and modify it according to your needs.

enigmatick migrate

If using SQLite, this will create the database. In both the SQLite and PostgreSQL configurations, this will also set up the tables necessary to support Enigmatick.

Operation

enigmatick server will start the Enigmatick server from the current folder using the configuration you've set in .env. You can then use your browser to connect to the configured port.

Currently, you'll need to use a separate reverse proxy to handle the TLS necessary for ActivityPub to work properly. I plan to incorporate that configuration directly in to Enigmatick eventually.

Dependencies

~74–115MB
~2M SLoC