Selfhosted
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:
-
Be civil.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.
-
AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
view the rest of the comments
Only in the most reductionist sense would this be true. In practice, a relational database (ie has a schema and querying language) is no replacement for a hierarchical filesystem, and vice versa.
A filesystem stores binary blobs of data, and its up to each file format to define the semantics of the data contained. A database is a data structure coupled with accessors to present and cross-reference structured data. Trying to do a LEFT-JOIN on three binary files is a category error. And storing a PNG in a MariaDB table would be a sort of malpractice.
A closer comparison would be an SQL database versus a data serialization format like YAML. Both have structure and have data that can be acted upon in specific ways. Arithmetic can be performed on numeric values, and strings can be concatenated together. But neither will let you concatenate numeric values, such as 2 + 2 = "22". You need a programming language like PHP to perform such shenanigans.
In the context of serving web content, the filesystem is the domain of the OS, meaning it has been honed by decades of experience to make it as performant as possible, built into the kernel to utilizing whatever caching tricks that make sense, and this is available irrespective of the specific userspace stack (eg LAMP) that is running. However, no mainline OS has a relational database built into the kernel and is available for a web application to use. Database engineers go through great pains to optimize a system to run as a database server.
Phrased another way, there are no mainline OS's that omit the filesystem. So removing the need for a relational database is removing an attack surface, removing a dependency, removing another thing that can break. The point of a database is to look up pieces of data. But if a web server can just serve up a whole HTML file that includes all the data needed, then the database can be omitted and performance will be higher as a result.
Can a filesystem be used in lieu of a database? Sure but there are many things which can be done but shouldn't in all normal circumstances. That is the crux of engineering: to select the right tool for the job.
Is this AI text? If this is AI text: Nevermind. If no: I guess we're not really on the same page. I didn't say relational database. I mean it's obviously not. It's a document-oriented one. Which is exactly the kind of database you need when processing ...well... documents. If you do additional web application mumbo jumbo, you might need a relational database. But this wasn't really about any of this. We were talking of how expensive document retrievals are...
This is not AI text and you're the one who's departed from the OP's request:
The definition of a wiki is unambiguous:
The entire context of OP's post is web, ie the Internet. We are not taking about physical book libraries. We aren't discussing microfiche. The only relevant database type germane to OP is a relational database, as you readily noted:
I'm sorry. For some reason we're completely talking past each other... Your harddisk/ssd/usb-stick is a document based database afaik. You store data in form of files/documents on your HDD. It's a bit like a library, yes. Those documents are organzed a certain way. In folders... maybe on shelves or whatever the digital equivalent is...
The important parts of a wiki (the articles with the interesting information in them) are organized exactly the same way. That's why DokuWiki manages to pull it off without a relational database. It really doesn't matter for something like an encyclopedia or knowledge database. Can be articles in a books sitting on shelves in some building. Or digital files on a server, organized by a very similar hierarchy / topics. ...And because that's a subset of what a relational database can do, you can use them as well! (Edit: Not sure if my terminology is 100% correct... we also have the word: hierarchical databases? could also be what I mean.)
...Sorry for the AI confusion on my side...
What makes you think it's AI text?
I'm not convinced it is, that's why I'm asking. Doesn't really sound like it. Though I think it misses the point we were talking about, and is kinda verbose while talking about not really related points... Which is a telltale sign for some chatbots. I can't tell. Could be someone talking the way I sometimes do, or an AI.