this post was submitted on 01 Mar 2026
396 points (98.3% liked)

Selfhosted

57132 readers
494 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

I've been working on Habitat for the past two years. It all stemmed from this idea that I posted in April 2024.

Habitat is a free open-source, self hosted social platform for local communities. It is aimed at fostering local community discussions and discovery of areas of interest. This is why it is built primarily around location. A Habitat instance centers on a specific area, and the local community can make generic posts about that area, or they can make posts about specific locations in that area. More about what I've been building and the future plans here.

Features

  • Habitat specification of location and size - enabling posts related to the local area
  • Home feed - Displays the most recent posts
  • Nearby feed - Displays posts sorted by proximity to the user
  • Create posts - Upload photos, set locations, comments
  • Categories - Location rules
  • Amazon S3 image storage option
  • Personalisation - Overrides Habitat defaults per user: kms/miles, hidden categories
  • Moderation tools - User, post, comment moderation, block email addresses
  • Announcements - Scheduled announcements
  • Public moderation log - Keep moderator actions visible for 30 days

If you're interest in this at all, please give it a spin and let me know how you get on. I'll keep an eye here on Lemmy, but you can also post to the Habitat discussion board on GitHub.

you are viewing a single comment's thread
view the rest of the comments
[–] quick_snail@feddit.nl 7 points 1 day ago (1 children)

Does it support Activity Pub?

[–] carlnewton@feddit.uk 1 points 1 day ago (1 children)

Not activity pub specifically, but federation has always been in the plan.

[–] Gorgritch_umie_killa@aussie.zone 4 points 1 day ago (3 children)

How is it federation but not Activitypub specifically? I thought that was the only protocol that currently allows for federation. Are there others? Or other ways?

[–] carlnewton@feddit.uk 4 points 1 day ago (2 children)

To be clear, there is no functionality that federates Habitat instances yet. This work is still to be done. ActivityPub is a protocol for decentralised networks. Though I will not be using ActivityPub, I will build functionality that will allow for a decentralised network of Habitat instances communicating data to each other. This will be federated by definition, but it will not communicate with Lemmy/Mastodon or anything else that uses ActivityPub.

[–] Gorgritch_umie_killa@aussie.zone 3 points 1 day ago (1 children)

Oh, I see. Why have you made that choice? I'd understand to keep the subjects towards more community oriented interests, but then, i'm not sure why federation of other community habitats would have any advantages over being separate.

For example, I imagine East Sussex and Alsace-Lorraine wouldn't have a great degree of things to share between disparate instances like that.

Anyway, i've not had a chance to look at your instance yet, so maybe i'll understand it better when I duck over there for a sticky beak. All sounds very exciting though! Well done!

[–] carlnewton@feddit.uk 4 points 1 day ago (1 children)

Imagine this - you're signed up to your local instance in -- Perth is it? You go for a walk and find a beautiful old building, and want to know more about it. You open up your local Perth instance of Habitat, which you know about because you live in Perth and managed to find that instance, and click the Nearby feed, and the closest discussion to your location is about this very building. This functionality exists in Habitat right now.

Now imagine that you're on holiday to Oxford in the UK -- I can't imagine why you'd choose our clouds over your sun, but it might be something to do with the old buildings here. You see an interesting old building, and want to know more about it, and open up your Perth Habitat instance, click the nearby feed. Your Perth instance will identify the closest Habitat instance to your location -- it just so happens to have found one called Habitat:Oxford. Your Perth Habitat instance will show you results from the Oxford Habitat instance by proximity. This is why I want to federate instances, so that you don't even have to worry about which instances have the posts relevant to your location, it's all handled by the network.

[–] Gorgritch_umie_killa@aussie.zone 1 points 1 day ago (1 children)

Ah! Oh cool, but this would take geolocation. I predict that being a hard sell for lemmings.

But as I type that i realise/remember your post here is primarily an introduction for potential instance operators, not so much a user base. So the geolocation as an 'issue' is likely far less important (not forgetting a user can just turn it off anyway).

[–] mnemonicmonkeys@sh.itjust.works 1 points 22 hours ago (1 children)

I predict that being a hard sell for lemmings.

Eh, if it's an open-source application where you can review the code to confirm that the software isn't tracking you, then it's not an issue. Especially if you're running Graphene OS, Rethink DNS, or Exodus to either sandbox or monitor your traffic

[–] WhyJiffie@sh.itjust.works 1 points 22 hours ago (2 children)

Eh, if it's an open-source application where you can review the code to confirm that the software isn't tracking you, then it's not an issue.

you can't review what's running on the actual server, what did your local admin add to it.

[–] mnemonicmonkeys@sh.itjust.works 1 points 7 minutes ago

you can't review what's running on the actual server, what did your local admin add to it.

You could level that accusation at any software running on a remote server, including the Fediverse

[–] Unusable3151@lemmy.ml 1 points 20 hours ago (1 children)

ostensibly, there is no need to send your location anywhere, as everything could be set up to be done client-side where you get a registry of published instance locations and sort them by distance to your current location.

[–] pleksi@sopuli.xyz 1 points 19 hours ago (1 children)

One could simply infer the location history from the logs though.

[–] Unusable3151@lemmy.ml 1 points 14 hours ago

only if the data gets sent. it's doesn't have to be.

[–] mnemonicmonkeys@sh.itjust.works 1 points 22 hours ago* (last edited 9 minutes ago) (1 children)

Though I will not be using ActivityPub

If you don't mind my asking, what drove the decision to not base it on ActivityPub? On the surface that seems to be an easier starting point that building evetything out from scratch

[–] carlnewton@feddit.uk 2 points 19 hours ago

Activity Pub doesn't take advantage of the unique solution we have by knowing the user's location and the location of instances. In a way, it seems overkill for what we want. Additionally, I don't necessarily want other software communicating with Habitat. You never know, I might change my mind as I delve into it. I changed my mind on a great number of things as I came to develop them for phase 1. I accept that there are things about existing protocols that I don't fully understand.

[–] EncryptKeeper@lemmy.world 2 points 23 hours ago

Activitypub is not the only one, no.

I thought that was the only protocol that currently allows for federation. Are there others? Or other ways?

The Matrix and XMPP both support federation, though those are mainly for chat platforms