Hello, how do you document your home lab? Whether it’s a small server or a big one with firewall and more nodes. I have a small pc with Proxmox and there I have a VM with OpnSense. After I’ve entered my VPN as a interface in OpenSense, I noticed that I slowly lose the overview with the different rules that I have built in my firewall. And I know that my setup is relatively easy in comparison to others here in this community. I want to have a quick Overview at the various VMs, like the Lxc container, Docker containers that I have in this and the IP addresses that I have assigned to them. I search for a simple an intuitiv way for beginners.

  • nagaram@startrek.website
    link
    fedilink
    English
    arrow-up
    55
    ·
    7 days ago

    I download the YouTube tutorials I followed, upload them to my UAT Jellyfin server, and then when my server is having issues I can’t get to the videos!

    A flawless system really

  • atzanteol@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    32
    arrow-down
    1
    ·
    7 days ago

    I build my infrastructure with the terraform, Ansible and helm charts. The code is it’s own documentation as well as comments in that code explaining why I’ve done things if it’s not obvious.

    • ch8zer@lemmy.ca
      link
      fedilink
      English
      arrow-up
      13
      ·
      7 days ago

      This really is the way.

      It goes beyond documentation too - it allows me to migrate to new hosts or to easily automate upgrading the OS release version.

      I have a docusaurus site for my homeland and I have ansible and terraform generate files for the docs so I don’t have to record anything. Some of the stuff I note down:

      • DNS leases
      • General infra diagrams
      • IP info
      • Host info
  • CapitalNumbers@lemm.ee
    link
    fedilink
    English
    arrow-up
    3
    ·
    5 days ago

    Here’s my approach to documentation. It’s about habits as much as it’s about actually writing anything down:

    1. Never setup anything important via naked terminal commands that you will forget you did

    2. Always wrap important commands in some kind of “setup-xyz.sh” script and then run that script to see if your install worked.

    3. If you need to make a change to your service, ensure you update your script and so it can be re-run without braking anything

    Get into the habit of this and you are documenting as you go

  • ryanpdg1@lemmy.ca
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 days ago

    I use the notes sections in proxmox preeettty heavily. Lots of links to the helper scripts, youtube videos and other resources i used to get er’ goin’.

    In the near future I’m really hoping I can set up Netbox to help me document the network and equipment I’m putting in my homelab. a nice thing is that I went through a divorce a while ago and I’m getting to start from scratch. You’d be surprised at just how much you’ve learned since starting to self host and I think there’s this sunk cost fallacy that gets a lot of us to keep going with what we’ve got already set up because we’ve “already put so much work into it” and the concern of what we might lose by scrapping it and starting over.

    Also, not what you asked… but if you’re still relatively new with proxmox you should check out the ProxmoxVE helper scripts. Lots of good automated scripts from doing a post-install to setting up various LXC containers and VM’s

  • dabe@lemmy.zip
    link
    fedilink
    English
    arrow-up
    15
    ·
    7 days ago

    95% of my homelab lives on a single server, and everything I do is within containers. So, my documentation is just keeping all my compose files in a git repo and writing in comments when necessary. It’s fairly self-documenting, and I haven’t found the need to break out of just using containers for everything, besides a couple things like setting up mergerfs or cockpit, but that’s all plug and play nowadays with stuff like https://projectucore.io/

    Of course, I don’t have any other things set up in my physical layout or network stack… but all that stuff would probably just go into an entry in my notes (obsidian/wiki.vim).

  • MangoPenguin@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    7 days ago

    I generally just make notes in Obsidian, mostly about switch ports, VLANs, IP assignments and that kind of thing.

    Also try to save snippets of commands or config edits I needed to get something obtuse working in case I need to do it again later.

  • 413j0@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 days ago

    I just set up everything via ansible and comment everything religiously, I’ve gotten to the point where I have playbooks for my laptop and desktop so if I have do do a clean install I just have to run the playbook and everything is set up and installed to my liking

    It’s annoying to go to my playbook to make changes and rerun it every time I want to install or remove anything from my daily PCs, but it pays off when I migrate computers or for some reason have to do a clean install

    And for high level stuff and things not in ansible I keep a tiddlywiki since no matter how catastrophic the failure of my systems I can always find a way to access an HTML file for my own reference

  • fmstrat@lemmy.nowsci.com
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 days ago

    Every time I set up anything, I do one of two things:

    • If it’s container based, it gets a commented docker compose file in my custom orchestration

    • If it’s on a host system, the changes are scripted and commented in a setup script, which are run on new machines. If the acrit is specific to one machine, it is configured as such

    I find in-setup docs to be best for a home lab, plus if I have to replace hardware, it’s fast.

    Fun fact, I do it for laptops and desktops, too.

    • CapitalNumbers@lemm.ee
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 days ago

      this is basically what i ended up doing to - glad to see my approach verified somewhat ha ha!

      but yeah, in general whenever i make a change / add new service, i always try and add those steps to some sort of setup.sh / docker-compose

      • fmstrat@lemmy.nowsci.com
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 days ago

        Yea comes in super handy when you always want dropbear SSH for remote unlock, or making sure both RAID disks boot, etc.

        I do it for all my software setup, too. A shell script for each, then a for loop that asks to run each. But I also made https://github.com/fmstrat/gam, so maybe I just like overkill bash.

  • exu@feditown.com
    link
    fedilink
    English
    arrow-up
    9
    ·
    7 days ago

    It’s really a wild growth over the years. My current approach is twofold. Netbox to manage devices/VMs and associated info with service deployments using Ansible. You can use the info from Netbox as an Ansible inventory directly.

    Previously I tried network diagrams (too low detail) and spreadsheets (terrible to modify) to document machines. And for serviced I’d have an install page on my wiki (apologies, the codeblocks are somewhat broken atm)

    • Suzune@ani.social
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      1
      ·
      7 days ago

      I run Netbox for documentation only. But your approach is what I actually wanted to do, if I just had plenty of time.

      • pezhore@infosec.pub
        link
        fedilink
        English
        arrow-up
        3
        ·
        7 days ago

        I use netbox too - and if you’re careful about it, you can actually use terraform to create the netbox details. I use one manifest file to handle deployment to Proxmox, set up DNS in PowerDNS, and create the relevant netbox entries.

    • irmadlad@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 days ago

      The way you go about it on your wiki, is almost the same process/format, tho not as fancy . I’ll even throw in a couple links to tuts I found useful for that particular segment in the notes.

  • redxef@feddit.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 days ago

    The whole deployment is done via ansible, so the ansible source is my documentation.

    • SidewaysHighways@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 days ago

      fuck yeahhh man that sounds like the absolute best. I’m really looking forward to the time when i get to learn Ansible

  • Celestus@lemm.ee
    link
    fedilink
    English
    arrow-up
    3
    ·
    6 days ago

    I keep a very rudimentary README.md with some basic info on the services I run. I should probably set up a personal wiki to keep track of everything better

    Perhaps more importantly, I also maintain a document with all the scheduled tasks that run, including what it is, how it’s defined, when it runs, and what device runs it. Really helpful for making sure cron jobs don’t run during a backup script or something

  • WxFisch@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    7 days ago

    I’m curious how everyone documents their core/critical configs to allow the non-technical in our homes work with it if needed. For instance if I’m on work travel and the Pi-hole goes down for whatever reason my wife wouldn’t be able to use pretty much anything online. I can remote in and fix it but that could be hours/a day or two later. Same then for the proxmox stack that everything runs on.

    Along the same lines, how are folks documenting for EOL? It may not be a happy thought but we are all going to go someday, so what is your plan and how have you ensured loved ones can access/save important data?

    • BastingChemina@slrpnk.net
      link
      fedilink
      English
      arrow-up
      2
      ·
      5 days ago

      It’s not just for my home server but for EOL or other issues I used bitwarden emergency access options for passwords. Of anything happens to me my wife can request access to my vault and if I don’t deny it in a certain timeframe she will have full access to it.

      I did that after my brother in law got in an accident and fell into a coma. I’m very grateful he had all his password saved in chrome on his unlocked laptop because if not it would have made the period insanely more difficult for my sister.

      Simple things like paying the bills would I been insanely more difficult and stressful and you don’t need extra stress in this period.

    • MangoPenguin@lemmy.blahaj.zone
      link
      fedilink
      English
      arrow-up
      1
      ·
      7 days ago

      My solution is other people in the house don’t rely on anything in my setup, other than the router which runs some basic telemetry and fraud/phishing domain blocking but that’s all.