Selfhosted

49080 readers
1033 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
1
 
 

Hello everyone! Mods here 😊

Tell us, what services do you selfhost? Extra points for selfhosted hardware infrastructure.

Feel free to take it as a chance to present yourself to the community!

🦎

2
 
 

Hello Friendos

I'm a security / cloud engineer and I've had this lab for about 6 months now. In the last few weeks I've decided to start using it to self host some "production" services for me and my loved ones (extended family of 15) Mainly a next cloud instance that serves as our "picture vault"

The hardware is a poweredge R430 with twin ES-2620's and 128 GBs. It has 8x1TB 2.5

HDDs

This thing ended up being really overpowered for what I use it and I feel like by now I have explored everything I wanted to in this hardware. I was thinking about laterally scaling to R230s so I could play with load balancing and HA.

However these servers only have 2-4 drive bays, and I have no experience with DAS.

Can you guys help with some links? I'm researching DAS enclosures. I understand that any server with a PCI slot can take a SAS card, and any SAS enclosure is compatible.

Can you guys foresee any issue with a server as small as an R230 connecting to a SAS DAS?

I see that DAS enclosures have multiple connections per module, would I be able to connect multiple servers to the same module? or is it one server per connection and it can't be shared?

If I have to share the connection, I would have to host a NAS (I probably should anyways) and will have to upgrade my switch from gigabit to 10G

Would also appreciate some other recommendations for small form factor servers that can be bought for cheap. (18 inches or shorter)

Pic of current setup for attention ... don't judge my PC case :) 3U chassis for it is on the mail.

3
 
 

everytime i check nginx logs its more scrapers then i can count and i could not find any good open source solutions

4
 
 

Great news! I started my selfhost journey over a year ago, and I'm finding myself needing better hardware. There's so many services I want that my NAS can't handle. And I unfortunately need to add GPU transcoding to my Jellyfin setup.

What's the best OS for a machine focused on containers and (getting started with) VMs? I've heard Proxmox

What CPU specs should I be concerned about?

I'm willing to buy a pre-built as long as its hardware has sufficient longevity.

5
 
 

Hi, I'm having trouble getting my Caddy reverse proxy to work with the arr apps I can access everything without the reverse proxy. I have set the basic login prompt (like this one) through the arr apps after I have logged in I'm either getting a blank page or I'm seeing this error page:

firefox

The page isn’t redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

This problem can sometimes be caused by disabling or refusing to accept cookies.

chromiumThis page isn’t working domain.com redirected you too many times.

Try deleting your cookies. ERR_TOO_MANY_REDIRECTS

Caddyfile config (1.1.1.1 is a placeholder ip for my vps external ip)

{
    email [email protected]
}

domain.com {

    # qBittorrent
    redir /qbit /qbit/
    handle_path /qbit/* {
        reverse_proxy 1.1.1.1:8080 {
            header_up Host {host}
            header_up X-Real-IP {remote_host}
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
        }
    }

    # Sonarr
    redir /sonarr /sonarr/
    handle_path /sonarr/* {
        reverse_proxy 1.1.1.1:8989 {
            header_up Host {host}
            header_up X-Real-IP {remote_host}
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
        }
    }

    # Radarr
    redir /radarr /radarr/
    handle_path /radarr/* {
        reverse_proxy 1.1.1.1:7878 {
            header_up Host {host}
            header_up X-Real-IP {remote_host}
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
        }
    }

    # Prowlarr
    redir /prowlarr /prowlarr/
    handle_path /prowlarr/* {
        reverse_proxy 1.1.1.1:9696 {
            header_up Host {host}
            header_up X-Real-IP {remote_host}
            header_up X-Forwarded-For {remote_host}
            header_up X-Forwarded-Proto {scheme}
        }
    }
}

I've tried setting the URL base to /the_name_of_the_arr_app, but it didn't work. I've attempted it with and without the redir /the_name_of_the_arr_app /the_name_of_the_arr_app/. I'm stuck and unsure of how to resolve the issue. It works fine with qBittorrent.

radarr debug log

2025-07-04 21:27:45.9|Info|Radarr.Http.Authentication.BasicAuthenticationHandler|Basic was not authenticated. Failure message: Authorization header missing.
2025-07-04 21:27:45.9|Info|Radarr.Http.Authentication.BasicAuthenticationHandler|AuthenticationScheme: Basic was challenged.
2025-07-04 21:27:54.1|Debug|Radarr.Http.Authentication.BasicAuthenticationHandler|AuthenticationScheme: Basic was successfully authenticated.
2025-07-04 21:27:54.8|Debug|Radarr.Http.Authentication.BasicAuthenticationHandler|AuthenticationScheme: Basic was successfully authenticated.
2025-07-04 21:27:55.0|Debug|Radarr.Http.Authentication.BasicAuthenticationHandler|AuthenticationScheme: Basic was successfully authenticated.

6
 
 

So, I have a self hosted Owncast instance. I want to run a 24/7 live stream. However, if the streaming source changes or cuts for a few seconds, Owncast immediately terminates the stream. So I'm trying to find a way to have a "fallback/offline" stream running where it's just a testcard graphic and the time on it for now. And then when it detects an incoming RTMP stream, it switches to the stream. When the stream ends- back to the testcard. My aim is to make a seamless stream that is always live and doesn't cut.

I thought such a thing would be simple - it isn't. FFMPEG needs to reconnect to switch sources. I tried using a FIFO pipe, but the thing that reads the pipe doesn't seem to like it when the RTMP stream connects, choosing to break. I've tried forwarding an RTMP stream from Nginx and using the switchers, but the forwarder likes to break as well (it seems to dislike mismatched timestamps or something)

I apologise for not leaving any specific logs. I have been working on this for days and have errors galore. I am posting here to see if there's a difference/best approach. (If one of these here is a best option and I was on the right track, I can try and dig up my old code and errors).

7
8
 
 

I am looking to create similar tool to AlternativeTo. This would list different brands and why you should or should not buy them. Is there some software that would be great starting point for creating this kind of service?

I would guess wiki apps would work for this, but like wikijs, but interested to hear is the something else that could be used for this.

9
10
 
 

Hi all, I’ve recently got a proxmox server up and running, and cutting my teeth on it setting up some services (thanks to everyone who responded to my earlier post!). One thing I’m struggling with currently, and it’s admittedly not straightforward, is getting a graphical session up and running.

What I have working so far is an arch based lxc container, with gpu pass through. nvidia-smi on the lxc reports as usual, and so that seems to be working fine.

Upon installing a graphical session, say cinnamon, with lightdm, however, I can’t seem to open any display. I can have a virtual terminal available via the proxmox ui, and though I haven’t tried, I’m sure I could ssh in just fine as well. For what it’s worth, I have a display connected to the host system; the host does not have any graphical sessions. I’d like for the time being to use this host display, and have passed through /dev/fb0.

What I haven’t tried is running a pure x11 based session. I’d really prefer to use a Wayland session with cinnamon, but if necessary I can try to get an x11 session running. I additionally have not installed any vnc servers.

The errors I tend to get when trying to start cinnamon center on not being able to get a session ID, not being able to connect or open a display, and not being able to connect or find a dbus session.

Lightdm says it is running as a service on systemctl status lightdm.

Anyone have any ideas for how to get a session going graphically? I’m not sure how to even pass a tty to the connected monitor from the lxc.

Thanks for any help or guidance — if I do figure this all out, I plan to make a guide for future folks.

11
29
AppFlowy v0.9.4 (github.com)
submitted 22 hours ago by otters_raft to c/[email protected]
 
 

AppFlowy is a collaborative project/wiki/documentation platform (similar to Notion if you are familiar with that). Otherwise check out their screenshots for an idea of how it works.

New Features

Desktop

  • Private page sharing: Add members to private pages with Can View or Can Edit permissions
  • Guest editor collaboration: Invite non-members (guest editors) to collaborate in real-time on your pages
  • Shared with me: Browse all pages shared with you under the new Shared with me section
  • New syncing protocol: Optimized for faster, more reliable multi-user and multi-device data sync

Mobile

  • Shared page collaboration: View and edit pages that have been shared with you on iOS and Android
  • New syncing protocol: Optimized for faster, more reliable multi-user and multi-device data sync
12
725
goodbye plex (piefed.cdn.blahaj.zone)
submitted 1 day ago by [email protected] to c/[email protected]
 
 

after almost 15yrs my plex server is no more. jellyfin behind nginx with authentik is running very nicely.

13
227
Rate my one year old homelab. (media.piefed.social)
submitted 1 day ago* (last edited 1 day ago) by [email protected] to c/[email protected]
 
 

How it started: mp80
I bought a MiniPC (Blackview MP-80) to run Home Assistant and some lights etc. to go with it.

It's now exactly one year later this is what my setup looks like now:
BMAX B2 Pro --> Home Assistant OS Blackview MP-80 --> Proxmox --> Nextcloud-AIO & Immich
ODROID H4+ --> Proxmox --> TrueNAS

How it's going: odroid
With the heatwave in Europe I've now installed cooling to keep my HDD's from heating up.

I know it's Janky as hell, but I love it. The plan going forward is to buy a 3D Printer so that I can 3D Print a custom 10" rack, and I'll build my own cooling and temperature monitoring system with ESP32 and create a dashboard for it in Home Assistant and sorting out networking.

It's a work in progress, having a lot of fun learning and adding new things.

14
 
 

I tried installing YunoHost once, now I'm installing again. I installed it on a Virtual Machine. After installing, it asked for a user and password. I typed in what was provided "root" and "yunohost", and it didn't work, it said incorrect.

15
 
 

Hey everyone!

I'm excited to introduce Reitti, a location tracking and analysis application designed to help you gain insights about your movement patterns and significant places—all while keeping your data private on your own server.

Core Capabilities:

  • Visit Tracking: Automatically recognizes and categorizes the places where you spend time, using customizable detection algorithms
  • Trip Analysis: Analyzes your movements between locations to understand how you travel whether by walking, cycling, or driving
  • Interactive Timeline: Visualizes all your past activities on an interactive timeline with map and list views that show visit duration, transport method, and distance traveled

Photo Integration:

  • Connect your self-hosted Immich photo server to seamlessly display photos taken at specific locations right within Reitti's timeline. The interactive photo viewer lets you browse galleries for each place.

Data Import Options:

  • Multiple Formats Supported: Reitti can import existing location data from GPX, GeoJSON, and Google Takeout (JSON) backups
  • (Near) Real-time Updates: Automatically receive location info via mobile apps like OwnTracks, GPSLogger or our REST API

Customization:

  • Multi-geocoding Services: Configurable options to convert coordinates to human-readable addresses using providers like Nominatim
  • User Profiles: Customize individual display names, password management, and API token security under your own control

Self-hosting:

  • Reitti is designed to be deployed on your own infrastructure using Docker containers. We provide configuration templates to set up linked services like PostgreSQL, RabbitMQ and Redis that keep all your location data private.

Reitti is still early in development but has already developed extensive capabilities. I'd love to hear your feedback and answer any questions to tailor Reitti to meet the community's needs.

Hope this sparks some interest!

Daniel

16
 
 

The sensor is located on the case (not near the exhaust) of the server. With the structure of my appartment this is the only place I can realistically put my Server but sadly also the hottest place in my appartment.

The outside temperature is supposed to reach 36°C today so I expect the ambient temp for the server to rise another 2-3 degrees.

17
 
 

cross-posted from: https://lemmy.world/post/32265822

xkcd #3109: Dehumidifier

xkcd #3109: Dehumidifier

Title text:

It's important for devices to have internet connectivity so the manufacturer can patch remote exploits.

Transcript:

[A store salesman, Hairy, is showing Cueball a dehumidifier, with a "SALE" label on it. Several other unidentified devices, possibly other dehumidifier models, are shown in the store as well.]

Salesman: This dehumidifier model features built-in WiFi for remote updates.
Cueball: Great! That will be really useful if they discover a new kind of water.

Source: https://xkcd.com/3109/

explainxkcd for #3109

18
19
 
 

Hi everyone, I have some exciting new things about Postiz! (Finally, good news.

Postiz is a social media scheduling tool supporting 19 social media channels:

Instagram, Facebook, TikTok, Reddit, LinkedIn, X, Threads, BlueSky, Mastodon, YouTube, Pinterest, Dribbble, Slack, Discord, Warpcast, Lemmy, Telegram, VK, Nostr.

https://github.com/gitroomhq/postiz-app/

Here is what's new:

  • New Editor - The Previous editor was clunky, with many hacky hooks, real technical debt, I spent two days (monk mode), and created something awesome, UI and UX also changed.

  • Overall better UI / UX - showing the amount of characters/characters left.

  • OIDC fixed, working well now :)

  • Sets, you can define a template of a message that will be posted later

  • X - added option to select who can reply to your post, post to an X community

  • BlueSky - Upload videos to BlueSky

  • Integrations - you can work with an integration such as Heygen to generate content for you; you can see more here.

  • Drag and drop pictures directly on the editor now shows progress in "%"

  • Alt and thumbnails for media - This is the initial release, which currently allows you to add alt and thumbnails for pictures, but these changes are not yet reflected on the backend.

Everything as usual is available on the open-source :)

20
 
 

Recently, I've found myself walking several friends through what is essentially the same basic setup:

  • Install Ubuntu server
  • Install Docker
  • Configure Tailscale
  • Configure Dockge
  • Set up automatic updates on Ubuntu/Apt and Dockge/Docker
  • Self-host a few web apps, some publicly available, some on the Tailnet.

After realizing that this setup is generally pretty good for relative newcomers to self-hosting and is pretty stable (in the sense that it runs for a while and remains up-to-date without much human interference) I decided that I should write a few blog posts about how it works so that other people can set it up for themselves.

As of right now, there's:

Coming soon:

  • Immich
  • Backups with Syncthing
  • Jellyfin
  • Elementary monitoring with Homepage
  • Cloudflare Tunnels

Constructive feedback is always appreciated.

EDIT: Forgot to mention that I am planning a backups article

21
22
 
 

So I've got a couple of Mini PC's and a ODROID H4+ as a NAS, all just standing on my desk at the moment.

I'm going to build them into a 10" Rack and I'd like to have a good cooling solution.

My idea is to buy something like this https://www.alternate.nl/Noctua/NA-FH1-fancontroller/html/product/1917195 And wire it up with a ESP32 board and temperature probes, so that I can connect it all to a dashboard in Home Assistant.

Any advice on this project, or better alternatives would be appreciated.

23
24
 
 

Hi everyone! 👋

Three months ago, I posted about ChartDB - a self-hosted, open-source tool for visualizing and designing your database schemas. Since then, we’ve shipped tons of new features and fixes, and we’re excited to share what’s new!

Why ChartDB?

  • ✅ Self-hosted - Full control, deployable anywhere via Docker
  • ✅ Open-source - Actively maintained and community-driven
  • ✅ No AI/API required - Deterministic SQL export, no external calls
  • ✅ Modern & Fast - Built with React + Monaco Editor
  • ✅ Multi-DB Support - PostgreSQL, MySQL, MSSQL, SQLite, ClickHouse, Cloudflare D1… and now Oracle!

Latest Updates (v1.11 → v1.13)

  • 🆕 Oracle Support - Import and visualize Oracle schemas
  • 🆕 Custom Types for Postgres - Enums and composite types
  • 🆕 Areas for Diagrams - Group tables visually into logical zones
  • Transparent Image Export - Great for docs & presentations
  • PostgreSQL SQL Import - Paste DDL scripts to generate diagrams
  • Improved Canvas UX - Faster, smoother, less lag
  • Inline Foreign Key DDL - Clean, readable SQL exports
  • Better JSON Import - Sanitize broken JSON gracefully
  • Read-Only Mode - View diagrams without editing access
  • DBML Enhancements - Support for comments, enums, inline refs

…plus 40+ bug fixes and performance improvements

🧠 What’s Next?

  • AI-powered foreign key detection
  • Git integration for diagram versioning
  • More database support & collaboration tools

🔗 GitHubhttps://github.com/chartdb/chartdb
🔗 Docshttps://docs.chartdb.io/ 🔗 Live Demo / Cloud Versionhttps://chartdb.io/

We’d love to hear your feedback, contributions, or just how you're using it.
Thanks for all the support so far! 🙌

25
 
 

I was offline for an extended period and realized how dependent on online services I am. so now that I am back online, I tried to have an offline version of various sites via the kiwix project.

the setup should be easy - fetch and then download via torrents the gigabytes of data; each site is in its own ZIM file. store them in a single folder. leave 'em seeding, help out folks. done.

next, get the kiwix app. some browser-like atrocity delivered via flatpak. I'm half-guessing it's electron, because everything shitty usually is and this is just otherwordly shitty. anyhow, the thing is meant to download the ZIMs directly to the computer, which I don't want, I already got the files on my server, accessible via network share or any other mechanism.

in the myriad of confusing, counter-intuitive and just dogshit UX options there's the option to choose the folder containing files. easy enough, pick the folder from the network share and... nothing happens. clicking on home, search, nothing nets any result. ok, restart the app? yeah nah. the app is now frozen. after a while it just disappears and relaunching it doesn't work.

after dicking around with killing everything kiwix related, the app finally launches - in a frozen state. the server's HDD activity light barely lights up so I'm stumped at what it's doing.

finally, the app decides it's no longer "not responding" and I can try searching. let's try something simple, "macbook" - not found. the entirety of human knowledge on my drive and this little-known thingy somehow got skipped.

in the midst of trying various things, we reboot. upon launching the app, it doesn't have any memory of those ZIM files - a flatpak network folder mapping issue I am sure. still, awesome so far.

fuck this app, let's try another way. my server is debian and its packages include kiwix-tools which has the kiwix-serve module. looks easy, kiwix-serve -v -p 7766 /media/data/kiwix/* and... says we're good, I'll set up a systemd service file later, let's connect the app.

except, that's not a thing. nowhere I was able to click and prod and tweak was there an option to enter a network URL.

dogdamit, let's use firefox. server's URL:port and... there we go, a landing page, lists all the ZIMs I got; it's kinda ugly and dated, no way that's a harbinger of doom and hopefully complex use cases like searching the thing will work...

they will not. whatever you search for nets zero fucking results. now, if you open a ZIM file individually, e.g. ifixit, and then search in it, that'll show results. but then, what's the point of the meta search page?

so thanks for reading, I'm looking forward to ditching my ISP and relying on this thing to keep me alive. "bear mauling me what do" - not found.

view more: next ›