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
Requires
- php: ^8.2
- ext-pdo: *
- ezyang/htmlpurifier: ^4
- fedi-e2ee/pkd-crypto: ^0.21|^1
- guzzlehttp/guzzle: ^6|^7
- laminas/laminas-diactoros: ^3
- laminas/laminas-httphandlerrunner: ^2
- league/route: ^6
- paragonie/easydb: ^3
- paragonie/easydb-cache: ^2.2
- psr/http-message: ^2
- twig/twig: ^3
Requires (Dev)
- phpunit/phpunit: ^10|^11|^12
- vimeo/psalm: ^6
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.