Hello all! I have packaged a PHP based Federated Social Network called GNU Social.
GNU Social is able to federate with itself, Mastodon, Pleroma, and more that support ActivityPub and OStatus.
Currently the package is a modified version of the LAMP 7.3 app which enables PSQL in place of MySQL.
Per GNU Social's README:
GNU social is a free social networking platform. It helps people in a community, company or group to exchange short status updates, do polls, announce events, or other social activities (and you can add more!). Users can choose which people to "follow" and receive only their friends' or colleagues' status messages. It provides a similar service to proprietary social network sites, but is much more awesome.
App Package Repo: https://git.cloudron.io/murgero/gnu-social
GNU Social Repo: https://notabug.org/diogo/gnu-social
What is currently working (Besides the basics!)
- Federation via OStatus
- Some* Federation via ActivityPub
- SMTP, invitations, registrations
- PSQL replaced MySQL in the app (though MySQL is still available if the issue with NO_ZERO_DATES gets fixed)
- Admin options
- The Basic themes (I plan on adding qvitter later!)
- Redis Queue for backend processing!
*Federation with ActivityPub servers works decently enough for me to put the app's package source up, but some issues occur here. 1) Getting followed by someone using ActivityPub (Specifically Mastodon??) you never get the notification. There may be other AP issues I am unable to test further for now.
The configuration of the app I am sure needs tweaking, the scripts will need tweaking, and upstream (See gnu social repo above) is constantly updating so I'll keep an eye out for big configuration changes.
git clone https://git.cloudron.io/murgero/gnu-social gnu-social cd gnu-social cloudron install --image=mitchellurgero/org.urgero.gs:latest
Or just clone, build in docker and install like any other non-store app.
@murgero Thanks a lot! I will add this to the list of apps to get published. I asked elsewhere how actively developed it us, but I see now that it is very actively developed.
Are there any special federation requirements for the app? Or is this based on webfinger?
@girish The only requirement is that the app cannot be in a sub-folder (subdomain of course is fine however!), otherwise the plugins "TheFreedomNetwork", "ActivityPub", and "OStatus" handle federation as needed. It's still WIP/Nightly code, however, for gnusocial to gnusocial it works fine. That said, ActivityPub in GS is still in development.
On first run it will grab whatever the latest nightly is and run the cli installer in headless. This means first start is about 5 mins or so depending on internet speed and system. I plan to change this so the repo is built into the app before you publish it, but I needed something that could grab the nightly branch quickly without me having to modify any files for testing.
There is also Diaspora support, but that is pretty untested AFAIK and I am not even sure if that works on PHP7+ yet. I'm still playing around with this app and my Unifi one
@girish What will it take to get this packaged as an unstable app?
@murgero Thanks, I have put this on my TODO list. I have a couple of apps in my list already, so I should get to this next week.
I marked this as WIP now.
@girish Can we get this as unstable in the app store?
@murgero Yup, it's in my wekan for next week. This week got busy with some app updates. Some apps are not updating cleanly like nodebb...
@girish I understand, thank you!
@girish any chance this might get packaged?
@murgero oh, what's the current status of the app?
@girish Working. LDAP is non-existent though.
@murgero That's fine, LDAP is not mandatory. Marked this one as WIP as well.
@girish Thank you!