this post was submitted on 31 Oct 2023
220 points (95.8% liked)

Selfhosted

39980 readers
432 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.

Resources:

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

Questions? DM the mods!

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 45 points 1 year ago (1 children)

They even have a term for this — local-first software — and point to apps like Obsidian as proof that it can work.

This touches on something that I've been struggling to put into words. I feel like some of the ideas that led to the separation of files and applications to manipulate them have been forgotten.

There's also a common misunderstanding that files only exist in blocks on physical devices. But files are more of an interface to data than an actual "thing". I want to present my files - wherever they may be - to all sorts of different applications which let me interact with them in different ways.

Only some self-hosted software grants us this portability.

[–] [email protected] 11 points 1 year ago* (last edited 1 year ago) (1 children)

I want to present my files - wherever they may be - to all sorts of different applications which let me interact with them in different ways.

Only some self-hosted software grants us this portability.

I'd say almost everything is already covered with Samba shares and docker bind mounts. With Samba shares the data is presented across network to my Kodi clients, the file browser on my phone, and the file browsers of all my computers. And with docker bind mounts those files are presented to any services that I want to run.

[–] [email protected] 13 points 1 year ago (2 children)

Devil’s advocate: what about the posts and comments I’ve made via Lemmy? They could be presented as files (like email). I could read, write and remove them. I could edit my comments with Microsoft Word or ed. I could run some machine learning processing on all my comments in a Docker container using just a bind mount like you mentioned. I could back them up to Backblaze B2 or a USB drive with the same tools.

But I can’t. They’re in a PostgreSQL database (which I can’t query), accessible via a HTTP API. I’ve actually written a Lemmy API client, then used that to make a read-only file system interface to Lemmy (https://pkg.go.dev/olowe.co/lemmy). Using that file system I've written an app to access Lemmy from a weird text editing environment I use (developed at least 30 years before Lemmy was even written!): https://lemmy.sdf.org/post/1035382

More ideas if you're interested at https://upspin.io

[–] [email protected] 1 points 1 year ago

That makes sense. I think the reason why they're not represented as files is pretty simple. Data integrity. If you want to get the comments you just query the table and as long as the DB schema is what you expect then it'll work just fine and you don't have to validate that the data hasn't been corrupted (you don't have to check that a column exists for example). But with files, every single file you need to parse and validate because another application could have screwed them up. It's certainly possible to build this, it might be slower but computers are pretty fast these days, but it would require more work to develop to solve the problem that the database solves for you.