this post was submitted on 09 Jul 2023
13 points (78.3% liked)
Asklemmy
43895 readers
1093 users here now
A loosely moderated place to ask open-ended questions
If your post meets the following criteria, it's welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- [email protected]: a community for finding communities
~Icon~ ~by~ ~@Double_[email protected]~
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
There are APIs that you can use to post and comment, etc... But there has to be an instance at that domain.
That's how most of the mobile apps work btw, they just send a network request direct to lemmy.world etc... Saying that iopq wants to create a post with this title and this content....
But there's no need for your own personal domain name in this scenario, you just need an account on the server that you're trying to post or comment to.
Not sure if that helps.
Why does there have to be an instance there? Who checks that?
So you can't just send data from a domain. There has to be a service running behind that domain name to do something.
Without a server, it'd be like asking "why do I need tires on my car?". Well it's not going to go anywhere without them.
Now this could be a private instance with only you as the single user. And it could federated with the rest of the fediverse. But you still have to run some software to do that.
Now in theory someone I guess could come up with a slim version of Lemmy that only has a single user, and you can't post or comment directly to that instance but again something has to be running on a server behind that domain.
To do what, exactly?
I mean this in the kindest way possible, but it’s clear you have no idea how server-based software works, like at all.
These patient people are being angels to you.
This sort of software is a very intricate web of programs talking to other copies of itself. You can install your own copy of the program, but a copy of the program is 100% required, even if it’s just you using it.
I'm a web developer, so...
You are either trolling these people, or by “web developer” you mean you are a literal spider.
Then you should understand why a server needs to exist to accept a post from you.
Unless you are saying “why can’t I send the API calls to Lemmy instances that cause a post from another domain to show up in one” and the answer is that posts aren’t pushed to other instances, they are pulled.
So you’d need to set up a listener that responds to requests for subscriptions and requests for post and comment updates and responds in kind when another instance that you wish to allow federation with) asks for updates and congratulations you’ve just re-invented the Lemmy server software.
An instance contains a database that stores usernames, what users are subscribed to, and more.
It also contains code that requests data like posts, upvotes, links to images, etc. When you post something from your instance at your domain on a community on lemmy.world, your instance sends that post to lemmy.world and also watches that post so you'll be notified of replies, upvotes, etc.
This is the "federation" that makes Lemmy work, and all instances that have users who interact with other users on other instances do it. So the answer to the question "who checks that" is: your instance and every other instance anyone on your instance interacts with.
Simply subscribing to a community from your instance is also part of federation, because you're requesting data from other instances. These other instances require an address to deliver the data to, in the same way the postal service cannot deliver your mail without an address.
An instance is basically all the stuff that allows you to do the things you want to do on Lemmy. If you don't want to set up an account on someone else's server, you'll need to do it yourself.
This is the easiest method I've found to set up an instance: https://github.com/ubergeek77/Lemmy-Easy-Deploy
You will need a Linux server and know how to update, configure and secure it, and you will need to know how to point your domain name at your server via DNS A record.
If you can do those things, you can get a Lemmy instance up and running with that script in a few minutes.
Let's say I just sent a request from my non-existent server with my user id, and just every time I wanted to check whether I got replies I would query the other server (which a Lemmy server would do to get notifications about replies or upvotes)
If I subscribe to [email protected] I could just... check [email protected] without actually loading any data to a server, I could just literally load it from lemmy.ml
I COULD host an instance, but why bother to store that data if I'm only going to be using it myself?
Who or what is going to send this request if not some server that implements ActivityPub? This could be a Lemmy or Mastodon or Kbin instance... Or anything else that implements ActivityPub.
ActivityPub works via pushes. So there's nothing to query. There HAS to be some server for it to send and store that data.
Me, directly
Great, this is what I wanted to find out, so there has to be something listening for pushes
Not just listening, but also sending. Your instance also needs to be able to send your stuff elsewhere.
Yes, I now understand I need to have a server listening for the notifications being pushed to me
Hi there! Looks like you linked to a Lemmy community using an URL instead of its name, which doesn't work well for people on different instances. Try fixing it like this: [email protected], [email protected]