Cross-posted from "My selfhosting setup so far" by @innocentz3r0@programming.dev in !selfhosted@lemmy.world


Hey everyone! I'm sort of still green for selfhosting, but I wanted to share my setup so far:

The following services are selfhosted in docker

  • Audiomuse (smart music tagging, mood based and all that)
  • Navidrome for music hosting
  • Jellyfin for TV shows (not a lot) and Films (not a lot again, but steadily increasing)
  • Radicale for serving contacts/TODOs/calendar
  • SFTPGo to act as my drive
  • Kavita for ebooks and manga (I have tons of both)
  • Glance for homepage
  • forgejo for git forge hosting

The system specs are kind of visible in the homepage, so I won't spell them out here again. Mostly an old optiplex running arch, though I want to change it to nixos later on.

System tools:

  • nushell for shell
  • calibre for ebook management and tagging + fanficfare plugin to download fanfictions
  • Caddy for reverse proxy (so I don't have to remember ports)
  • netbird for VPN (also because it allows me to set wildcard DNS resolution for nodes, so I don't have to set up a dedicated pi-hole or adguard)
  • Handbrake and ffmpeg for processing videos and such
  • beets for tagging music
  • a sysinfo script to generate system information for glance to consume
  • Probably other things too, I'm forgetting

Everything is accessible only via netbird, and external inbound connections are firewalled off

Apart from that, I eventually plan on adding the following as well:

  • Immich for photo hosting
  • Vaultwarden for passwords
  • Gollum (still debating on alternatives) for a webUI for my notes
  • Paperless-NGX

I'm still thinking on more that I can add. Note that whatever I add should not need an inbound connection/stable IP address, since I don't intend to expose the server to the public. Any suggestions/tips? Thanks!

UPDATE: Forgot to add, I'd probably add homebox too, for inventory management πŸ˜…

UPDATE 2: I'm silly, I forgot that I'm also looking into self-hosted RSS feed readers πŸ˜†

A firefox browser showing the home page setup for my server. The page is a glance homepage

all 12 comments

sorted by: hot top controversial new old
[–] 7 points 3 months ago (4 children)

I always enjoy seeing what and how others run their home lab setups.

I have been doing a lot of work on mine as of late. Spun up a lot of new containers, as well as enhanced security on some of it.

I haven't posted my setup, or anything like that. But I have a total of 51 containers running on an old Lenovo Small Form factor pc that has an 8th gen i5 and 16gb of DDR4. Outside of that, I just have a pi running one of my vpn connections and my backup DNS of PiHole, whereas my main DNS is Technitium running in a container.

I have checked out Glance a while back, but never did end up using it really.

  • source
  • hideshow 4 child comments
  • [–] [S] 2 points 3 months ago (3 children)

    51 containers

    whoaa! I'd love to see your setup some time!

  • source
  • parent
  • hideshow 3 child comments
  • [–] 4 points 3 months ago (2 children)

    I'd love to share!

    I'll likely get a post put together tomorrow and tag you!

    I just went through every compose file I had and removed all exposed ports (it possible that is) and required access only through my Caddy instance. Enabled HSTS for all sites.

    And the entire lab is separated between 3 devices. A small form factor lenovo box (16GB of DDR4 with an i5), a Raspberry Pi 4 with 8GB of ram, and an old synology that was given to me. . Redundant DNS, a Technitium container, and my pi running Pihole.

    DNS records and Caddy directives are set via Docker labels.

    A combination of Signal notifications and Ntfy to alert me where necessary. That setup including unified push for a number of apps.

    Music streaming, with a companion container that scribbles music, as well aa helped scripts that run on systemd timers thar sync music from live location, to backup 1, to backup 2 aka my desktop HDD. I have a heller script being run on a disposable docker container that searches for LRC files so I have synchronized lyrics for my music.

    And a bunch more I am forgetting.

    I like nerding out about this, and Lemmy is the only place I can talk about this where anyone understands. No one in my life IRL are tech savvy

  • source
  • parent
  • hideshow 2 child comments
  • [–] 1 point 3 months ago (1 child)

    Uh, setting up DNS entries via docker docker labels is on my todo list since the beginning… what are you using to do it? I don’t run PiHole but Blocky, more lightweight and I like the yaml only config.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 3 months ago

    DNSWeaver the way I have this setup is DNSWeaver reads the labels, and connects to both PiHole and Technitium.

    I was only using PiHole for many years. But in learning I could automate DNS entries with DNSweaver, I needed something more powerful. The issue I have with PiHole for DNS with DNSWeaver is that DNSWeaver can't delete DNS records. DNSWeaver uses txt records and well PiHole doesn't support that.

    So I installed Technitium.

    I've never heard od Blocky.

  • source
  • parent
  • [–] 5 points 3 months ago (2 children)

    Definitly missing an XMPP server πŸ˜…

  • source
  • hideshow 2 child comments
  • [–] [S] 4 points 3 months ago (1 child)

    Well, as I mentioned, I don't think I can host an XMPP server without having a fixed IP address and exposing it to the public internet and allowing inbound connections.

    So it's probably a no-no (for now) πŸ˜…

    Also, idk if xmpp is lightweight, but as a user, I quite like matrix

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 3 months ago*

    I looked into using homebox myself, but ended up using Grist instead

    Also nice to see another nushell user

  • source
  • [–] 3 points 3 months ago (1 child)

    I have been using freshRSS for a while and I really like it.

    How do you like Radicale? I have been looking to selfhost cal/todo/contacts, and have been trying to figure out what to use.

  • source
  • hideshow 1 child comment
  • [–] [S] 4 points 3 months ago

    Ah, I asked around and people recommended miniflux over freshrss since the former is written in Go and is lighter and faster.

    Radicale is pretty nice, fits my bill well, and just works. Some people say Baikal is better, but Radicale fits my bill very well so I didn't bother changing.

  • source
  • parent
  • [–] 1 point 1 month ago* (last edited 1 month ago)

    I'm still thinking of more that I can add.

    Do you listen to podcasts? I've started self-hosting Pinepods recently, and rediscovered the value of podcasts when I'm doing chores. Audiobookshelf is another option, but I've found it to be more suited for audiobooks, which I believe Jellyfin also supports.

    Since you mentioned RSS readers, I've tried out both Miniflux, and FreshRSS. As you mentioned in another comment, Miniflux is more lightweight, but it is also more opinionated, so I suggested checking out both of them.

    One example that comes to mind is that Miniflux removes entries from your feed if you mark them as read. This is less of an issue if it aligns with how you naturally consume RSS or if you use an external client.

    With both FreshRSS and Miniflux, I've been more tempted by other desktop/mobile clients than by the web UI, so now I'm using Miniflux with Capy Reader on Android. Still checking out desktop options.

    A bookmark manager could also be an idea, unless you already have a way to sync your bookmarks. I'm self-hosting Linkwarden, but I'm not that happy with the UI or with the extensions for it, so I'm still looking for the holy grail of bookmarks.

    How are you getting the music for your Navidrome server? Have you already built a solid music collection or are you using something like Lidarr or Soulseek?

    P. S. I love seeing these Glance homepages. I didn't get the time to tinker with Glance yet, but the more screenshots I see, the more curious and excited I am about it!

  • source
  • 35 comments in c/selfhosted@lemmy.world view that post
    [–] 9 points 3 months ago* (6 children)

    I don't see many people recommend this and not sure why but I'd recommend looking at Arcane docker containers management. It's got a nice UI and very easy to use!

  • source
  • hideshow 6 child comments
  • [–] 2 points 3 months ago (3 children)

    Interesting. I've heard of Arcane, but never dabbled. From the demo, it looks pretty tight. I see it also gives you 'vulnerabilities' kind of like Maintenant, but built in. Nice!

  • source
  • parent
  • hideshow 3 child comments
  • [–] 2 points 3 months ago (2 children)

    Oh yeah it has a lot of nice features and the vulnerabilities it pretty in-depth, once it done it provides recommendations for fixing the vulnerabilities as well.

    I currently have mine configured to check for updates, update and prune automagically then provide a report of what's been done to a private discord server

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 3 months ago* (last edited 3 months ago) (1 child)

    Wow! So it's Maintenant, watchtower, Portainer, and a few other apps rolled into one. That's pretty awesome. I'm using Portainer and have been for a long while. It's good for what it does, and I know how to drive that bus. I'll definitely have to check out Arcane tho. Especially if it replaces several apps that I don't need to run, and make room for others. LOL

    Thanks for sharing.

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] -1 points 3 months ago (1 child)

    That looks interesting! Although my current setup is simple, so I'd like to hear from you what arcane simplifies from experience

  • source
  • parent
  • hideshow 1 child comment
  • [–] 3 points 3 months ago

    Depending on what you want out of Arcane, like the user above said it condenses the need for 3 or 4 separate container into 1 container all managed within the same gui. For me the simplicity of having it auto update my containers, restarting them if they become unhealthy, pruning unused docker volumes, unused networks, old container images has made container management a breeze

    If you have any more specific questions outside of this or in general I'm happy to answer them πŸ™‚

  • source
  • parent
  • [–] 17 points 3 months ago (10 children)

    Awesome! I have a very similar setup to you. I recommend installing pi-hole regardless and putting at least Hagezi's normal block list on it, just for a sane web browsing experience.

    Home Assistant is also really good, because it includes a bunch of stuff that you probably wouldn't first think of. For instance, I'm using its API to request the indoor temperature from my home thermostat and the outdoor temperature from a weather module that it has built in, and I've programmed it to let me know when it's too hot to walk the dog, and when to open/close the windows in the house to keep it as cool as possible in this heatwave.

    I'm using LeafWiki for home documentation. A list of things I intend to try hosting, my backup strategy which I'm bound to otherwise forget. I'm thinking about putting all of our meals on there so that we when we get tired of a particular meal for a while, we can return to it when we're at a loose end with the shopping.

  • source
  • hideshow 10 child comments
  • [–] 2 points 3 months ago (5 children)

    How do you do backups and what's the codeberg service?

  • source
  • parent
  • hideshow 5 child comments
  • [–] 4 points 3 months ago (3 children)

    I keep my container volumes in sub-directory of that of the docker compose file and tar them up and put them somewhere safe. I spent ages trying to figure out how to back up a container, because I thought that the state of a database was in memory, which I suppose it is, but when you stop it, it's just a bunch of files like everything else, so I elected to keep it simple. I've been thinking of creating a cron job to do it routinely. I'm not sure what you mean regarding the codeberg question.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 3 points 3 months ago* (2 children)

    Picture has title services and under that there's Codeberg and GitHub. Is it just the state of the public service or do you have some repos monitored there or something? I just wonder why are those there as you probably have no source for... Okay well maybe you could have codeberg source code but GitHub?

  • source
  • parent
  • hideshow 2 child comments
  • [–] [S] 2 points 3 months ago

    Ok, so reading the replies I see that it was meant for me.

    All the relevant volumes are mapped to the actual filesystem on disk (like you do in docker compose, ig it's called a volume bind-mount?), so when I have to take backups I stop the docker container and manually cp/rsync/whatever from the directory.

    The github and codeberg services are nothing but HTTPS checks for both of them

  • source
  • parent
  • [–] [S] 2 points 3 months ago (2 children)

    Oh wow! I didn't know home-assistant can work in a closed network, but now it makes sense

    What does leafwiki do exactly?

    I also read your backup strategy below and that seems pretty interesting. My strategy differs. Have nothing in the volumes, unless it's like docs or whatever lol. I do think that'll change with things like Paperless, since I'd want to persist and carry over the tagging strategy or whatever.

  • source
  • parent
  • hideshow 2 child comments
  • [–] [B] 8 points 3 months ago* (last edited 3 months ago) (1 child)

    Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:

    Fewer Letters More Letters
    DNS Domain Name Service/System
    Git Popular version control system, primarily for code
    RPi Raspberry Pi brand of SBC
    SBC Single-Board Computer
    SFTP Secure File Transfer Protocol for encrypted file transfer, over SSH
    SSH Secure Shell for remote terminal access

    [Thread #57 for this comm, first seen 20th Jul 2026, 18:10] [FAQ] [Full list] [Contact] [Source code]

  • source
  • hideshow 1 child comment
  • [+] 8 points 3 months ago (6 children)
  • [–] 4 points 3 months ago* (1 child)

    Couple things. Firstly watchtower is no longer maintained. An alternative is what's up docker(WUD). It mostly functions the same but with a little more setup. I found this to be a near drop in replacement for me.

    Secondly as someone who's consistently had a hard time with searxng, I would recommend degoog instead for aggregate search. It just feels so much more modern and usable. It's immensely more simple to setup as well since configuration is mostly done in the interface instead of some several hundred line config file.

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (1 reply)
  • [–] [S] 3 points 3 months ago (1 child)

    I've heard good things about SearXNG. I'll be sure to check that out.

    I don't see the need for cryptpad, since SFTPGo serves my purposes.

    I'd look into mealie, since I'm going to live alone and need to figure my own meals out. Perhaps Sure/Actual too!

    I am still looking at container management, right now I just manually update/backup everything.

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (1 reply)
  • [–] 5 points 3 months ago (3 children)

    How are you accessing all of it? Custom URLs? Reverse proxy?

    Forgejo is for private projects only? Are you syncing them with some other git providers? If now how are you baking it up?

    Vaultwarden for passwords

    This one was the most tricky for me due to HTTPS but I finally got it working on desktop and android.

  • source
  • hideshow 3 child comments
  • [–] [S] 4 points 3 months ago (2 children)

    I access it using the hostname of the device (since netbird and tailscale both let you do that)

    I also open docker ports only for localhost, and use caddy to reverse proxy subdomains to the respective localhost ports. Less port clutter from outside this way. Ofcourse things like SFTPGo's SFTP port is an exception

    Also, vaultwarden requires HTTPS?? Ah drat, that's not good :/ I don't have experience with that.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 5 points 3 months ago (1 child)

    Also, vaultwarden requires HTTPS?? Ah drat, that’s not good :/ I don’t have experience with that.

    Yes, the clients work only over HTTPS. Caddy can handle that:

    vaultwarden.cosmos.internal {
            tls /opt/caddy/certificate.crt /opt/caddy/private.key
            handle /* {
                    reverse_proxy http://localhost:8081/
            }
    }
    

    The certs need to be generated for this specific domain:

    openssl req   -x509   -newkey rsa:4096   -keyout key.pem   -out cert.pem   -sha256   -days 36500   -nodes   -subj "/C=XX/ST=StateName/L=CityName/O=CompanyName/OU=CompanySectionName/CN=cosmos.internal"
    

    Some more details are here: https://bitwarden.com/help/certificates/ under "Using a self-signed Certificate"

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 3 months ago (2 children)

    That's a respectable server set up you got going there. Kudos!

  • source
  • hideshow 2 child comments
  • [–] [S] 4 points 3 months ago (1 child)

    Thanks! Still remember the good old days, when I didn't know how to set up docker compose properly (I don't think I still do 🀣)

    But I've certainly come a long way, and it's really fun! Also, I've seen you post here often! Cheers!

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 3 months ago

    (I don’t think I still do 🀣)

    Learning is one of the facets of selfhosting that I genuinely get a kick out of, and as you say, it is much fun. It's a very useful, very practical, and entertaining hobby for me. My servers are like a huge playground. I'm still that kid running out to the mailbox to get the latest edition of Byte magazine.

    Also, I’ve seen you post here often!

    Much to chagrin of some I am afraid. LOL I am an expert at nothing, but if I may be of service in any way, please do inquire. There are a lot of people here willing to help.

  • source
  • parent
  • [–] 3 points 3 months ago (1 child)

    What do you have against pihole? If it is you want to see ads you can turn off the adblocking and see ads but you can use it for internal dns naming for services with Caddy as I find it more reliable than just Caddy across multiple systems.

  • source
  • hideshow 1 child comment
  • [–] [S] 2 points 3 months ago

    I don't have anything against Pihole. It's wonderful! I don't have additional resources (like RPi), and I want to keep everything on one system, and my usecase is simple enough that netbird covers it, and I don't know if I should pass all my DNS requests on both my phone and PC through my server (because iirc it's finally the pihole system that'll make the request?)

    Also I hate ads lol

  • source
  • parent