• 0 Posts
  • 29 Comments
Joined 2 years ago
cake
Cake day: June 26th, 2023

help-circle

  • I wish I had setup an identity management system sooner. Been self-hosting for years and about a year ago took the full plunge into setting up all my services behind Authentik. Its a game changer not having to deal with all the usernames and passwords.

    In a similar vein, before Authentik, I used Vaultwarden to manage all my credentials. That was also a huge game changer with my significant other. Being able to have them setup their own account and then share credentials as an organization is super handy.



  • Right? My flake is pretty complex at this point. I use it for over 6 computers, my storage server, compute servers, VPS etc etc. Been perfectly stable for over 3 years. I update with the release cycle every 6 months. Never needed more than a small change here or there and it usually warns me of the depreciations ahead of time.

    Thankfully I’ve only needed to roll back twice and it was perfect. Lost no data and kept working while I waited for a fix. If my flake ever blows up completely I’ll switch… but I dobt that will happen lol



  • The rules still apply to the host, just not inside the container. Docker is just ignoring the rules. If you block all ports but then have port 81 open like you do in that section of docker compose, you would think that UFW would block docker but thats not the case. Going to http://yourip:81/ will show then NPM gui, even if you specifically use ufw to block 81. If you only expose port 80 and 443, you should be fine. Your NPM container would have to be compromised then they would have to break out of the container.

    Also I think your issue is with your DNS. You should have an A record for the IP pointing to example.com and then a CNAME record pointing to sub.example.com



  • I use headscale on a VPS as an ingress point into my network and I love it. On top of headscale, I use two instances of traefik to make my network. I have one instance of traefik running on the vps which runs a couple of services that I want running 24/7(headscale-ui is nice). It pulls a subdomain certificate for TLS. So any services under say *.vps.example.com get routed to the VPS.

    Then I have a wildcard TCP rule pointing the rest of the network traffic to my home server through headscale. My home server is running another instance of traefik where all my services are running. This pulls another wildcard cert for the rest of the *.example.com subdomains.

    Cool thing about this setup is I can now have my DNS server rewrite *.example.com to my servers LAN IP. Now when my device is home, it works even when WAN is out. But when I’m out and about, it hits the public DNS and goes through my VPS. With traefik I can write a not !ClientIP rule and essentially block the VPS. Now I can host a service at home but also block it from being accessed from the public. But if I need access to the LAN remotely, I can just use a tailsacale client and get into headscale and see everything.

    Its an odd network, but it’s super flexible and works very well for my use case. If you have any questions I’d love to help you set something like this up :D


  • The over lap of docker containers needs to happen from inside the perspective of the container. If you send Radarr to pull a movie from bittorrent, they both need to “be in the same spot”. If bittorrent thinks it’s saving a movie to /data/torrent then Radarr also needs to see the movie at /data/torrent.

    That’s why so many guides use the /data/ label scheme. Its just easy to use and implement. Side note, for hard links to work, all the folders need to be on the same drive. Can’t hard link between different drives.



  • I followed along the nixos wiki for kubernetes and creating the “master” kublet is super easy when you set easyCerts = true. Problem is, it spits out files to /var/lib/kubernetes/secrets/ that is owned by root. Specifically, the cluster-admin.pem file. If I want to push commands to the cluster using kubectl I have to elevate to a root shell. I could just chmod or chown the file but that seems like a security risk.

    Now I’m not familiar with k8s at all. This is my first go through, so I could be doing something wrong or missing a step. I saw something about the role based security but I haven’t jumped down that rabbit hole yet. Any tips for running kubectl without root?







  • Running Plex in a docker container will be your best bet. After installing docker you can run a docker compose file that has your /config folder mapped to a separate location. Here is a sample compose file from the linuxserver.io group, which I highly recommend.

    ---
    services:
      plex:
        image: lscr.io/linuxserver/plex:latest
        container_name: plex
        network_mode: host
        environment:
          - PUID=1000
          - PGID=1000
          - TZ=Etc/UTC
          - VERSION=docker
          - PLEX_CLAIM= #optional
        volumes:
          - /path/to/plex/library:/config
          - /path/to/tvseries:/tv
          - /path/to/movies:/movies
        restart: unless-stopped
    

    Pay special attention to the section marked “volumes” you’ll see the first line is a mapping for the plex config from the host to inside the container. The left side of the “:” is the path as the host sees it, the right side is from inside the container. You can use this compose file in each installation of linux to share your config and watch history as plex will always find it in the /config folder. That’s the beauty of containerization!

    That being said I wouldn’t run two containers at the same time. That could have unintended consequences as each may try to write to the same file at the same time. As long as only one instance of plex is using the config at a time you’ll be alright. You can find more info about the compose file here!

    If you have any questions, feel free to ask! 😁



  • It shouldn’t mess with your current routing but if you’re running other VPNs you may run into issues.

    After you join the machines to the tailnet, each machine gets a new IP address ( only visible to other machines in the tailnet), by default it’s a 100.x.y.z you can check the tailnet for the device IP.

    Now you can keep the port closed on your router and it will still be accessible over the usual lan ip and port. But when you want to access remotely, turn on tailscale and connect using the tailnet IP.

    Another cool thing you can do with this setup is turn your home server into an exit node. By default it will only route things that are in the tailnet (100.x.y.z subnet). But if you turn your home server into an exit node you can funnel all your traffic back through the exit node. Instant free VPN back home!