Self-Hosted Alternatives to Popular Services

r/selfhosted357.4K subscribers200 active
Welcome to /r/SelfHosted! Please Read This FirstOfficial
Welcome to /r/selfhosted!

We thank you for taking the time to check out the subreddit here!

Self-Hosting

The concept in which you host your own applications, data, and more. Taking away the "unknown" factor in how your data is managed and stored, this provides those with the willingness to learn and the mind to do so to take control of their data without losing the functionality of services they otherwise use frequently.

Some Examples

For instance, if you use dropbox, but are not fond of having your most sensitive data stored in a data-storage container that you do not have direct control over, you may consider NextCloud

Or let's say you're used to hosting a blog out of a Blogger platform, but would rather have your own customization and flexibility of controlling your updates? Why not give WordPress a go.

The possibilities are endless and it all starts here with a server.

Subreddit Wiki

There have been varying forms of a wiki to take place. While currently, there is no officially hosted wiki, we do have a github repository. There is also at least one unofficial mirror that showcases the live version of that repo, listed on the index of the reddit-based wiki

Since You're Here...

While you're here, take a moment to get acquainted with our few but important rules

When posting, please apply an appropriate flair to your post. If an appropriate flair is not found, please let us know! If it suits the sub and doesn't fit in another category, we will get it added! Message the Mods to get that started.

If you're brand new to the sub, we highly recommend taking a moment to browse a couple of our awesome self-hosted and system admin tools lists.

Awesome Self-Hosted App List

Awesome Sys-Admin App List

Awesome Docker App List

In any case, lot's to take in, lot's to learn. Don't be disappointed if you don't catch on to any given aspect of self-hosting right away. We're available to help!

As always, happy (self)hosting!

Pinnedby kmisterkModerator
1.3K
80
5.0y
April Announcement - Quarter Two Rules ChangesOfficial

Good Morning, /r/selfhosted!

Quick update, as I've been wanting to make this announcement since April 2nd, and just have been busy with day to day stuff.

Rules Changes

First off, I wanted to announce some changes to the rules that will be implemented immediately.

Please reference the rules for actual changes made, but the gist is that we are no longer being as strict on what is allowed to be posted here.

Specifically, we're allowing topics that are not about explicitly self-hosted software, such as tools and software that help the self-hosted process.

Dashboard Posts Continue to be restricted to Wednesdays

AMA Announcement

The CEO a representative of Pomerium (u/Pomerium_CMo, with the blessing and intended participation from their CEO, /u/PeopleCallMeBob) reached out to do an AMA for a tool they're working with. The AMA is scheduled for May 29th, 2024! So stay tuned for that. We're looking forward to seeing what they have to offer.

Quick and easy one today, as I do not have a lot more to add.

As always,

Happy (self)hosting!

Pinnedby kmisterkModerator
24
9
1mo
Something broke

Its me, my server broke me.
I just cant do this anymore.
Tweak some settings here some there.
Everything falls apart like a house of cards.

I bought a domain -> goDaddy said f you no api for broke people.
I bought ProtonVPN -> they change my port every 5 seconds so qBittorrent wont work properly.
I changed my ISP -> they give me no public IP Address and i have to wait 7 hours in their customer support.

Sorry for the rant its half past 12 and i am completely broken and nobody in my life really wants to hear me complain about my little server.

edit: thank you all for the kind words. i had a wonderful night of sleep and now its back to work. most of the things i was able to solve myself but qBittorent yesterday broke me as they give you very little to troubleshoot with.

Different email address for every website

For the past two years, I’ve been creating accounts using email addresses like [email protected]. All these site-specific addresses forward to [email protected].

I just learned that one of the golden rules here is to avoid self-hosting your email server.

Am I totally screwed? T.T

Host application that needs access to internet (ChangeDetection.io) but don't want it accessible outside the local network Automation

Looking to self host Changedetection.io I’ll need it to be able to access the websites to check its status but don’t want it to be accessible from the outside internet. I’m getting overwhelmed with a lot of the setups involving cloudflare, reverse proxies, SSH etc etc and am wondering if any of that is necessary if I never plan to access this from an outside network.

My plan is to setup on a raspberry Pi or other single-board computer and run it on Docker. If I just use the default settings then it shouldn't be accessible from outside networks? Is there something I am overlooking that could expose me to malicious internet actors?

Do you run private DNS server?

I am subscribing the cheapest service at freedns.afraid.org. But realized today I could run the service by myself. While I am using the homeserver for all servicrs but using AWS for the email and FreeDNS for DNS, I am just curious how many of you guys are using selfhosted DNS.

hi, hosting an assetto corsa game server and need advice!

hi, as the title says, im hosting an ac game server on a local dedicated server. i dont want to expose my ip address and im having trouble finding a decent way to tunnel my servers connection. i was initially going to use cloudflare, but then realized its only for http and ssh. i could use a reverse proxy with aws, but i want to see if i can find other ways to go about it before committing to paying for anything more. im not opposed to paying, but i want it to be worth it.

i want to also understand what can be done locally here if i do decide to just host the server off my own network to protect against ddos attacks or anything of the such. thank you!!!

I need names for a local-only certificate authority

Once my HSM gets here I'm going to be setting up a spare Pi with step-ca. I'm struggling to come up with a decent hostname for it, though.

I don't stick to any particular theme aside from references, usually oblique. For example: - Landru: Home Assistant, helps run my life and makes all smart devices "of the body" - Viewscreen: TV (self-explanatory) - Willie: gaming rig, so named because it's my "Steamboat"

So far the best I've come up with for the CA is Stepchild because it will be running the step-ca software. I briefly thought of Redhead because "redheaded stepchild", but found myself constantly forgetting that I'd thought of it.

What do you fine folks think? And what sorts of names do you use?

20
40
14h
Got my first IT job cause this sub

I got into self hosting back in 2016 cause I was tired of having to pay for Netflix, Hulu just to watch 1 thing on that platform. Found Plex and found out how to download movies/TV shows.

Then manually searching for content became a pain. So I automated the process with my Arr stack.

Then in 2020 I found network chuck who introduced me to docker with his portainer video. Along with the basics of Linux & Networking.

Fast forward 4 years now (24 now) I have a whole homelab infrastructure. 2 proxmox nodes, TrueNas, AWX, Cloud machines, authentik, probably 45 Virtual machines in total all for different services. 7 domains and countless subdomains, CI/CD for Git repos, etc. If it's open source and can be installed in a homelab, ive probably tried it.

Anyway, before this I didn't know anything about Linux/tech. Was working a sales job. But this has became an addiction lol. I fully credit this subreddit for showing me what's all out there.

I don't have any certs so getting IT job was gonna be hard. One day I finally said I'm done with sales and applied for some IT jobs. Got an interview at a VOIP company and I didn't know a thing about VoIP but they were impressed with my homelab and understanding of systems, so they hired me.

Now here I am 8 weeks later, working on PBX systems, SSH'ing into Linux servers and troubleshooting, remoting into clients networks, configuring VM's, etc. Basically exactly what I do at home. And doing so well some of the more advanced people in the office think I should moving up to sysadmin.

Most of my coworkers all have A+, Net+ and Sec+ and I'm hanging right in there with them, I teach them things that I've learned by going the self hosted route, they teach me things from the certificate route.

Anyways, I just wanted to thank this subreddit. Thanks for sharing your open source projects, thanks for all the help I've received over the last few years. I guess it is all starting to pay off. If I can do it you can too.

1.2K
80
1d
Best landing page to share services with family

What does everyone use to have a centralized landing page to share services with less technically inclined family members?

30
27
17h
What subscriptions are you currently paying?

There are some that seem very difficult/impossible to escape. For me are:

  • Spotify
  • YouTube Premium (paid through VPN)
  • iCloud (this one will be gone soon)
  • Prime (I only use it for "free" delivery)
  • Real Debrid
  • Glacier (for critical off-site backups)

I also have a lifetime Plex, and I was lucky enough to get a lifetime Windscribe VPN many years ago.

-
0
3m
How to solve "WebSocket connection to 'ws://localhost:3000'" error nginxNeed Help

Hello, I am trying to follow this tutorial https://www.youtube.com/watch?v=J8xReLuBNPY&list=PL0Zuz27SZ-6NOkbTDxKi7grs_oxJhLu07&index=1 on making a chat application with NodeJS and websockets. I am able to access my webpage through https://my.site because it is hosted with nginx and I have an ssl certificate, but when I go to this address there is an error that says: "WebSocket connection to 'ws://localhost:3000" in the console. This is my first time using websockets so any help is appreciated.

I tried adding

location / {
    # redirect all HTTP traffic to localhost:8080
    proxy_pass http://localhost:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # WebSocket support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
}

to my nginx config file but it resulted in the error Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xeu nginx.service" for details. failed!

Request for help with self-hosting questions

Some initial context: I'm a computer science student living in Canada. I use ArcoLinux as my primary operating system. I have an old computer Optiplex 760 running Debian currently working as my backup server.

Could you please help me with these questions:

Question 1: I want to upgrade to a new computer for the following purposes:

  • Run Immich as an alternative to Google Photos (requires more RAM than I currently have).
  • Run Syncthing as a data backup option (already doing this).
  • Run Jellyfin to have a video hosting server.
  • Use the computer to train Machine Learning models remotely.
  • Play games once in a while.

Please provide me with resources to learn about how I can build a computer for these purposes (I want to keep the cost as low as possible). Also, is it possible to run multiple operating systems at once since I may want to play games on Windows while still running Linux to host the services?

Question 2: I have a VPS that my local server reports to (polling) about its status. However, I want to make the services accessible across the internet and I currently use reverse ssh to port forward from the local server to the VPS. I want an easier way to do this and an easy way to pass messages to the server (my current idea was to build a website with a web socket connection).

Question 3: I have another server in a different country that acts as a remote backup server. Given that I'll have so much computing power running all the time do you have suggestions as to how I can use this more effectively? I would like to contribute my compute power to some open projects if you have any suggestions regarding that too!

Overall, any suggestions and help in this area would be greatly appreciated. Please remember that I do not know a lot about networking and servers but I'm very passionate and excited to learn!

Hi, can you help with one better chat system that is also self-hostedChat System

I need some better chat system that is also self-hosted. I don't want to build a full fledge chat system. I am also looking for a notification system to that will integrate with Firebase. Thank-you in advance

Hello admin/mod, I am new here, and I don't know if this posts is valid within the rules of the community or not.

0
1
2h
Let's Encrypt Certificate with DNS Challenge for Namecheap domain?

Hi

I just registered a domain on Namecheap.

Then I go to Nginx Proxy Manager to setup SSL certificate with DNS Challenge

However, it ask me to provide dns_namecheap_username and dns_namecheap_api_key

[Image]

The username should be the one I used to login, but where can I find API Key?

[Image]

I can find the API Access, but the requirement to open it is pretty high
So what should I do?

Thanks all!

Jellyfin app issueMedia Serving

Hi, I'm trying to use the jellyfin app but it can't connect to the server. It works fine on the browser, but when I use the same address in the app (vpn address http://10.8.0.1:8096), it states it is "Unable to reach server". Any ideas how to get around this?

Is there a client iOS app for Actual Budget?Need Help

For those of you who haven’t tried Actual Budget, then you definitely should. It’s one of the best finance management envelope budgeting apps out there.

Immich app for Android/Fire TV is here!Media Serving

Immich now has an app for Android and Fire TV. I have tested it on Fire TV and it works well.

It's still early days and the app is barebones but I'm sure it will improve a lot. It's a great start nonetheless.

All you need is an API key from your Immich instance (go to Administration under Accounts and generate the API key). The app will guide you about the rest. Simply download the apk and install it on your Fire TV/Android TV.

This is the link to the GitHub repo.

Please support the project by starring it, using it, reporting bugs and donating if able.

This is a third party app and not from the developers of Immich. Also, I'm not the developer. I just found it today.

GitHub link

I'm losing my mind, please help me with NFS mounts for DockerNeed Help

I consider myself a relative beginner but I can usually power through and figure something out. I'm absolutely losing my mind trying to get a nice Docker setup going utilizing storage on my NAS (Synology).

Hardware Outline:

Synology NAS

Proxmox running on a NUC

2 months ago

I tried for a solid week or two to get Docker setup in Proxmox running on an unprivileged lxc. I lost my mind trying to get it to work right with NFS Bind mounts and UID/GID mapping, looking back on what I know now I may be able to make it work. However I know that as a good practice it's better to run docker on a VM and I'm actually happy I ended up moving it to a VM anyway, I've got to learn a lot more about Linux operating systems. I was stubborn at the end though I wanted to make the LXC work just because I know it could be done, in the end I decided to try it on a Debian VM.

2 weeks ago

I created a Debian VM with a desktop GUI so it would be easier for me, so it's not headless to start. After about 3 or so days I learned more about user mapping and I was able to get docker working. What really bothers me the most is I have a user let's say 1024:1024 from the Synology side. I create a user on Debian with 1024 but Docker doesn't necessarily run as this user. This caused issues on some specific Docker containers that don't seem to support user mapping or one's where they have to run as root. To fix it I had to allow all users permissions on the Synology folder to mimic UNIX permissions for whatever user might be running in the containers. The issue with this for me is now on my Synology I have files and folders owned by a plethora of different users and it just seems wrong to me. I'd like it if everything across the board was owned by 1024.

https://community.synology.com/enu/forum/1/post/187221

I'm so frustrated that the Synology seems to work so differently. Firstly, their squash settings are not as extensible as they should be. Secondly I have to allow access to the share by All Users, Everyone, and Owners to mimic UNIX file permissions which I absolutely hate the idea of, I don't want anyone on my synology to be able to access these files.

This week

Fast forward to this week and I have tried relentlessly to now get a rootless docker install working. I was able to get it installed headless and running but now containers are having issues again assigning ownership of files etc. Specifically a Postgres container that seems to want to run as root. It's creating the file as the 1024 user but it still fails to assign ownership, but I have no idea what it's doing under the hood.

I'm wondering if I just go back to running it non-rootless opening up permissions on Synology and forgetting about it all but it will always bother me.

I don't even know what to do at this point, has anyone else struggled this much with NFS mounts?

Better yet should it not bother me that the folders are accessible by anyone and owned by so many different "users"?

What are the best practices here, I've googled until every link is purple and I'm still lost.

Networking helpNeed Help

Hey all…have a question on segregation of my network.

Currently my setup looks like this: ISP modem -> TPLink WiFi Router -> Managed TPLink Switch

  • The switch supports 802.1q
  • Everything rides on a 192.168.0.x /24
  • WiFi Router serves as DHCP server

Ideally I would like it to look like this:

  • VLAN 1: 192.168.1.0 (WiFi devices)
  • VLAN 20: 192.168.2.0 (Proxmox Hosts)
  • VLAN 30: 192.168.3.0 (Work Machines)
  • VLAN 50: 192.168.5.0 (Guests)

  • In this scenario would I need other routers to move traffic between VLAN’s?

  • Should I setup a DHCP server instead of using the WiFi Router?

  • If I add a pfsense in front of everything will I this solve this conundrum? Ex:

ISP modem -> pfsense-> Managed TPLink Switch -> TPLink WiFi Router

Thanks!

Port forwarding and certbotCloud Storage

I am interested in self hosting a cloud storage at home as a hobby, but given that ISPs typically don't provide a static IP for a residential address and most likely also block all the usual ports one might use for running a server, I was thinking of doing the following:

Setup a NextCloud server running on my local network. (Already done). Get a VPS server running Wireshark and forward all the useful requests back home where I run my cloud. (Not yet done)

So far I am using a self signed certificate for the https requests, but in case I would want to share some links to files with friends, I don't want to scare them with their browser warning them about the dangers of untrusted certificates. I was considering to buy a domain name pointing to the address of the VPS server and getting a certificate from Let's Encrypt, but I don't know how does the cert bot check that I am the owner of a website.

If I setup the port forwarding as described above and run certbot on my home server as described in these instructions: https://certbot.eff.org/instructions?ws=apache&os=debianbuster will I pass the validation test and get a certificate?

2
1
9h
A mail client and a smtp serverEmail Management

I've got a vanity domain and I have a catch all forwarded to Gmail. I currently home out email addresses like candy because of the catch all. Is there a system that would allow me received the emails through Gmail possibly through imap or pop. Then replyb back using my vanity domain with any email account I give out?

I don't want to run a full mail server. Seems like a lot of work maintaining security, backing up, etc if I were to setup a mail server. I'm looking to keep my mx records pointed to Google but maybe setup an spf record pointing to my public personal IP address.

Does a system that acts like a client not allows me to use my computer as an smtp server (probably a webmail system) to send out with a vanity domain. Preferably through docker.

0
1
6h
Cloudflare access on tv appsRemote Access

Is there any way to give authentication to smart tv, Apple TV, or firestick apps? I run a locally hosted Jellyfin media server for myself and I use cloudflare email and sign in with google access applications right now. The problem I am running into is that it only works in a web browser not in the Jellyfin or infuse apps. So if there are any ways anyone knows of to solve this problem or other ways I could go about it that would be greatly appreciated.

Server Upgrade

Hi all,

I’ve just bought the hardware for my homelab upgrade and whilst I wait for it to arrive, I’m deciding how I can improve my setup.

Currently, I run Ubuntu Desktop (I like to RDP in now and then so no Ubuntu Server) and run all my applications in docker, probably about 35-40 containers running. This has worked fine but seeing as I’m going to rebuilt from scratch, does anyone have any suggestions on what I could improve on?

I’m thinking about Proxmox and running a VM with Ubuntu Desktop and docker and all the containers, makes backups and snapshots easy and allows for multi OS VMs in future if I wanted to but I feel it’s just a bit complex for my needs. Docker has met all my requirements so I don’t see why I should start using LXCs (if that’s what they’re called) and multiple VMs over installing barebones, but it would make backups bliss.

I was also tempted to perhaps try merging my gaming PC and NAS into one as I already use Parsec to game on my gaming PC from another room but again, this opens a whole can of worms, specifically power consumption by adding a GPU into the mix of things.

In case anyone is interested, I’m upgrading from a Dell Optiplex 9020m i7-4770S to an MSI H110M Pro MoBo with a Core i7-7700. Can’t wait to get rid of USB enclosures.

Docker - See on Pi-Hole individual WireGuard clients

Hello!

I have the following compose all dial in and fully working. I can use, on local, the Pi-Hole as DNS, and also all the traffic on WireGuard running through Pi-Hole.

When on local, I can see the individual client on Pi-Hole, but on WireGuard I can only see the wg docker network. This makes sense to me why.

My question is, how do I see on Pi-Hole the individual wg clients, just like on local.

I'm using Raspberry Pi and I already tried wirehole but no success.

Thank you!

services:

# Cloudflared service for DNS

cloudflared:

container_name: "cloudflared"

image: "cloudflare/cloudflared:latest"

hostname: "cloudflared.docker"

restart: "unless-stopped"

ports:

- "5053:53/udp"

- "5053:53/tcp"

environment:

TUNNEL_DNS_UPSTREAM: "https://1.1.1.2/dns-query,https://1.0.0.2/dns-query"

TUNNEL_DNS_PORT: 5053

TUNNEL_DNS_ADDRESS: "0.0.0.0"

command: "proxy-dns"

networks:

internal:

ipv4_address: "10.8.1.2"

# Pihole service for DNS

pihole:

container_name: "pihole"

image: "docker.io/pihole/pihole:latest"

hostname: "pihole.docker"

restart: "unless-stopped"

depends_on:

- "cloudflared"

ports:

- "53:53/tcp"

- "53:53/udp"

- "8080:8080/tcp"

volumes:

- "/home/pi/docker/networking/etc-pihole:/etc/pihole"

environment:

- "TZ=Europe/Lisbon"

- "WEBPASSWORD=PASSWORD"

- "DNSMASQ_LISTENING=all"

- "PIHOLE_DNS_=10.8.1.2#5053"

- "WEB_PORT=8080"

- "VIRTUAL_HOST=domain"

networks:

internal:

ipv4_address: "10.8.1.3"

# Wireguard VPN

wg-easy:

image: "ghcr.io/wg-easy/wg-easy"

container_name: "wg-easy"

hostname: "wg.docker"

restart: "unless-stopped"

ports:

- "51820:51820/udp"

- "51821:51821/tcp"

volumes:

- "/home/pi/docker/networking/wg-easy-config:/etc/wireguard"

environment:

- "LANG=en"

- "WG_HOST=domain"

- "PASSWORD=PASSWORD"

- "PORT=51821"

- "WG_PORT=51820"

- "WG_DEFAULT_ADDRESS=10.8.0.x"

- "WG_MTU=1384"

- "WG_DEFAULT_DNS=10.8.1.3"

cap_add:

- "NET_ADMIN"

- "SYS_MODULE"

sysctls:

- "net.ipv4.ip_forward=1"

- "net.ipv4.conf.all.src_valid_mark=1"

networks:

internal:

ipv4_address: "10.8.1.4"

# Nginx Proxy Manager

npm:

image: 'jc21/nginx-proxy-manager:latest'

container_name: "npm"

hostname: "npm.docker"

restart: "unless-stopped"

ports:

- "80:80/tcp"

- "81:81/tcp"

- "443:443/tcp"

volumes:

- "/home/pi/docker/networking/etc-letsencrypt:/etc/letsencrypt"

networks:

internal:

ipv4_address: "10.8.1.5"

networks:

internal:

ipam:

config:

- subnet: "10.8.1.0/24"

1
1
8h