federator/README.md

51 lines
1.9 KiB
Markdown

# A system to connect non-federated system to federation (ActivityPub)
NOTE: this is work in progress, it is nowhere near completion nor function
## installation
install dependencies by using
> composer install
Upload/copy the files to a directory where php can be run from.
The files in the htdocs should be the only reachable, the others should not be served via the web server.
Structure:
- htdocs <= reachable
- php <= implementation
- plugins <= plugin directory for well - plugins
- config.ini <= the configuration
The default config includes a dummy plugin to connect to a non-exisitng server. It accepts any session id and profile name.
The database is not used yet, but it must be created and the user with given account data must be able to reach it.
Needed SQL commands:
create database federator;
create user if not exists 'federator'@'localhost' identified by '*change*me*';
grant select,insert,update,delete on federator.* to 'federator'@'localhost';
create user if not exists 'federatoradmin'@'localhost' identified by '*change*me*as*well';
grant all privileges on federator.* to 'federatoradmin'@'localhost';
This will be changed, but works for the current develop verison.
If the include redis cache is enabled, create a users.acl for redis with the content:
user federator on ~u_* +get +set >redis*change*password
change password in the rediscache.ini to match your given password.
To configure an apache server, add the following rewrite rules:
<Directory /where/ever/you/put/it>
RewriteEngine on
RewriteBase /
RewriteRule ^api/federator/(.+)$ federator.php?_call=$1 [L]
RewriteRule ^(\.well-known/.*)$ /federator.php?_call=$1 [L,END]
</Directory>
With the dummy plugin and everything installed correctly a
> curl -v http://localhost/api/federator/v1/dummy/moo -H "X-Session: somethingvalid" -H "X-Profile: ihaveone"
should return a piece of ascii art.