Arkanosis / microstatus

Lightweight Mastodon- and GNU social-compatible ActivityPub and OStatus server implementation
https://microstatus.org/
ISC License
175 stars 6 forks source link

Searching for a standalone server implementation with api #2

Open pwFoo opened 5 years ago

pwFoo commented 5 years ago

Maybe microstatus is what I'm searching for? Looks like it's still under development. Is there a roadmap / ToDo and list of implemented features?

pwFoo commented 5 years ago

@Arkanosis Project still maintained?

Serkan-devel commented 5 years ago

Hewwo?

Arkanosis commented 5 years ago

Hi @pwFoo ! :-)

Thank you for your interest and sorry for the late answer.

The project is only in the early phase of its development (mostly specification and trying alternatives to make sure I don't miss anything). Unfortunately, I haven't had much time to spend on it so far, nor on my own projects in general, hence my lack of activity on GitHub since October.

microstatus is not ready for any usage right now, and I won't commit to a roadmap as I have little control on how much free time I have to work on it (trust me, I'd love to).

Here's what I'm already 100% sure I want to make of it, though:

I'd also like the following — though it's only secondary to the list above:

It might happen that microstatus provides the following, but that's not my primary focus at all (it'd happen by accident or because someone else made it so):

I hope it somehow answers your questions. If not, feel free to ask for more details ;-)

Arkanosis commented 5 years ago

@Serkan-devel : could you please elaborate? :-)

Serkan-devel commented 5 years ago

nvm

pwFoo commented 5 years ago

It should be docker friendly (entrypoint script, environment var configuration?) too 😁

Maybe you could add a roadmap with done and planned feature status?

Arkanosis commented 5 years ago

To be honest, I don't care much about Docker myself, but as easy deployment is one of the main goals, adding Docker support is something I'll probably do as soon as I have something users can rely on. The Dockerfile shouldn't be much more complicated than:

FROM stretch-slim:latest
RUN apt install microstatus
CMD microstatus

… and you'd have to run it with the storage directory bound to /var/microstatus — something like that.

I'm not sure how much this would be an improvement over simply copying the binary on the host (we're not talking about Mastodon here: there won't be any PostgreSQL, Redis, Ruby or Node.js to install and configure there — run the microstatus binary and you're done, that's the point).

But hey, it's almost 2019, so yes, it'll be Docker friendly ;-)

As for the roadmap, what I'll do is creating issues and associating them with milestones (ie. versions, not dates — again, I can't commit to any deadline), so that anyone can see how I prioritize features. That's how I've been working on other projects (eg. done / todo). Does it sound fair?

pwFoo commented 5 years ago

Open issues with milestones is fine 👍 Roadmap or milestones is just to see how much features should work or planned at the moment.

pwFoo commented 5 years ago

Is a notification endpoint planned? Webpush api to support (closed) browser push notifications?

Tested Mastodon and misskey, but both Not perfect... That's why I searching for a standalond and lightweight server with api.

Maybe compatible to mastodon frontends like halcyon or pinafore. Or try to build a custom client...

Storage should be replaceable. I like mysql.

Arkanosis commented 5 years ago

Web Push is an interesting feature, but I think anything apart from the core ActivityPub implementation would be better implemented as another tool one would plug on top of microstatus' API. Therefore, I have no plan to provide support for Web Push (actually, no plan to provide an UI at all).

There will be some internal notification mechanism, though I've not designed anything about it for now. Anyway, it should make it quite easy to implement Web Push either on top of the API, or by re-using the microstatus ''library'' (as opposed to the microstatus ''daemon'').

As I wrote above, a secondary objective is to provide compliant client support of the ActivityPub protocol. I believe this would effectively make microstatus compatible with Mastodon frontends (including webapps and mobile apps), though there are probably a bunch of quirks that are necessary (but that's something I'd be willing to make work).

As for storage, I don't intend to implement anything other than files to begin with, but I'll make sure to make it a pluggable component in the microstatus library, so that if anyone wants to implement an alternative backend, it's just a matter of using the same traits.