alexwennerberg / gourami Goto Github PK
View Code? Open in Web Editor NEWA decentralized social network for the small web, implemented in ActivityPub
License: GNU Affero General Public License v3.0
A decentralized social network for the small web, implemented in ActivityPub
License: GNU Affero General Public License v3.0
unwrap error of some sort
Users should be able to make posts and receive replies to posts via email.
I think the easiest way to do this is through an SMTP relay instead of setting up an email server.
(removing bloat)
I want to be a little more flexible than a lot of services -- allowing utf-8 usernames instead of just ascii. I should come up with a reasonable subset of utf 8 for usernames
I drank too much of the 12 factor app kool aid
Use this function to automatically notify the whole server when a new user joins
When registering a new account on a local development instance the registration kept failing for me. Eventually I poked through the code and found that a password complexity check is performed and my test password of password
was unsurprisingly too weak.
The code in question is as follows from do_register
in lib.rs
:
if form.validate().is_err() {
// TODO catch better
return do_login(LoginForm {
username: form.username,
password: form.password,
});
}
I note the TODO is already there but figured it was worth extracting it to an issue for tracking.
Right now, the only actions supported are Follow, Accept (follow) and Create Note.
At a bare minimum we also want to support deletes and Undo Follows.
I think that I'm losing out on what makes gourami special with #26 and #22
I don't want to just make a regular activitypub server in rust -- there are many of those
I want to attempt a different style of federation and decentralization
This will probably fail / make this service less popular, but it's more aligned with what I want to build, I think.
The user page, neighborhood page, and local timeline should all have RSS feeds.
Just leads to unwrap error
If user is > 1 day old, they have the ability to invite people, rate limited in some way (once a day?)
Follow the invite tree as in https://lobste.rs/
This can be enabled / disabled
This is a topic I have very little experience with
If I'm feeling really crazy I can generate the image via a browser emulator and github actions
I'm not using it, but I understand it's valuable for people testing / getting started
I'm sure I'm doing something wrong with session cookies
While setting up locally (with the sample_env
you provide) it isn't possible to create an account if the SIGNATURE_PUBKEY_PEM
file isn't there:
thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/ap.rs:45:21
Since I don't care about federation I side-stepped this with mkdir local && touch local/public.pem
. You might want to mention this in the docs (or handle the error differently).
Thought a lot about this decision
I think my design has been somewhat resistant to how the fediverse works in practice, and I'm thinking about what I am looking for in an ActivityPub server, and being able to communicate with mastodon / the larger fediverse is something I want to aim towards.
Notifications are a mostly useless abstraction and the notification tab just links to posts. I don't use it much.
Unread mentions/replies should be tracked by date instead of a bit flag as they are right now
While following the installation steps I noticed that diesel_cli
fails to install if you don't have dev headers for all the db libraries it supports (in my case: mysql). Maybe for the time being it would make sense to suggest installing it like this:
$ cargo install diesel_cli --no-default-features --features "sqlite"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.