this post was submitted on 28 Jul 2023
125 points (95.0% liked)

Selfhosted

39919 readers
230 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
 

My home lab has a mild amount of complexity and I'd like practice some good habits about documenting it. Stuff like, what each system does, the OS, any notable software installed and, most importantly, any documentation around configuration or troubleshooting.

i.e. I have an internal SMTP relay that uses a letsencrypt SSL cert that I need to use the DNS challenge to renew. I've got the steps around that sitting in a Google Doc. I've got a couple more google docs like that.

I don't want to get super complicated but I'd like something a bit more structured than a folder full of google docs. I'd also like to pull it in-house.

Thanks

Edit: I appreciate all the feedback I've gotten on this post so far. There have been a lot of tools suggested and some great discussion about methods. This will probably be my weekend now.

top 50 comments
sorted by: hot top controversial new old
[–] empireOfLove@lemmy.one 48 points 1 year ago (3 children)

Well, whatever you end up using for documentation, print it out and actively maintain an up to date paper hard copy in a 3-ring binder somewhere. That way when all your shit falls over and you have a nonfunctional LAN you can still remember how everything was set up. Don't ask me how I know.....

[–] IsoKiero@sopuli.xyz 7 points 1 year ago

Documentation is not worth much if you can't access it when needed. So yes, either print it out or store it somewhere else what you can access even if your own hardware is completely dead.

[–] geekworking@lemmy.world 7 points 1 year ago

+1 for hard copy. Hang/tape right on or next to the rack.

load more comments (1 replies)
[–] stardustsystem@lemmy.world 21 points 1 year ago (4 children)

I've been using Obsidian for a lot of other purposes for a couple years now, so I was comfortable adding my documentation into my existing vault there. I made a couple templates that I fill out for any hardware/software/networking equipment.

Since the app's selling point is storing all your notes in plain text I wouldn't put anything security-related in there without some encrypted container. I use KeePass for that part, and keep the file it generates in the same folder as Obsidian so I can link to it within notes. Click the link in the note, KeePass opens the vault and asks for its password.

[–] rickdgray@lemmy.world 3 points 1 year ago (4 children)

I use obsidian too. It supports mermaid too so you can make your network diagram with it.

load more comments (4 replies)
load more comments (3 replies)
[–] tabularasa@lemmy.world 18 points 1 year ago (1 children)
load more comments (1 replies)
[–] floofloof@lemmy.ca 12 points 1 year ago* (last edited 1 year ago) (3 children)

Mine is, er, self-documenting, and my partner has instructions, in the event that I die, to plug the wifi router into the modem and unplug all the other crap. The router has a sticker saying ROUTER and the modem has a sticker saying MODEM.

[–] johntash@eviltoast.org 5 points 1 year ago (1 children)

Self documenting, eh? I may be familiar with the same process.

[–] floofloof@lemmy.ca 5 points 1 year ago (1 children)

You just follow all the wires and read all the config files. Easy!

load more comments (1 replies)
load more comments (2 replies)
[–] morethanevil@lmy.mymte.de 10 points 1 year ago (1 children)

I use WikiJS for documentation. Simple, powerful and has a lot of features

[–] mholiv@lemmy.world 7 points 1 year ago (2 children)

+1 for WikiJS. As a bonus you can have WikiJS back itself up to plain text MarkDown files, so if things explode you can always just read those from wherever.

Another great feature I use is to have WikiJS back itself up into git. If I am going to a place with no internet access I can do a quick git pull and have a complete copy of my wiki including files on my laptop.

load more comments (2 replies)
[–] greenhan3le@lemmy.world 9 points 1 year ago (1 children)

Joplin synced to webdav/nexcloud.

load more comments (1 replies)
[–] atzanteol@sh.itjust.works 8 points 1 year ago* (last edited 1 year ago) (1 children)

Joplin has been my note-taking app of choice. Free (OSS); no accounts needed; simple; local; synchronizes through my Nextcloud instance to Linux, Windows and Android; markdown-based, etc. It's been a good workflow for me and makes taking and searching through notes quick and pretty painless.

I document my setup, backup and restoration procedures (done rarely enough that it's good to have it written down), etc. with it.

load more comments (1 replies)
[–] veloxy@lemmy.world 8 points 1 year ago (5 children)

For me, making a graph is the best documentation, everything else is in config files.

If I really do need to takes notes, It's currently in notion but I'm hoping soon I'll be able to self-host AnyType (https://github.com/orgs/anyproto/discussions/17)

load more comments (5 replies)
[–] RaoulDook@lemmy.world 7 points 1 year ago (5 children)

Almost nothing haha. Some half-ass notes saved here and there, in a disorganized manner.

My stuff works, but I don't recommend my approach.

This is what I'm trying to get away from.

[–] SmashingSquid@notyour.rodeo 5 points 1 year ago

Same, my stuff continuing to work relies on thoughts and prayers.

[–] Deebster@lemmyrs.org 3 points 1 year ago

I was going to say my notes are in Joplin, but my more honest answer is basically yours.

load more comments (2 replies)
[–] vegetaaaaaaa@lemmy.world 7 points 1 year ago* (last edited 1 year ago) (4 children)

ansible, self-documenting. My playbook.yml has a list of roles attached to each host, each host's host_vars file has details on service configuration (domains, etc). It looks like this: https://pastebin.com/6b2Lb0Mg

Additionally this role generates a markdown summary of the whole setup and inserts it into my infra's README.md.

Manually generated diagrams, odd manual maintenance procedures and other semi-related stuff get their own sections in the README (you can check the template here) or linked markdown files. Ongoing problems/research goes into the infra gitea project's issues.

load more comments (4 replies)
[–] poVoq@slrpnk.net 5 points 1 year ago

Mix of a Bookstack wiki and various git repos on my self-hosted Forgejo.

[–] Policeshootout@lemmy.ca 5 points 1 year ago (2 children)

What is it that you all are documenting? I'm just getting started and have so far just set up docker and several containers (Plex, the *arrs, qbittorrent, gluetun) and not sure if I should be writing something down?

[–] HolidayGreed@sh.itjust.works 6 points 1 year ago

I document my proxmox configuration, and again for each service running on it; ports, fqdn, let’s encrypt etc. Any problems or deviations from the standard installation and how I resolved it. How I mounted my media drive and and made it accessible in Plex and Jellyfin. Any configuration that I had to search for the solution, including the actual steps and not just links that might be gone in the future. The more services you accumulate the harder it is to start the documentation, so it’s a good idea to start sooner than later.

load more comments (1 replies)
[–] beppi@sh.itjust.works 5 points 1 year ago* (last edited 1 year ago)
[–] JoeKrogan@lemmy.world 5 points 1 year ago* (last edited 1 year ago) (1 children)

I use raneto, it is a small lightweight nodejs wiki. The files are stored as markdown.

That sounds useful.

[–] Szwendacz@kbin.maciej.cloud 5 points 1 year ago (1 children)

My config files are my documentation, but what is not suitable to be written in config files I write in selfhosted BookStack

load more comments (1 replies)
[–] brakenium@lemm.ee 5 points 1 year ago

I run wiki.js for documentation for my home lab, but also things like the custom rom setup for my phone. However it's hard to keep it up to date as I forget it exists. I mostly use it to document setting up windows server core with different roles as I don't need to do that often, but most tutorials on the web are SEO optimised with low quality

[–] johntash@eviltoast.org 5 points 1 year ago

I'm not very good at deciding on where to document things, so I have a mix of BookStack, Dokuwiki, and Obsidian currently.

I really like Dokuwiki but I like the UI/UX of BookStack better so I'm working on a plugin to sync bookstack and obsidian. I'll probably get rid of Dokuwiki after that.

The main reason for syncing with obsidian is that I want documentation that isn't stored on the thing it's about, in case my servers completely die.

In another thread, someone reminded me that TiddlyWiki still exists, it's also a pretty cool little tool.

[–] curve@lemmy.world 4 points 1 year ago* (last edited 1 year ago) (1 children)

I went with dokuwiki forever ago. Super stupid simple single container to run (no DB) and writes down to plain text files. I sync it with git every now and then.

My only gripe about it is the dokuwiki syntax and not using normal markdown. I do now have a plugin for that but it's still just ok. But at this point I might be too engrossed in it to ever really switch. But other than that it works well, is lightweight, has other plugins (email, mermaid flow charts, etc. etc.) and really is pretty maintenance-free.

If there is some better one that is accessible via a browser and doesn't require a DB then I'd be interested.

load more comments (1 replies)
[–] SirMaple_@lemmy.world 4 points 1 year ago

I use draw.io for diagrams. Netbox to keep track of devices, IP addresses, and cables. MediaWiki for how to articles. Both Netbox and MediaWiki live on a VM both at home and offsite and they sync nightly.

[–] Pokite@lemmy.world 4 points 1 year ago

When I had home lab I used to use racktables - https://www.racktables.org/

but I'm not sure if this is what you're looking for.

[–] NewDataEngineer@lemmy.world 4 points 1 year ago (1 children)

I use trillium that gets backed up every hour to my pc.

I also do a lot of python development so my project ideas get written down there too.

I'm not a fan of code is documentation because what happens when you step away for a month and you need to figure something out? In trillium I have a search bar. What do you have in the code?

load more comments (1 replies)
[–] LunchEnjoyer@lemmy.world 4 points 1 year ago

I use the wonderful https://draw.io to sketch up my homelab and which device hosting what service. More fun when it's vidualized the way I want it 😊

[–] tuhriel@infosec.pub 4 points 1 year ago

Ibrun my own gitlab instance where i have a repository with all my configs, scripts etc.
As well as a wiki that contains the admin guide with (hopefully) all the relevant infos in form of text and PlantUML graphs.

The nice thing is.. You can just 'code' the diagrams and use a PlantUML instance to render the graphs live

[–] MystikIncarnate@lemmy.ca 4 points 1 year ago

I'm using netbox, and I'm in the process of info dumping my brain to a media wiki. I may add ansible into the mix in the near future.

My lab is a bit large and complex and I'm currently in the process of trying to train help to run it, from the pool of people that make use of it. They know how the front end works, a few of them need to learn the back end.

[–] rentar42@kbin.social 3 points 1 year ago (1 children)

I know that I would keep forgetting to update the docs, so my documentation are the ansible playbooks and docker-compose.yaml files that I use to set it all up.

That leaves anything that has to be done in some Ui undocumented, so I try to keep that to a minimum, which isn't always easy (I'm looking at you authentik!).

load more comments (1 replies)
[–] antony@lemmy.ca 3 points 1 year ago

I use Ansible, Docker, and Emacs OrgMode files committed to Git. Diagrams are a mix of Miro and Graphviz. There's also a few markdowns in there too. Joplin is used for rough notes only.

[–] Mugmoor@lemmy.dbzer0.com 3 points 1 year ago

I use my gitea instance to backup my compose and config files. I've also enabled the Wiki on it to use for documentation.

[–] jackoneill@lemmy.world 3 points 1 year ago (1 children)

I made myself a wiki in my helpdesk system - I use osticket to send me various email alerts to so I can track issues I need to fix, and they have a little wiki option.

Then one day that host was down and I needed some info and I was very irritated. Now all of those notes are in my Apple notes backed up in iCloud and searchable on whatever I’ve got handy so if I need info I can get the info

I played with GLPI just long enough to realize that was way more than I wanted or needed. I'd like to track changes but I don't want to run a full ticketing/chg mgmt system to do it.

[–] Father_Redbeard@lemmy.ml 3 points 1 year ago (2 children)

Obsidian. I love that it uses simple markdown files so it's platform agnostic. Documenting my setup has been a lifesaver.

load more comments (2 replies)
[–] shertson@lemmy.world 3 points 1 year ago (1 children)

In all honesty, it is a hodge podge. Some are in my dokuwiki, some are plain text, some are markdown, some in my phone, lots on scraps of paper. Just about the time I get it all in one place I scrap my systems and start over.

load more comments (1 replies)
[–] ChrislyBear@lemmy.world 3 points 1 year ago (2 children)

I'm defining my service containers via GitLab and I deploy them via tagged and dockerized GitLab Runners.

If something fails, I change the runner tags for a service and it will be deployed on a different machine.

Incl case of a critical failiure, I just need to setup a Debian, install docker, load and run the GL runner image, maybe change some pipelines and rerun the deployment jobs.

Some things aren't documented well, yet. Like VPN config...

Ah yes, my router is able to access GitLab as well and pull the list of static routes etc. from it.

load more comments (2 replies)
[–] Omripresent@leddit.social 3 points 1 year ago (2 children)

I use a combination of netbox for the physical/logical network and server connectivity, and outline for text documentation of the different components.

load more comments (2 replies)
[–] lal309@lemmy.world 3 points 1 year ago* (last edited 1 year ago)

This seems pretty vanilla based on what other have suggested but I use regular markdown files in a git repo.

For data flows or diagrams, mermaidJS syntax within the markdown file works wonders and when I need to link one document to another or one section to another, you can use the normal link syntax of markdown.

Easy to use, hardly any setup and easily accessible.

[–] wildbus8979@sh.itjust.works 3 points 1 year ago (1 children)

Git based static site generator, like gohugo or Jekyll.

load more comments (1 replies)
[–] btobolaski@threads.ruin.io 3 points 1 year ago

I use logseq to record any manual steps as well as any administrative actions that I take on a service. That being said, all of my homelan infrastructure is codified and stored in git in various ways so, it can be recreated as needed. There are very few manual steps in reconfiguring any of my services.

load more comments
view more: next ›