CommonsPub Federated Server
About the project
CommonsPub is a federated app ecosystem based on the ActivityPub and ActivityStreams web standards).
This is the main repository, written in Elixir (running on Erlang/OTP).
The federation API uses ActivityPub and the client API uses GraphQL.
There is a bundled front-end built with Phoenix LiveView (and an older React frontend in a seperate repo).
Documentation
Do you want to...
-
Read about the CommonsPub architecture? Read our overview.
-
Hack on the code? Read our Developer FAQs.
-
Understand the client API? Read our GraphQL guide.
-
Deploy in production? Read our Deployment Docs.
Forks and branches
Flavours
CommonsPub comes in different flavours, which are made up of a combination of extensions and probably some custom config and branding. Each flavour has its own branch in the CommonsPub repo:
flavour/commonspub- Contains the generic flavour of CommonsPub (currently packaged with all extensions)flavour/zenpub- WIP ZenPub flavour (which will use ZenRoom for public key signing and end-to-end encryptionflavour/haha- WIP for HAHA Academy
Extensions
Features are being developed in seperate namespaces in order to make the software more modular (to then be spun out into individual libraries):
lib/activity_pubandlib/activity_pub_web- Implementation of the ActivityPub federation protocol.lib/extensions/value_flows- WIP implementation of the ValueFlows economic vocabulary, to power distributed economic networks for the next economy.lib/extensions/organisations- Adds functionality for organisations to maintain a shared profile.lib/extensions/tags- For tagging, @ mentions, and user-maintained taxonomies of categories.lib/extensions/measurements- Various units and measures for indicating amounts (incl duration).lib/extensions/locales- Extensive schema of languages/countries/etc. The data is also open and shall be made available oustide the repo.lib/extensions/geolocations- Shared 'spatial things' database for tagging objects with a location.
Please avoid mixing flavours!
For example, do not merge directly from flavour/commonspub-->flavour/zenpub.
Licensing
CommonsPub is licensed under the GNU Affero GPL version 3.0 (GNU AGPLv3).
Copyright © 2017-2020 by all contributors.
This repository includes code from:
- CommonsPub, copyright (c) 2018-2020, CommonsPub Contributors
- Reflow, copyright (c) 2020 Dyne.org foundation, Amsterdam
- HAHA Academy, copyright (c) 2020, Mittetulundusühing HAHA Academy
- MoodleNet, copyright (c) 2018-2020 Moodle Pty Ltd
- Pleroma, copyright (c) 2017-2020, Pleroma Authors
For a list of linked libraries, including their origin and licenses, see docs/DEPENDENCIES.md