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.

  • @[email protected]
    link
    fedilink
    English
    511 year ago

    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…

    • @geekworking
      link
      English
      91 year ago

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

    • @[email protected]
      link
      fedilink
      English
      81 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.

    • Shertson
      link
      English
      11 year ago

      Oh God, so much this!

    • *dust.sys
      link
      English
      -11 year ago

      deleted by creator

  • *dust.sys
    link
    English
    221 year ago

    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
      link
      English
      51 year ago

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

        • Deebster
          link
          fedilink
          English
          3
          edit-2
          1 year ago

          I love Mermaid, although I don’t think you can currently do network diagrams. I’ve seen Kroki recommended here for doing that, which supports Mermaid plus many similar markup-based diagrammers.

          [Edit: added link and more info]

          • @[email protected]
            link
            fedilink
            English
            21 year ago

            I would not consider Mermaid complete enough for network diagramming. The very basics are possible, but try to describe anything more complicated throws off the placement and makes the pathing whacky.

            Straight flow charts are the closest you can get to a network diagram, so if you try to draw a link that travels back up the chart, it breaks mermaid’s brain trying to figure out the order of decision points (network devices).

            The allure of text based diagrams is so tantalizing - but if you need them to be functional, it’s not going to happen

            There’s an issue tracking the need a new diagram type to handle it.

          • Shertson
            link
            English
            21 year ago

            This is the first I’ve heard of Kroki. A quick glance at their site and wow! So many options for markup. I’ll be trying this out for sure

      • *dust.sys
        link
        English
        81 year ago

        Sure.

        I left everything in, so no doubt there’s stuff in there specific to my vault you won’t need like metadata - adjust these to your needs or use them as a starting point for something new. There’s no network device template, I usually use the hardware one and just delete the irrelevant bits.

    • slazer2au
      link
      English
      21 year ago

      The real enterprise solution.

  • @[email protected]
    link
    fedilink
    English
    15
    edit-2
    1 year ago

    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.

    • @limit
      link
      English
      21 year ago

      As I move to more self hosting, it’s becoming more and more important to create a “what to do if I die” procedure for my wife (or even children) to follow. I mean it’s not big deal if the plex server goes down and doesn’t come back up, I’m thinking more along the lines of all of our photos, important documents, password manager, those type of things. I have 3 - 2 - 1 backups for the important stuff and have tested them, but that means nothing to my wife if I wasn’t around to get that stuff back if something happened… I wonder some days if I should document it all and put a print out with a step by step guide on how to get everything back that a semi tech savvy person could follow.

      • @[email protected]
        link
        fedilink
        English
        2
        edit-2
        1 year ago

        Yes, I really need to do this too. It’s a fairly daunting task because my significant other is not at all comfortable with even slightly complicated operations on a computer. I need to figure out a way to make a really easily accessible backup of everything.

    • @mholiv
      link
      English
      71 year ago

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

  • @veloxy
    link
    English
    12
    edit-2
    1 year ago

    deleted by creator

      • @supersheep
        link
        English
        21 year ago

        It is in the diagram I think: “Excalidraw”

        Also never heard of it and always nice to find new FOSS.

        • @veloxy
          link
          English
          2
          edit-2
          1 year ago

          deleted by creator

    • Szwendacz
      link
      fedilink
      11 year ago

      I think I need to do something similar with my cloud. It seem good both for organizing my cloud and for plain visual organizing training.

  • @RaoulDook
    link
    English
    91 year ago

    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.

    • Deebster
      link
      fedilink
      English
      31 year ago

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

    • @SheeEttin
      link
      English
      21 year ago

      Same, but I have no plan to change. My setup isn’t very complex so there’s not much to track. Most of it is just one docker compose file. It would just be one more thing to maintain without much benefit.

  • @greenhan3le
    link
    English
    91 year ago

    Joplin synced to webdav/nexcloud.

  • @[email protected]
    link
    fedilink
    English
    8
    edit-2
    1 year ago

    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.

    • @[email protected]
      link
      fedilink
      English
      21 year ago

      +1 for Joplin. I have a different setup since I don’t use Nextcloud: Run Joplin server in a docker container and back up the volumes mapped to it (as well as those of other containers) with rsync.

  • @vegetaaaaaaa
    link
    English
    8
    edit-2
    1 year ago

    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.

    • xcjs
      link
      fedilink
      English
      3
      edit-2
      1 year ago

      I was going to recommend Ansible as well - documentation as code can never be out of date if you continue using it.

    • 𝓢𝓮𝓮𝓙𝓪𝔂𝓔𝓶𝓶OP
      link
      fedilink
      English
      21 year ago

      I’m only just starting to dip my toes in docker. Most of my stuff are kvm vms. I have a decent set of Ansible roles to setup a new vm when I spin it up but I’m not to the point where the specifics of every system is in Ansible yet.

      • @vegetaaaaaaa
        link
        English
        3
        edit-2
        1 year ago

        You can full well deploy docker stacks using ansible. This is what I used to do for rocket.chat: [1] [2] (ditched it for Matrix/element without Docker, but the concept stays valid)

        I’m not to the point where the specifics of every system is in Ansible yet.

        What I suggest is writing a playbook that list the roles attached to your servers, even if the roles actually do nothing:

        # playbook.yml
        - hosts: myhomeserver.example.org
          roles:
            - debian-base
            - docker
            - application-x
            - service-y
        
        - hosts: mydevserver.example.org
            - debian-base
            - application-z
        
        # roles/application-x/tasks/main.yml
        - name: setup application-x
          debug:
            msg: "TODO This will one day deploy application-x. For now the setup is entirely manual and documented in roles/application-x/README.md"
        
        # roles/application-x/tasks/main.yml
        - name: setup service-y
          debug:
            msg: "TODO This will one day deploy service-y. For now the setup is entirely manual and documented in roles/service-y/README.md"
        
        #...
        

        This is a good start for a config management/automated deployment system. At least you will have an inventory of hosts and what’s running on them. Work your way from there, over time progressively convert your manual install/configuration steps to automated procedures. There are a few steps that even I didn’t automate (like configuring LDAP authentication for Nextcloud), but they are documented in the relevant role README [3]

  • @[email protected]
    link
    fedilink
    English
    51 year ago

    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?

    • @[email protected]
      link
      fedilink
      English
      71 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.

    • 𝓢𝓮𝓮𝓙𝓪𝔂𝓔𝓶𝓶OP
      link
      fedilink
      English
      21 year ago

      I’d like to document what I have, and what I need to do it spin it back up with minimal effort should I need to. Esp, anything that’s unique to my setup or that I did to work around a problem. I’ve shot myself in the foot many a time where I go back to something 6 months later and I’ve long since forgotten what I did. So, if it’s not commented in a config I’m figuring it out all over again.

  • @JoeKrogan
    link
    English
    5
    edit-2
    1 year ago

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

  • Szwendacz
    link
    fedilink
    51 year ago

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