Skip to content

Latest commit

 

History

History
37 lines (22 loc) · 2.16 KB

Agora architecture.md

File metadata and controls

37 lines (22 loc) · 2.16 KB

What is an Agora?

An Agora is a distributed, goal-oriented social network operating on a cooperatively built and maintained knowledge graph. The implementation you are currently looking at tries to assemble such a graph out of a collection of digital gardens, but other data sources are coming.

The reference [[Agora of Flancia]] should be live at https://anagora.org.

Architecture

This Agora's architecture has several components distributed over three git repositories:

  • The Agora root repository, which you are browsing: https://github.com/flancian/agora.
    • This root repository contains a high level definition of the Agora as expressed by the list of digital gardens to be integrated (sources.yaml) and the contract agreed upon by the community (CONTRACT.md).
  • The Agora Server: https://github.com/flancian/agora-server.
    • Which contains a reference Python / Flask web app that integrates and serves content.
  • The Agora Bridge: https://github.com/flancian/agora-bridge.
    • Which contains a set of processes to retrieve content as volunteered by users.

To run

To run an Agora:

  • Clone all three repositories described above (ideally in the $HOME directory of a dedicated user; this is not strictly needed, but scripts might assume this).
  • Install Python requirements in each of agora-server and agora-bridge using pip or (recommended) [[poetry]].
  • In agora-bridge: run ./run-dev.sh to start updating repositories defined in sources.yaml.
  • In agora-server: run ./run-dev.sh to start the dev web interface; or refer to https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uswgi-and-nginx-on-ubuntu-18-04 for instructions on how to set up the Agora as a system service on top of uwsgi (see prod.ini) and nginx.

Of course you are also free to run your own Agora! To do this, just run the bridge against a local sources.yaml file -- or fork the root repository and adjust as wished. As usual please reach out if you need a hand with anything :)

To join

Please see [[README]].

For more information

See the [[Agora Chapter]] in the [[PKG Book]].