this post was submitted on 02 Apr 2026
106 points (99.1% liked)

Selfhosted

56957 readers
903 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
 

Like soup-to-nuts. I know I need to document what I'm doing and I've started several times, but then I never go back and make updates. I don't know if it's just the ADHD or if I'm just going about it or thinking about it in the wrong way.

So I'm curious about:

  • what you use for your documentation
  • how you organize it
  • what information you include
  • how you work documentation into your changes/tinkering flow

Edit: Dang, folks! You all have given me a lot to read through, think about, and explore. Thank you!

(page 2) 40 comments
sorted by: hot top controversial new old
[–] normonator@lemmy.ml 3 points 3 days ago (2 children)

Bookstack in a docker container. You can export pages with revision numbers and dates. I print out the emergency stuff and keep it in a binder. https://www.bookstackapp.com/ I've been using it at work for like a decade now. No apps or anything though, just a decent web interface.

[–] eodur@piefed.social 1 points 3 days ago

I've heard really good things about Outline too.

Great idea to print out the most important bits.

[–] ekky@sopuli.xyz 1 points 3 days ago

Oh damn!.. I've never crossed Bookstack in my searches, but from the previews it looks (actually) simple, clean, and powerful.

Now I know what the evening will be spent on!

what you use for your documentation

Hugo (markdown) files that i host on my internal server.

how you organize it

I use basic directory structure. Top level directories are like "dev", "home", "general". Self hosting is a dev/ subdir.

what information you include

Depends on how familiar i am with it and how often I'll be referencing it. Something i know well or access often will be more high level. Things like an annual process i have documented in more detail

how you work documentation into your changes/tinkering flow

My site has an "edit this page" feature which i use to open my IDE and make the change as I'm doing things. Sometimes I'll be lazy and just add in what i did this time and then let future me reconcile the differences 🙃

[–] AMillionMonkeys@lemmy.world 2 points 3 days ago

I use Obsidian with a folder for hardware and a folder for software, then an entry for each device or service. I've been pretty good about maintaining cross-links.
I kind of wish I used Docker Compose more, but I haven't run into a situation where it's been a problem yet.

[–] Strider@lemmy.world 2 points 3 days ago

Short: don't do anything manually, throw it into a ansible playbook. Save it somewhere.

[–] EncryptKeeper@lemmy.world 2 points 3 days ago* (last edited 3 days ago)

If you have a mix of different systems both on-prem and cloud, and tie them together in various ways using VPNs, mesh or otherwise, create a graph using something like Excalidraw to give yourself a refresher on how everything connects. You want machines, hostnames, IPs, ports, and a list of services. You don’t have to be fancy by creating visual representations of each service, just a bulleted list. You only really have to update this when adding or removing compute.

If you’re running services on lots of different nodes, a spreadsheet that just maps services to whatever URL you use access them, to whichever backend server is running them. This takes minimum effort and gets you 90% of the way there.

[–] heydo@lemmy.world 1 points 3 days ago

I was just introduced to NetBox and it's really intriguing. It does look complicated but once it is setup it seems to work very well at integrating data from a spreadsheet into it and then automatically documenting changes and such. It's open source as well.

https://github.com/netbox-community/netbox

[–] Teppa@lemmy.world 1 points 3 days ago

Gitlab has Draw.IO integration, as does Wiki.JS.

[–] grimer@lemmy.world 1 points 3 days ago

I don't have many machines but about 40 containers. I used docker compose. Then I've found Trillium Notes for the documenting part. I have the client on my mac that syncs to the trillium container on my server that way I can always have access if something happens and the server is down or I need it offline. One thing I love about it is that I've set it so all pages are read only by default. This makes it work for me more like a wiki and I don't accidentally overwrite something. The discipline to keep it updated?..... biggest challenge.

I keep everything I do as minimal as possible.

Everything is documented using either sh scripts or markdown style plain text files. If I need anything more than that, I'm over complicating things for my brain.

The upside to this approach is that it works anywhere because it's all just text files and it's very tiny in size. I am more interested in making low-power/low-spec things work so less is appropriate.

[–] bizdelnick@lemmy.ml 1 points 3 days ago (1 children)

It is hard, if even possible, to keep documentation up-to-date. Better use a configuration management system (salt, ansible etc.) for your servers. Yes, you need to learn how to use it. Yes, it will take a longer time to make changes in your configuration. But as a result you'll have a self-documented configuration-as-a-code that will allow you to scale your setup as you need. Reproducing something won't require reading your notes, remembering your actions etc.

[–] IratePirate@feddit.org 1 points 3 days ago* (last edited 3 days ago) (2 children)

But as a result you’ll have a self-documented configuration-as-a-code that will allow you to scale your setup as you need. Reproducing something won’t require reading your notes, remembering your actions etc.

Until you realise that

  • you don't really need to scale a homelab that much
  • if something breaks, you just want to quickly fix it manually because "doing the Ansible" is more of a pain
  • now idempotency and documentation-as-code is out of the window. ;)

(I'm being tongue-in-cheek here. I don't doubt this may work for you, but it takes much more discipline than I have.)

[–] bizdelnick@lemmy.ml 1 points 3 days ago* (last edited 3 days ago) (1 children)

you don’t really need to scale a homelab that much

Maybe. But you never know this beforehand.

if something breaks, you just want to quickly fix it manually because “doing the Ansible” is more of a pain

In most cases you just need to replay a playbook for quick fix. But I agree that the proper fix will likely take a longer time (while downtime is much shorter).

now idempotency and documentation-as-code is out of the window.

Let @BruisedMoose@piefed.social decide.

P. S. I don't like Ansible, other tools can be easier to use. But I don't want to recommend something concrete.

[–] IratePirate@feddit.org 1 points 3 days ago

I don't like Ansible, other tools can be easier to use. But I don't want to recommend something concrete.

Which ones do you like to work with? (Even though it's not a recommendation ;) I've only dabbled in Ansible so far and found it overkill for most of the things I do, but maybe one of yours isn't?

[–] magic_smoke@lemmy.blahaj.zone 1 points 3 days ago (1 children)

Yeah as someone who does both ansible is for repeatable multi-system commands like telling everything to update or configuring a local agent on every machine at once.

[–] IratePirate@feddit.org 1 points 3 days ago

That's what I use it for as well. Updating 7+ VMs is no fun. With Ansible? No worries.

[–] corsicanguppy@lemmy.ca 1 points 3 days ago (1 children)

Day job: oneScrote and fucking ansible

Night job: some wiki for the architecture, but just config management for the config detail : we run the docs and it's done. Thankfully not fucking ansible; because in any environment where there are options, it's not fucking ansible.

[–] BruisedMoose@piefed.social 1 points 3 days ago

Ha. I've been reading through thinking, "Yeah, maybe I should finally look into Ansible." And then I get here. :D

[–] def@aussie.zone 1 points 3 days ago* (last edited 3 days ago) (1 children)

err . i don't really. well I do a bit. the obvious one is config-as-documentation: docker compose mainly. I'm in the middle from migrating from storing them in portainer's internal store to using git (and dockhand), which should improve their role as documentation with the addition of vcs.

in addition I have a handful of markdown notes in my obsidian vault to track a few things. there's some general terminal stuff command references, which aren't strictly for the server. i have a list off all my hard drives, including their SN,PN,Partition UUID and label (this is their partition/volume label as well an actual physical label on them. It makes moving between operations on my host machine, omv VM and physical drive easy. its a maddening combination of using three or more command ouputs to map a drive between whatever info is available in proxmox, a vm or physically otherwise!

[–] BruisedMoose@piefed.social 1 points 3 days ago* (last edited 3 days ago)

| migrating from storing them in portainer’s internal store to using git (and dockhand)

This is exactly why I'm asking, actually! I've been working over the past couple of weeks to move everything that I had done under CasaOS to independent compose files in Dockhand. Yesterday I ran into a couple of things that must have been Casa-specific but I had no record of it and I'll be honest, my memory is garbage.

[–] eodur@piefed.social 1 points 3 days ago

GitOps with assorted readme files in the repo for various bits.

[–] esc@piefed.social 1 points 3 days ago

I write everything in text editor first, apply later.

  1. emacs + org-roam
  2. by using descriptive names for articles and tags
  3. everything at the start, trim it down later
[–] panda_abyss@lemmy.ca 1 points 3 days ago

I have compose and a justfile, that's enough documentation for any project, right??

[–] Decronym@lemmy.decronym.xyz 1 points 3 days ago* (last edited 3 hours ago)

Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

Fewer Letters More Letters
Git Popular version control system, primarily for code
IP Internet Protocol
SSO Single Sign-On
VPN Virtual Private Network
ZFS Solaris/Linux filesystem focusing on data integrity
k8s Kubernetes container management package

6 acronyms in this thread; the most compressed thread commented on today has 7 acronyms.

[Thread #207 for this comm, first seen 2nd Apr 2026, 12:40] [FAQ] [Full list] [Contact] [Source code]

[–] TrickDacy@lemmy.world 0 points 3 days ago

A great question. First of all, all of my services run with docker compose and use volumes for their config storage which get backed up regularly. Then I just use markdown files organized by having a separate file for each service. Basically anything I would need to reproduce my setup on a new machine is what I try to write down. All the docs and compose yaml files are versioned in git. I usually realize I left out info later on and add it as it occurs to me, typically if I have to set up the services on a new machine. This all applies to any software that needs more than a little config, not just apps hosted for the purpose of other machines using them. It's a very imperfect process, but it's a ton better than what I used to do which was think "eh I'll remember how it's setup". I rarely would remember all the key details.

load more comments
view more: ‹ prev next ›