MCPSERV.CLUB
Akkoma

Akkoma

Self-Hosted

Decentralized microblogging for the fediverse

Stale(40)
0stars
0views

Overview

Discover what makes Akkoma powerful

Akkoma is a self‑hosted, ActivityPub‑compliant microblogging platform that extends the fediverse ecosystem. It is a fork of Pleroma but deliberately aligns its feature set and API surface more closely with Misskey, offering a richer expression layer through custom emoji reactions and “Misskey‑flavoured” Markdown. From a developer standpoint, Akkoma acts as both a lightweight social network and an extensible platform that can be embedded in larger federated services or used as a stand‑alone server for niche communities.

Language

Web Framework

Database

Background Processing

Overview

Akkoma is a self‑hosted, ActivityPub‑compliant microblogging platform that extends the fediverse ecosystem. It is a fork of Pleroma but deliberately aligns its feature set and API surface more closely with Misskey, offering a richer expression layer through custom emoji reactions and “Misskey‑flavoured” Markdown. From a developer standpoint, Akkoma acts as both a lightweight social network and an extensible platform that can be embedded in larger federated services or used as a stand‑alone server for niche communities.

Technical Stack & Architecture

  • Language: Elixir (BEAM VM) – providing concurrent, fault‑tolerant request handling.
  • Web Framework: Phoenix – delivering real‑time features via channels and WebSockets for live updates.
  • Database: PostgreSQL (primary) with optional Redis for caching and background job queues.
  • Background Processing: Oban (Elixir library) for handling asynchronous tasks such as federation pushes, media transcoding, and scheduled notifications.
  • Media Handling: ImageMagick/ffmpeg pipelines integrated through Elixir wrappers, enabling on‑the‑fly thumbnail generation and video transcoding.
  • Front‑end: Vue.js/React hybrid (depending on build) with a component library that mirrors Misskey’s UI, allowing developers to swap or extend components without touching the core Elixir code.

The architecture follows a clear separation of concerns: Phoenix handles HTTP/WS endpoints, Oban processes long‑running jobs, and Elixir modules expose a public API that mirrors ActivityPub’s verbs (Create, Update, Delete). This modular design makes it straightforward to replace or extend individual layers (e.g., swap Redis for Memcached, integrate a custom CDN for media).

Core Capabilities & APIs

  • ActivityPub Implementation – full support for inbox, outbox, and followers endpoints, enabling seamless federation with Mastodon, Pleroma, Misskey, and other ActivityPub‑compliant services.
  • Rich Markdown & Custom Emoji – a parser that supports extended syntax (tables, footnotes, code blocks) and custom emoji sets that can be uploaded per‑instance.
  • Webhooks & Event Hooks – developers can subscribe to user events (e.g., post_created, reaction_added) via HTTP callbacks or internal PubSub.
  • RESTful Admin API – authenticated endpoints for bulk user management, moderation actions, and instance configuration.
  • GraphQL API (experimental) – a schema that mirrors the REST endpoints, useful for building custom front‑ends or mobile clients.
  • Plugin System – a plug‑in architecture that allows adding new request handlers or modifying the pipeline without altering core code. Plugins are packaged as Elixir modules and can be enabled via configuration.

Deployment & Infrastructure

Akkoma is designed for containerised environments and can be deployed with Docker Compose or Kubernetes. The official Dockerfile exposes a single service that runs the Phoenix web server and Oban workers; side‑cars can be added for PostgreSQL, Redis, or a reverse proxy (NGINX/Traefik). Horizontal scaling is achieved by running multiple web worker replicas behind a load balancer, while background jobs can be distributed across several Oban workers. Persistent storage for media is handled through a mounted volume or an object store (S3 compatible) via the :ecto_sql adapter.

Self‑hosting requirements are modest: a modern 64‑bit CPU, 4 GB RAM for small instances (up to ~10k users), and a PostgreSQL database. For larger deployments, the Elixir runtime’s low memory footprint and the ability to shard media storage make Akkoma competitive with other federated platforms.

Integration & Extensibility

  • Custom Emoji Reactions – administrators can upload a set of PNG/SVG files that become available to all users; the API exposes CRUD operations for these assets.
  • Federation Hooks – developers can inject middleware to modify outgoing ActivityPub objects (e.g., add custom metadata, filter content).
  • Plugin Hooks – the plug‑in system exposes lifecycle callbacks (before_create, after_update) that can be used to implement custom moderation logic or analytics.
  • Webhooks – external services can subscribe to events via HTTPS callbacks, enabling integrations with CI/CD pipelines, chatops bots, or notification systems.
  • Custom Front‑ends – because the API surface is well‑documented, developers can build standalone mobile apps or desktop clients that consume Akkoma’s REST/GraphQL endpoints.

Developer Experience

Akkoma offers comprehensive documentation covering installation, API reference, and plugin development. The community is active on its own instance, providing quick support through forums and a dedicated Discord channel. Configuration is largely declarative via YAML/JSON files, with sensible defaults that allow a quick “one‑click” Docker deployment. The codebase follows Elixir conventions, making it approachable for developers familiar with Phoenix or functional programming.

Use Cases

  1. Private Federated Communities – small universities, hobbyist groups, or corporate teams can host an Akkoma instance to enable internal microblogging with federation to external partners.
  2. Custom Social Networks – creators or brands wanting a platform with rich Markdown and emoji reactions can deploy Akkoma, leveraging its plugin system to add brand‑specific features.
  3. Experimentation & Research – researchers studying distributed social networks can use Akkoma’s clean ActivityPub implementation as a testbed for new federation protocols or

Open SourceReady to get started?

Join the community and start self-hosting Akkoma today

Weekly Views

Loading...
Support Us

Featured Project

$30/month

Get maximum visibility with featured placement and special badges

Repository Health

Loading health data...

Information

Category
apis-services
License
AGPL-3.0
Stars
0
Technical Specs
Pricing
Open Source
Database
PostgreSQL
Docker
Community
Min RAM
1GB
Min Storage
5GB
Supported OS
LinuxDocker