Greetings Lemmings,

I realize that self-hosting for many is just a hobby. Something they do for fun. And the topic of today is usually a “not-so-fun” part of the IT industry.

Jump Scare Warning

Documentation

I have for so long just let my lab grow organically. And months down the road an issue pops up with a service, and I have no idea how I set something up, and may not have documented it. Whether that be comments inside of configuration files, or via other means.

I have gotten marginally better at documenting within the config files or code that I am writing. However, I don’t want just that as an option. So I spun myself up a Bookstack container.

I am slowly going through and creating what would amount to a full blown wiki for my setup. Doubly I can use this as part of my resume.

So I ask of you; what ways do you prefer to document? How do you keep yourself honest, and actually stick to it.

Edit: I created bash scripts that are run by a systemd service and timer. At least for my docker box.

  • emagin@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    29 days ago

    Obsidian - everthing goes into OBS (PKB) Claude MCP - I have claude interact with my .md files

    • Everytime Claude guides me thru an update or debug, I have it update the doc with a summary and details, including code snippets
    • Larger .yml files, etc. live in editable files attached to an OBS note

    Documentation is essential, not because it’s anal, but because it’s the framework to hand off to your favorite LLM (local or not) Put in your Goals, desired outcomes, etc. and LLM picks it all up prior to starting a session.

    There are other lighter PKBs than Obsidian, I just think it’s the standard. But anything will do Make sure it allows for [[Note-about-docker]] linking across notes My notes are crazy interlinked, each stack, service, UFW detail all links across the larger homlab ecosystem. No note sits alone - they all reference each other constantly The AIs love that stuff! Makes your life easier

  • curbstickle@anarchist.nexusM
    link
    fedilink
    English
    arrow-up
    0
    arrow-down
    1
    ·
    30 days ago

    Git.

    I write everything in markdown, and sync to my personal repo (backed up locally and as part of an encrypted backup elsewhere), which also goes to my personal codeberg in a private repo.

    Passwords are maintained in a dedicated keepass db, also backed up elsewhere in the same fashion.

    Config files themselves are always stored on my NAS in a symlinked or mapped directory, but primarily mapped since its (almost) all containers. These also get backed up the same way.

    So as long as I structure my NAS/mapping the same way, everything else works the same way, no matter where its hosted. I do all my addressing by dhcp reservation so IP config is all in one place, and I have a local cert so everything is referenced by hostname.

    Makes this all pretty easy to document imo, though the only one who will ever read it is me. I’m also in the middle of changing up auth, so I’ll get to redo a good chunk of it, but I really only need to change configs.

    … I’m lazy. I only like doing something once.