113
submitted 4 months ago* (last edited 4 months ago) by BruisedMoose@piefed.social to c/selfhosted@lemmy.world

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!

top 50 comments
sorted by: hot top new old
[-] MajinBlayze@lemmy.world 140 points 4 months ago

That's the neat part, I don't.

[-] undefinedTruth@lemmy.zip 45 points 4 months ago

"I don't need to, I have it stored all in my head."

Famous last words.

[-] MajinBlayze@lemmy.world 14 points 4 months ago

It's not like anyone needs to support it when I'm gone.

[-] frongt@lemmy.zip 6 points 4 months ago

"I can remember that" is my cue to write it down, because I won't.

load more comments (3 replies)
[-] Buck@jlai.lu 13 points 4 months ago

The theory is I use Docmost. The reality is I don’t, and I hope my backups are solid.

[-] MajinBlayze@lemmy.world 15 points 4 months ago* (last edited 4 months ago)

I have an obsidian document where I write changes I want to do in the future that I never look at; does that count?

[-] foggy@lemmy.world 5 points 4 months ago

I just found my todo list and half of it is irrelevant and half of it is done.

I even had a work todo list for my old job lol.

[-] Buck@jlai.lu 3 points 4 months ago

Ouh! I have a checklist of things I need to add/update too, that I never check. Maybe we could mutualize! ;)

[-] avidamoeba@lemmy.ca 65 points 4 months ago* (last edited 4 months ago)
[-] Evil_Shrubbery 14 points 4 months ago

I just think I do that, but absolutely don't.

[-] Agent641@lemmy.world 8 points 4 months ago

write-only memory.

no read, only write!

[-] avidamoeba@lemmy.ca 5 points 4 months ago

Yeah I also use config-as-code along with wiki but I used to remember things 10 years ago when the setup was simpler and the brain was newer. 😅

[-] Scrath@lemmy.dbzer0.com 3 points 4 months ago

I read the title and this was literally the first thing that popped in my head

load more comments (1 replies)
[-] atzanteol@sh.itjust.works 50 points 4 months ago

The fun thing about infrastructure as code is that the terraform, ansible and k8s manifests are documentation.

I only really need to document some bootstrap things in case of emergency and maybe some "architectural" things. I use joplin for that (and many other things).

[-] AliasVortex@lemmy.world 3 points 4 months ago

That's the direction I'm moving my lab in. Plus a bit of supplemental markdown to keep track of which guides I'm referencing (and which parts can be ignored because I baked it into the terrafom). It's really nice to know that as long as I tweak the terraform for changes, I don't have to worry about forgetting what I changed.

[-] BruisedMoose@piefed.social 2 points 4 months ago

Without really knowing much about it, I just always figured it was overkill for me. Plus I don't know that I'd even consider myself much more of a beginner with Docker. But you all are making me consider looking into it.

load more comments (1 replies)
load more comments (2 replies)
[-] synapse1278@lemmy.world 31 points 4 months ago
  • what you use for your documentation

Markdown files

  • how you organize it

What ?

  • what information you include

The commands that worked and the stuff that didn't work and the links to the source of information

  • how you work documentation into your changes

I write as I go. I keep it as part of a git repository when relevant

[-] D_Air1@lemmy.ml 2 points 4 months ago

Had to scroll down this far just to get to markdown files. Although I write with a bit of a delay. Once I get something working. Then I document what worked and what didn't. Alternative methods and issues I had with the alternatives.

[-] shrek_is_love@lemmy.ml 14 points 4 months ago

All my computers (including servers) share the same NixOS Flake. So my documentation consists of:

  1. The Nix code itself
  2. The commit messages for each change I make
  3. Inline comments in the Nix code
  4. A few readme.md files to explain the contents of certain directories
load more comments (5 replies)
[-] uenticx@lemmy.world 13 points 4 months ago* (last edited 4 months ago)
[-] Goodlucksil@lemmy.dbzer0.com 4 points 4 months ago

README_I_AAM_VERY_IMPORTANT.md

[-] Shimitar@downonthestreet.eu 12 points 4 months ago

Dokuwiki

https://wiki.gardiol.org/

For me for future memory and for others who might need it

[-] irmadlad@lemmy.world 6 points 4 months ago

https://wiki.gardiol.org/

BTW, this gent's wiki is worth a bookmark. Stumbled on it before I knew the originator.

[-] Shimitar@downonthestreet.eu 3 points 4 months ago

Thanks you, it means a lot. Just to be clear for whomever didn't go there: there is zero monetization, no ads, no profiling.

load more comments (4 replies)
[-] Agent641@lemmy.world 10 points 4 months ago

Why do you have to be like that? Drop the innocent questions and just come right out and call me a piece of shit directly.

[-] BruisedMoose@piefed.social 2 points 4 months ago

Trust me, this is all about me being incompetent.

[-] irmadlad@lemmy.world 10 points 4 months ago
  • I use Obsidian
  • Usually, what I do is write the documentation as I am engaged with the project at hand. Then clean everything up, and transfer to Obsidian.
  • I include everything. I don't leave anything for my mind to wonder about. If I didn't write it down, it didn't happen.
  • Date any addenda or changes (4-2-26: Firewall rules review)
[-] death916@piefed.death916.xyz 10 points 4 months ago

I used to try and do it all in obsidian but I'd forget a lot. Now I use nix and it's all done for me basically

[-] tobz619@lemmy.world 9 points 4 months ago

NixOS because it's declarative kind of does it all for me.

The .nix files serve as their own documentation and if I need to do anything outside them I add a comment to the .nix file.

[-] northernlights@lemmy.today 8 points 4 months ago* (last edited 4 months ago)

draw.io in my nextcloud

network diagram on nextcloud

And leantime to keep track of what I want to do with notes and such

leantime kanban screenshot

And a mess of notes in Joplin.

[-] lightnsfw@reddthat.com 8 points 4 months ago

When I set something up I write all the steps I'm doing in obsidian as I do it. The pages get tagged so they're searchable in the future.

[-] lka1988@lemmy.dbzer0.com 8 points 4 months ago
[-] Scrath@lemmy.dbzer0.com 6 points 4 months ago

I have a bare minimum of documentation as markdown files which I take care to keep in an accessible lovation, aka not on my server.

If my server does ever go down, I might really want to access the (admittedly limited) documentation for it

[-] Nibodhika@lemmy.world 6 points 4 months ago

The moment you think you might possibly need documentation is the moment you should seriously consider using Ansible or similar to orchestra things. Sure, it's annoying for a single server, but it is the best form of documentation there is.

[-] otacon239@lemmy.world 5 points 4 months ago

At work, since I’m the sole IT, I’ve been putting everything into MkDocs and it’s been working out great for the team. Only complaint is that I can’t seem to figure out how to update anything without just relaunching the Docker container every time. They mention that you can live reload, but not how.

[-] mrh@mander.xyz 5 points 4 months ago
[-] Trincapinones@lemmy.dbzer0.com 5 points 4 months ago

I'm just rewriting everything in Ansible and I think is worth the effort, it's self-documented and as an added bonus I won't have to keep backups of the whole VMs, just the ZFS pool with the data/databases.

[-] communism@lemmy.ml 4 points 4 months ago* (last edited 4 months ago)

Notesnook notebook with whatever info I need to be able to administrate the system. e.g. what different ports are used for and why the firewall policies are what they are, sometimes write-ups after a troubleshooting session, etc.

The Notesnook instance is self-hosted too, but if the server goes down, the notebook will still be available locally.

[-] DetachablePianist@lemmy.ml 4 points 4 months ago

I run Adguard Home containers (the primary auto-syncs to the secondary) and use redirect filters to assign hostnames to each of my containers. I have a "services" folder of bookmarks for each container host so I don't have to remember each service's port number. I use KeePassXC to track all my passwords and certificates so authentication is a breeze (someday I'll get around to setting up an SSO solution). I also keep a .txt file with my basic network info that doesn't always translate well to dns hostname redirects in adguard. I occassionally remember to update my hosts listed in the file. My individual config files aren't backed up beyond my automated container backups, but so far none of my services have been that complicated I couldn't just rebuild from scratch.

It's not perfect, but combined with my automated backups I have barely enough to rebuild if/when my hardware fails.

[-] foster@lemmy.hangdaan.com 4 points 4 months ago

Use declarative systems and software, where the configurations files themselves are the documentation. For example, I use Guix and Podman. The entire OS is described in a Scheme file and all the services are described in a YAML file. I just need those two files to get an overview of the entire setup.

[-] VexLogic@feddit.online 3 points 4 months ago

I'm actually in the middle of rebuilding my entire setup right now and one of my major goals is to actually document my processes this time.

I use Obsidian which is a Markdown editor and I have a couple plugins alongside that for QoL stuff and extra features.

I document processes, problems and fixes I encounter, list of active services alongside where/how to access them, and plans for future additions/changes.

As far as working documentation into your flow, realistically that is just a matter of discipline. It is explicitly up to you to stay on top of documentation.

Hope that helps, and good luck with your endeavor! 😁

load more comments (1 replies)
[-] hamsda@feddit.org 3 points 4 months ago

It depends on what it is. I do not have a singular documentation-platform or wiki for those things. I'm more of the keep the docs where the code is guy. I also try to keep complexity to a minimum.

All my linux server setups are done with ansible. ansible itself is pretty self-documenting, as you more or less declare the desired outcome in YAML form and ansible does the rest. This way, I do not need to remember it, but it's easier to understand when looking it up again.

Most of my projects have a git repository, so most of what I need to know or do is documented

  • in a README.md
  • as pipeline-instructions inside .gitlab-ci.yml

This way, I was able to reduce complexity and unify my homelab projects.

My current homelab-state is:

  • most projects are now docker-based
  • most projects have a GitLab CI for automated updating to newer versions
  • the CI itself is a project and all my CI-docker-based deploys use this unified pipeline-project
  • most projects can be tested locally before rolling out new versions to my VMs
  • some projects have a production and a staging server to test
  • those which cannot be dockerized or turned into a CI are tools and don't need that (e.g. ansible playbooks or my GitLab CI)

On what to include, I always try to think: Will I still be able to understand this without documentation if I forget about the project for 6 months and need to make a change then? If you can't be sure, put it in writing.

If it's just a small thing regarding not the project itself or the functionality or setup itself but rather something like I had to use this strange code-block here because of XXX, I'll just put a comment next to the code-line or code-block in question. These comments mostly also include a link to a bug-report if I found one, so i can later check and see if it's been fixed already.

[-] magic_smoke@lemmy.blahaj.zone 3 points 4 months ago

I'm surprised no one else has answered mediawiki. Love my mediawiki instance.

[-] normonator@lemmy.ml 3 points 4 months ago

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.

load more comments (2 replies)
[-] dogs0n@sh.itjust.works 3 points 4 months ago

I just create a README.md file wherever I setup services with docker compose which keeps top level docs so I know how and why certain things work.

Other than that, if comments are supported inside configuration files, also document stuff in there too.

That's been good enough for me.

[-] Mobile@leminal.space 3 points 4 months ago

Man I'm as basic as it comes. I have a .txt file that I update with today's date and write what I'm working on. I try to write as much as needed on what I'm working on. I write commands down and save links to reading material.

It's not the best but it's better than nothing.

[-] Strider@lemmy.world 2 points 4 months ago

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

[-] def@aussie.zone 2 points 4 months ago* (last edited 4 months ago)

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!

load more comments (1 replies)
[-] AMillionMonkeys@lemmy.world 2 points 4 months 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.

load more comments
view more: next ›
this post was submitted on 02 Apr 2026
113 points (99.1% liked)

Selfhosted

61265 readers
396 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:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. 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.

  8. 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:

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

Questions? DM the mods!

founded 3 years ago
MODERATORS