Heyo! I'm back! Finally got a working server running[1] -- OCamlot.
[1] Having some difficulty with mastodon servers, but pleroma works well!
Heyo! I'm back! Finally got a working server running[1] -- OCamlot.
[1] Having some difficulty with mastodon servers, but pleroma works well!
Solution: use a server with soul[1][2]
[1] no comment about activitypub compliance and the hair-pulling frustration that comes with achieving it.[2] Rename boosting to some arbitrary word to confuse people as well.
On the contrary, I'm not trying to suggest pleroma is slow or anything. I just mean that the current server is literally the barebones minimum to be an activitypub server, it's likely not a good comparison.
Hard to tell because the server I'm using is also running several other services atm (matix server, nextcloud, feed aggregator).
I'd guess it should be more lightweight, because the OCaml process is single-threaded and OCamlot lacks 90% of the features that pleroma has, for example I don't have any kind of scheduled background tasks, etc.
Haha, that's just a happy accident arising from the fact that I didn't want to parse the user text -- the targets to a post are specified directly rather than inferred by looking at the "@@" tags that occur in the text.
Of course, when replying to a post, the to field is populated automatically based on the meta-data of the post being replied to, but no actual analysis of the string itself is done.
It's actually blowing my mind that its working. WOW!
So far it's cranking along without too much trouble. I used to be getting a bunch of database-locked errors but then I swapped from Sqlite to postgres and now things are smooth!
I did all my testing locally with pleroma servers, so that's generally working out quite well.
Some hiccups with mastadon servers.
Of course!
And it looks dope.
You would not believe how hard it was to get this up and running.
Partially because writing compliant activitypub servers is mostly a matter of reading through the code of other implementations to try and guess how they're implemented...
and partially because the OCaml ecosystem for this stuff really sucks. I had to write my own SQL library to actually make it practical to get anything done!