Selfhosted

39856 readers
503 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 1 year 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
 
 

After almost 3 years of work, I've finally managed to get this project stable enough to release an alpha version!

I'm proud to present Managarr - A TUI and CLI for managing your Servarr instances! At the moment, the alpha version only supports Radarr.

Not all features are implemented for the alpha version, like managing quality profiles or quality definitions, etc.

Here's some screenshots of the TUI:

Additionally, you can use it as a CLI for Radarr; For example, to search for a new film:

managarr radarr search-new-movie --query "star wars"

Or you can add a new movie by its TMDB ID:

managarr radarr add movie --tmdb-id 1895 --root-folder-path /nfs/movies --quality-profile-id 1

All features available in the TUI are also available via the CLI.

3
 
 

Hiya, I am looking into a few different services to better manage my finances, among the highest recommended ones there is ActualBudget. Actualbugdet itself is opensource and private, however, to get the most out of this service you may connect it to your bank, via a third party service. Has anyone here actually done this? The service (for EU folks) is called GoCardless. This however, to me is ringing many alarms..

Here is the screenshot showing the message before connecting to my bank..

Here GoCardless's list of partners/suppliers:

https://assets.ctfassets.net/40w0m41bmydz/6Mg3PGztGEQh11N3MNRmYc/1f186cf883151ca04b9c71c23b5ee4d3/GoCardless_material_supplier_list_v2024.09.pdf

I assume there is no private alternative that allows you to connect to your bank into AcualBudget or another service, if so please let me know! Managing finances would be so much more convenient if it all was automatically synced into a self-hosted service.

Let me know how you manage your finances :)

4
 
 

Hi self-hosters, we're building a self-hostable, MIT-licensed alternative to Klaviyo, Braze, Mailchimp, etc. You can automate email, SMS, WhatsApp, and lots of other channels.

The core functionality of the platform includes a user segmentation builder, a low-code email template editor, and a low-code drag-and-drop journey builder for creating automated messaging workflows. We also have subscription groups to manage unsubscribes.

Link to repo: https://github.com/dittofeed/dittofeed

If you need any help with deploying an instance, reach out on Discord! https://discord.gg/HajPkCG4Mm

5
 
 

These small little handy-dandy devices seem to get more and more popular. Anyone here chipped in for a JetKVM yet? Looks and sounds pretty solid. Are there a lot of you that have aquired a nanoKVM?

6
 
 

I’m looking to replace a 2013 Mac Mini running Proxmox. Just curious if anyone has one of these or anyone heard of any negatives about them? Watched a bunch of videos and outside of a lack of 10G Ethernet, it seems to be well received!

7
 
 

This is a quite popular repo of scripts used by the selfhosting community, so I think it's worth sharing it here. It's unfortunately saddening news related to tteck's health. I wish him the best, and that he enjoys his well deserved rest in peace.

Dear Community,

I wanted to share a personal update. I’ve recently transitioned into hospice care and, as a result, will be slowing down the development of this project. While I’m grateful for the progress we’ve made together, I recognize that I’ll be taking a step back for some rest and reflection during this time.

Thank you for your continued support, encouragement, and understanding. Your dedication to the community and this project means the world to me, and I am grateful for each of you.

Warm regards,

tteck/tteckster

8
 
 

Yet another question about self-hosting email, but I haven't found the answer at least phrased in a way that makes sense with my question.

I've got ~15 GBs of old gmail data that I've already downloaded, and google is on my ass about "91% full" and we know I'm not about to pay them for storage (I'll sooner spend 100 hours trying to solve it myself before I pay them $3/month).

What I want is to have the same (or relatively close to the same) access and experience to find stuff in those old emails when they are stored on my hardware as I do when they are in my gmail. That is, I want to have a website and/or app that i search for emails from so-and-so, in some date-range, keywords. I don't actually want to send any emails from this server or receive anything to it (maybe I would want gmail to forward to it or something, but probably I'd just do another archive batch every year).

What I've tried so far, which is sort of working, is that I've set up docker-mailserver on my box, and that is working and accessible. I can connect to it via Thunderbird or K-9 mail. I also converted big email download from google, which was a .mbox, into maildir using mb2md (apt install mb2md on debian was nice). This gave me a directory with ~120k individual email files.

When I check this out in Thunderbird, I see all those emails (and they look like they have the right info) (as a side - I actually only moved 1k emails into the directory that docker-mailserver has access to, just for testing, and Thunderbird only sees that 1k then). I can do some searching on those.

When I open in K-9, it by default looks like it just pulls in 100 of them. I can pull in more or refresh it sort of thing. I don't normally use K-9, so I may just be missing how the functionality there is supposed to work.

I also just tried connecting to the mail server with Nextcloud Mail, which works in the sense that it connects but it (1) seems like it is struggling, and (2) is putting 'today' as the date for all the emails rather than when they actually came through. I don't really want to use Nextcloud Mail here...

So, I think my question here is now really around search and storage. In Thunderbird, I think that the way it works (I don't normally use Thunderbird much either) is that it downloads all the files locally, and then it will search them locally. In K-9 that appears to be the same, but with the caveat that it doesn't look like it really wants to download 120k emails locally (even if I can).

What I think I want to do, though, is have the search running on the server. Like I don't want to download 15GBs (and another 9 from gmail soon enough) to each client. I want it all on the server and just put in my search and the server do the query and give me a response.

docker-mailserver has a page for setting up Full-Text Search with Xapian, where it'll make all the indices and all that. I tinkered with this and think I got it set up. This is another sort of thing where I would want the search to be utilizing the server rather than client since the server is (hopefully) optimizing for some of this stuff.

Should I be using a different server for what I want here? I've poked around at different ones and am more than open to changing to something else that is more for what I need here.

For clients, should I be using Roundcube or something else? Will that actually help with this 'use the server to search' question? For mobile, is there any way to avoid downloading all the emails to the client?

Thanks for the help.

9
 
 

I’m thinking about self-hosting my own Lemmy server and I probably have too many questions than answers. But maybe some simple ones… do server owners get to set the amount of days a post can be retained before it’s deleted or are there defaults baked into the software package?

Can server owners restrict image sizes or the number of images that can be uploaded?

Can a server owner restrict the creation of new communities? I’m curious how granular permissions can get.

Would I be better off hosting my own instance to get some of these questions answered? 😁

Thanks in advance!

10
 
 

Hello.

I've been trying to get familiar with self hosting. The only roadblock I have is I'm unable to do so because I am a university student living in student accommodation where it is against WiFi policy to host anything. And currently I don't even have my raspberry pi with me. My laptop is relatively low specced, so I can't exactly do VMs, but I want to learn more about hosting stuff and the services I can host. I recently signed up for a free managed Nextcloud instance because I wanted to see what it's like and whether I'd be interested in hosting my own.

I know VPS-es are an option but they can get pretty costly, especially for a student like me. Do you have any recommendations, including any cheapz reliable VPS-es for a UK student to dip his toes into self-hosting? Thank you.

P.S I know this isn't exactly self-hosting as I'm technically reliant on third party hardware but it's the only option in my situation.

11
 
 

Hi. Some friends of mine are starting a business and they want to setup a server to host a simple "contact" website, run an e-mail service (about 10 accounts for now but with possibilities of expanding it to support more) and to store and remote access documents.

Im a computer savvy person so they asked me for help, but dont know much about self-hosting so I come here asking you:

What kind of hardware do they need and would be best? What OS and other software is required and recomended?
How to set it up/configure it? Im partial to foss but if there are good propietary options they are acceptable too. And last: What do we have to watch out for or avoid.

Also, space is a bit of an issue, I was thinking they could use something small like an intel nuc but Im worried that hardware would be underpowered for their needs.

I have been googling for stuff myself but I get overwhelmed by the ammount of information and some contradicting opinions so I appreciate your recomendations and guidance. Im not asking you to give me a full tutorial, although I would appreciate it too, but just to be pointed in the right direction to avoid, as much as possible, spending money and time on things they might not really need or might not perform as well.

Thanks in advance.

12
 
 

Hi all, I’m one of the creators of ChartDB.

ChartDB to simplify database design and visualization, providing a powerful, intuitive tool that’s fully open-source. This database diagram tool is similar to traditional ones you can find: dbeaver, dbdiagram, drawsql, etc.

https://github.com/chartdb/chartdb

Key Features:

  • Instant schema import with just one query.
  • AI-powered export to generate DDL scripts for easy database migration.
  • Supports multiple database types: PostgreSQL, MySQL, SQLite, Mssql, ClickHouse and more.
  • Customizable ER diagrams to visualize your database structure.
  • Fully open-source and easy to self-host.

Tech Stack:

  • React + TypeScript
  • Vite
  • ReactFlow
  • Shadcn-ui
  • Dexie.js
13
 
 

this is a really underdocumented feature that this extension supports, wanted to share it with people. i've never written and shared a blog post like this before so feel free to give me tips about documenting steps or point out any errors i made. i kinda take docker knowldge for granted, not sure if i should avoid that. here's the contents:


I came across documentation for this in the readme for the FreshRSS extension YoutubeChannel2RssFeed. The method involves running an instance of the Youtube-operational-API (there was a public instance that has been cease and desisted by Google, see here) and plugging the extension into it.

YoutubeChannel2RssFeed Extension

TL;DR install this extension

git clone https://github.com/cn-tools/cntools_FreshRssExtensions.git
cd cntools_FreshRssExtension
cp -r xExtension-YouTubeChannel2RssFeed <your_freshrss_data_directory>/config/www/freshrss/extensions

Youtube-operational-API instance

Here's a Docker compose.yml for running both

services:
  freshrss:
    image: lscr.io/linuxserver/freshrss:latest
    container_name: freshrss
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Los_Angeles
    volumes:
      - ./freshrss/config:/config
    ports:
      - "8811:80""
    restart: unless-stopped
  youtube-operational-api:
    container_name: freshrss-yt-o-api
    image: benjaminloison/youtube-operational-api:latest
    restart: unless-stopped
    ports:
      - "8812:80"
    depends_on:
     - freshrss

Configuring extension

In FreshRSS, log in as admin and go to Configuration > Extensions. Turn on YoutubeChannel2RssFeed under User extensions and click the gear to configure.

Set Youtube Shorts to be marked as read or blocked completely. Enter the URL for your yt-o-api instance. Based on the above compose file it would be http://freshrss-yt-o-api:8812. Submit changes.

For me this worked immediately, no shorts ever show up in FreshRSS for my Youtube feeds. I haven't seen this documented anywhere else so I wanted to mirror it somewhere.

14
 
 

As requested by /u/funkless_eck@sh.itjust.works, this is a walkthrough of how I set up NGINX Proxy Manager with a custom domain to give me the simplicity of DNS access to my services with the security of Tailscale to restrict public access. This works great for things that you want easy remote access to, but don't want to have open to the internet in general (unRAID GUI, Portainer, Immich, Proxmox, etc.)

Prerequesites

  1. A custom domain (obviously, because that's the whole point of this tutorial)
  2. A Tailscale account with your devices linked to it

Steps

  1. On the server that you want to serve as the entry point into your network, install the NGINX Proxy Manager Docker container (you could absolutely use a different installation method, but I prefer Docker so that's how this guide will be written)

    I. For this, I have a Raspberry Pi that is dedicated to being my network entry. This method is probably overkill for most, but for me it works wonders because I have multiple different devices working as servers and if one goes down I can still access the services hosted on the others.

    II. I'm not going to go super in detail here, because there is plenty of documentation elsewhere but you install it the same way you would install any Docker container and follow the first time setup

  2. Log into your Tailscale account and get the Tailscale IP for the entry device (ex. 100.113.123.123)

  3. Get the SSL information from NGINX Proxy Manager for your domain

    I. Navigate to "SSL Certificates" and then "Add SSL Certificate"

    II. Select "Let's Encrypt"

    III. Type in your domain/subdomain name in the first box

    IV. Enter your email address for Let's Encrypt

    V. Select "Use a DNS Challenge"

    VI. Select your DNS provider in the dropdown

    VII. From here, you're all set for now. We will continue with this later

  4. In your domain DNS dashboard, you will need to do a few things (I use Cloudflare, but the process should be more or less the same with whatever provider you use):

    I. Set up an A record that redirects the root of your domain (or a subdomain, depending on your configuration) to your Tailscale IP from step 2

    II. Set up a wildcard redirect that points back to your domain root. This is important because it will redirect subdomain requests (i.e. service.example.org to your root example.org which then points to the Tailscale IP)

    III. (This is going to be dependent on your provider) Generate an API key for NGINX to use for domain verification, this can easily be achieved in the Cloudflare dashboard in the API key section. The key needs to have permissions for Zone.DNS

  5. Back in NGINX Proxy Manager, drop in your API key in the text box where it asks for it (you need to replace the sample key).

  6. The hard part is done, now it's just time to add in your services!

Here's an example of proxying Portainer through NGINX Proxy Manager:

  1. Might be obvious, but open up NGINX Proxy Manager

  2. Navigate to Hosts -> Proxy Hosts

  3. Click "Add Proxy Host"

  4. Type in the URL that you want to use for navigating to the host, I prefer subdomains (i.e. portainer.example.org)

  5. Type in the IP address and port for the service

    I. Here's the neat part: because NGINX is running in Tailscale, you can connect to both other services in your tailnet or other devices running in your network that don't necessarily have Tailscale running on them.

    II. An example of this, would be if you have two houses (yours and your friends), where you have services deployed at both locations. You can have NGINX reach out through Tailscale to the other device and proxy the service through your main network without needing to set it up twice. Neat, right?

    III. Conversely, if you have a server running in your network that you cannot install Tailscale onto (for support reasons, security reasons, whatever), you can just use the internal IP for that device, as long as the device NGINX Proxy Manager is running on can access it.

  6. Navigate to the SSL tab of the window, and select your recently generated Let's Encrypt certificate

  7. And you're done

Now, you can connect your phone or laptop to Tailscale, and navigate to the URL that you configured. You should see your service load up, with SSL, and you can access it normally. No more remembering IP addresses and port numbers! I don't personally meet this usecase, but this solution could also be useful for people running their homelab behind CGNAT where they can't open ports easily -- this would allow them to access any service remotely via Tailscale easily.

EDIT: The picture formatting is weird and I'm not really sure how else to do it. Let me know if there's a better way :)

15
 
 

Hi,

I'm interested in setting up a small static-site-generator site. Looked at 11ty recently and feel pretty uncomfortable with the amount of javascript and "funny language" churn just to make some html happen.

Do you know of any alternative that's simpler / easier / less complicated dependencies? Or do you have an approach to 11ty that you think I should try?

Thanks in advance for any input, it's appreciated!

16
 
 

"Youlag Theme for FreshRSS" provides a video-focused browsing experience for your RSS subscriptions. It tries to provide a similar experience to YouTube, primarily through its layout using CSS, but also a little bit of Javascript.

Git repo for more details: https://github.com/civilblur/youlag

In case you're not aware, "FreshRSS is a self-hosted RSS feed aggregator".


The idea is that you subscribe to content creators through YouTube's RSS feed https://www.youtube.com/feeds/videos.xml?channel_id={id_goes_here}, then browse, watch, save to playlist ("label"), right within FreshRSS.

There's also third-party extension for FreshRSS that provides the ability to use Invidious, but as we all know, the public instances are unfortunately struggling quite a bit as of writing.

17
 
 

Hey fellow self-hosting lemmoids

Disclaimer: not at all a network specialist

I'm currently setting up a new home server in a network where I'm given GUA IPv6 addresses in a 64 bit subnet (which means, if I understand correctly, that I can set up many devices in my network that are accessible via a fixed IP to the oustide world). Everything works so far, my services are reachable.

Now my problem is, that I need to use the router provided by my ISP, and it's - big surprise here - crap. The biggest concern for me is that I don't have fine-grained control over firewall rules. I can only open ports in groups (e.g. "Web", "All other ports") and I can only do this network-wide and not for specific IPs.

I'm thinking about getting a second router with a better IPv6 firewall and only use the ISP router as a "modem". Now I'm not sure how things would play out regarding my GUA addresses. Could a potential second router also assign addresses to devices in that globally routable space directly? Or would I need some sort of NAT? I've seen some modern routers with the capability of "pass-through" IPv6 address allocation, but I'm unsure if the firewall of the router would still work in such a configuration.

In IPv4 I used to have a similar setup, where router 1 would just forward all packets for some ports to router 2, which then would decide which device should receive them.

Has any of you experience with a similar setup? And if so, could you even recommend a router?

Many thanks!

18
 
 

🚀 NextCloudTalkAutomationBot: The power of a SIEM… without the SIEM! 😆 - A powerful and flexible bot for sending system notifications and Event Logs through messages via Nextcloud Talk. 💬

✨ Key features: run Bash scripts/commands, using Nextcloud Talk as your output screen 📺; receive real-time CPU, storage, Docker Container status, and Nextcloud/Wireguard authentication logs 🔐

#Automation #ServerMonitoring #Nextcloud #DevOps #SelfHosting #SelfHosting #DataPrivacy #RaspberryPi #OwnYourData #Decentralization #EventLogging #NextCloudTalk

19
 
 

For folks that are unable to port forward on the local router (eg CGNAT) I made this post on doing it via a VPS. I've scoured the internet and didn't find a complete guide.

20
 
 

Hey everyone! 👋

I'm excited to share Hexabot, an open-source, self-hostable chatbot builder that allows you to create and manage highly customized AI-powered chatbots. It’s built with a strong focus on flexibility, privacy, and community-driven development. Whether you need a multi-channel chatbot or want to enhance your existing services with an AI-powered conversational agent, Hexabot has you covered.

21
 
 

Not affiliated in any way with Actual Budget, but I can't recommend it enough. It's the FOSS version of YNAB pretty much so if you're a fan of envelope budgeting it's a great tool. I'd even say it has quite a few other strengths compared to YNAB (free bank syncing in the EU with more banks supported for example), and you can always be sure that your financial data stays within your reach.

22
 
 

I'm completely new to selfhosting but see a lot of potential. I wonder if anyone knows a good way to self host a notetaking app? The point is that I need to access my notes on multiple devices so self hosting them could be a nice idea. I currently use google keep and goodnotes but would like to leave those behind...

23
 
 

Flipt is an Enterprise-ready, GitOps enabled, CloudNative feature management solution. Written in Go. Supports many different database backends (MySQL, Postgres, SQLite) as well as non-relational stores (Git, S3, OCI, etc).

24
 
 

Unfortunately, Mojeek isn't listed as one of the options when selecting the search engine in Open WebUI. The only way I imagine I could use the API is through the searchapi option, but it is really vague and I cannot really figure out how to connect it to Mojeek.

I am begginer, if you couldn't already tell, so can you help me?

25
view more: next ›