Between Dec 19 2020 and today i.e. Dec 23 2020, I tested the matrix-synapse homeserver setup in various configurations:
- Registering a non-admin user to communicate with (Without a private key and with one)
- Logging in as another user to create groups (Allowed)
- Logging in as another user to attempt creating communities (Turned off by default)
- Turning on federation
- Logging in as another user to join public communities on another homeserver
Blockers
As soon as I joined a public community (on a different homeserver) with lot of messages (events as Matrix would refer to it), the process of synchronizing (Scroll to How does it Work) consumed too many resources on my server that I had to forcefully restart it
My SSH session went unreponsive. You can see my keypresses attempting to exit the session
Decision Time
While I have in-place a flow for registration approval and the desired Terms and Conditions acceptance and tracking is possible today, for the reasons listed below, I am making a change in the direction of this project:
- I cannot prevent users registering on my homeserver from joining other public communities at their will. The reasons are both
- Technical - While federation is enabled, the Synapse server implementation today does not provide a way to prevent (non-admin/admin) users from joining public communities and
- Intentional - While the matrix protocol today provides for implementing an “Access Control List” of other homeservers that can be whitelisted, I do not believe it to be in the best interests of members in this On-Ramp To Python and other friends to be prevented from engaging with larger communities to advance their learning
- My current budget allocation for this project has to be increased at least by 5 times to run a large enough server that staisifes the goals of this project - to be an accommodating learning platform where our data is in our control
So?
To hit all the goals stated above, I will be
For help with server provisioning and user provisioning, you can always send me a Direct Message on Twitter or Open an Issue on Github.