soatok/mini-fedi-server

A small ActivityPub-based webserver that exists solely for testing purposes

Installs: 17

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

Type:project

pkg:composer/soatok/mini-fedi-server

v0.1.0 2026-01-06 15:10 UTC

This package is auto-updated.

Last update: 2026-01-06 15:11:50 UTC


README

A nearly-minimalist Fediverse server in PHP.

This solely exists for integrating testing for the Fedi-E2EE pkd-client and pkd-server software. I make no guarantees about its security or performance. To that end, a major version will never be tagged.

Warning

Do not use in production environments!

Installing as a Dev-Dependency

# Get the code
composer require --dev soatok/mini-fedi-server
cd vendor/soatok/mini-fedi-server

# Edit config/server.php

# Finally, start the server (defaults to port 65233, which is 0xFED1 or "Fedi")
composer start

Installing (for Mini-Fedi Development)

# Get the code and its dependencies
git clone https://github.com/soatok/mini-fedi-server
cd mini-fedi-server
composer install

# Then edit config/server.php

# Finally, start the server (defaults to port 65233, which is 0xFED1 or "Fedi")
composer start

Using the Mini-Fedi Server in Unit Tests

Use the Orchestration test class to manage the SQL database.

<?php
use Soatok\MiniFedi\Orchestration;
use ParagonIE\EasyDB\EasyDB;

class Foo extends \PHPUnit\Framework\TestCase
{
    public function yourTest(EasyDB $yourDatabaseGoesHere): void
    {
        $orchestration = new Orchestration($yourDatabaseGoeshere);
        $orchestration->stash(); // if any changes were already saved, back them up

        $alice = $orchestration->createActor('alice');
        $orchestration->createPublicKeyForActor($alice, 'public key goes here');
        $bob = $orchestration->createActor('bob');
        $this->assertSame('alice', $alice->username);

        $orchestration->unstash(); // restore backup
    }
}

Meanwhile, you can send HTTP requests to http://localhost:65233 in callbacks and verify the changes through the Orchestration class.