ѕєχυαℓ ρσℓутσρє

I fuck numbers.

  • 10 Posts
  • 122 Comments
Joined 1Y ago
cake
Cake day: Jun 21, 2023

help-circle
rss

I took a look at it. From what I understand, some of the lines in your setup are redundant. The final product seems to do basically the same job as mine. In any case, if it works, it works.


Hey, great post. I have one request. Can you maybe add some description for what the iptables entries do? I have a similar setup with a lot less iptables rules that works well for me. But I’m not an expert in networking, and am now worried that I might be missing something that can leak my home IP.



There’s propaganda, definitely. Also, there are people who simply don’t care what they watch. They’ll just open Netflix and watch whatever they see on the home screen. It’s hard for them to understand why I might wanna watch some Iranian movie from the 80s.


I know about Jellyseerr, but I find it not worth it since there are very few people that send me requests. Messaging apps are enough for that.


I also teach college students lol. People can’t even figure out how to upload assignments from their phone. Had a student tell me that she broke her laptop, so can’t submit an assignment even though it was already written. She was gonna scan it from her phone, airdrop to her laptop, and then upload the files to Canvas. I tried to explain that she can do it on the mobile app for Canvas instead. I eventually had to give up and asked her to drop it at my office. It literally felt like explaining stuff to my ma.


I think the gap stems from need. Most people only learn what they absolutely need to. My sister and I are just 3 years apart in age. Yet I am pretty familiar with tech, while she knows next to nothing. I was always there to fix whatever broke. Even now she knows that if she needs to watch something, she can just ask me to add it to my Jellyfin server. I often have to remote into her system to fix stuff.

The Gen Z we’re talking about here mostly grew up using phones, and phone OSes do their best to hide any complexity away from the user. So they never learnt anything. I’m also technically Gen Z (very early), but growing up in rural India, I had to teach myself how to pirate since streaming wasn’t a thing yet (our internet was too slow for that anyway), and the local theater didn’t play anything except local mainstream cinema.


Navidrome does that. I think you just used a bad frontend. Try Tempo if you’re using Android. Or Feishin on desktop.


I’ve been very happy with Navidrome. I have it accessible on a subdomain, so I can just use it from wherever I want. Feishin is a great frontend for Linux desktop, and Tempo is a great frontend for Android.

My friend uses Jellyfin instead of Navidrome, and he’s also happy with it. Both the frontends that I mentioned work with Jellyfin as well.


I’ve heard many people complain about DuckDNS. Personally use desec.io for DDNS and it’s been solid.


What I’ve realized in my (very limited) experience in selfhosting, it’s always best to use a general purpose server OS rather than anything geared to a specific usecase, unless that’s the only thing you’re gonna use it for. So, if you want a separate NAS drive, then it’s a good idea to use TrueNAS on it. But on your main server, it’ll be best to use some sort of RHEL downstream distro like AlmaLinux.


I use Syncthing and a bunch of rsync scripts to keep my machines in sync. The stuff I want synced continuously is handled by Syncthing. Other stuff is synced on a daily basis using the rsync scripts and anachron. For Photos, I use PhotoPrism. I simply sync the Photos from my smartphone to a folder and make PhotoPrism scan it on a regular basis using ofelia. For cameras, I need to copy the photos manually, but I don’t think there’s a way around that.


Don’t mean to necrobump. But I have Syncthing GUI working over a very similar setup. Let me know if you still need help setting it up.



I don’t keep any TV series after I watch them, unless someone else with access to my Jellyfin wants to watch too. So my collection is relatively small at a few terabytes.


Some people are also building a reverse proxy using pingora called river.



For media, I host the some of the arr apps, qbittorrent, Jellyfin, gpodder2go, and navidrome. For personal photos, I host PhotoPrism. I host a file sharing service fileshelter, and a link shortening service chhoto-url. I host Wiki.js for mostly recipes, and some notes. I’ve recently started hosting Forgejo for my git repos. I also host SageMath for computation, it’s especially useful when I only have my phone with me and need to use it. I use caddy as a reverse proxy and serve these through a VPS using a Wireguard tunnel.




Where are you, if I may ask? Their Intel offers are not based in the US. Most of the time, I’ll access it from inside US, so I’m worried about the latency.


Need suggestions for VPS
I want to get a new VPS. It'll mostly be used to host lightweight Docker images, and reverse proxying through Caddy. So, decent CPU and fast network speeds are the main things I need. I have a cheap VPS with RackNerd. It's fine, but only has a single CPU core, which gets overwhelmed if multiple connections are trying to pull stuff from some service. So, I guess having multiple cores is a requirement as well. I want to spend around $5/month, but willing to go a little higher if it's worth it. Any suggestions are appreciated. P.S. I'm based in US and would prefer something in here for lower latency. Update: Hetzner's CX22 IPV6 only plan seems to be very good in terms of price-performance ratio. But the servers are in Europe. I'm planning to try it out for a while and see how the latency is. It's great that they don't lock you in with yearly plans.
fedilink

Without anything extra, there are three ways of doing it:

  1. Using Tailscale Funnel
  2. Direct port forwarding in your router, and pointing to the IP using some DDNS provider (e.g. desec.io)
  3. Through Cloudflare tunnel (not recommended due to privacy reasons)

In each case, you’ll need a reverse proxy (e.g. Caddy) if you want secure https connections.

If you’re willing to spend money, the better way would be to proxy through a VPS (using something like a Wireguard tunnel). In that way, you won’t have to open ports on your home router. You can get a very cheap one since proxying doesn’t need much CPU power. Just choose one with enough bandwidth. I personally proxy most of my stuff through a $12/yr RackNerd VPS.



My setup looks like the following:

/etc/wireguard/wg-vps.conf on the VPS
-----------------------------------------------------
[Interface]
Address = 10.8.0.2/24
ListenPort = 51820
PrivateKey = ********************************************

# packet forwarding
PreUp = sysctl -w net.ipv4.ip_forward=1

# port forwarding 80 and 443
PreUp = iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.8.0.1:80
PreUp = iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.8.0.1:443
PostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 10.8.0.1:80
PostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to-destination 10.8.0.1:443

# packet masquerading
PreUp = iptables -t nat -A POSTROUTING -o wg-vps -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o wg-vps -j MASQUERADE

[Peer]
PublicKey = ********************************************
AllowedIPs = 10.8.0.1
/etc/wireguard/wg-vps.conf on my home-server
---------------------------------------------------------------
[Interface]
Address = 10.8.0.1/24
PrivateKey = ********************************************

[Peer]
PublicKey = ********************************************
AllowedIPs = 10.8.0.2
Endpoint = <VPS-DDNS>:51820
PersistentKeepAlive = 25

Now, just enable the tunnel using sudo systemctl enable --now wg-quick@wg-vps. Make sure that the port 51820, 80, and 443 are open on the VPS. Now, allow 80, 443 through the firewall on the home-server (not on the router, just allow it locally), and it should work.


I’m afraid that I don’t have any guides. But, you’re halfway there anyway. Which one of these methods do you prefer? I can maybe give you some pointers.


I have a wireguard tunnel set up between my home server and the VPS, with persistent keepalive. The public domain name points to the VPS, then I have it set up (simply using iptables) so that any traffic there in port 80 and 443 is sent back to my honeserver and there it’s handled by caddy, and sent to the actual service.

The only ports I need to open are 80 and 443 on my VPS to make this setup work. So, no open ports on my local machine. This does however require you to pay for VPS. Since you aren’t doing much on it though, you can get away with a cheap one. I have a $12/year VPS from Rack nerd that I use for this job.

For completely free options, you can do one of three things. (That I can think of. There are probably more ways.)

  1. Either open up some ports on your machine. You’ll need to make sure that you aren’t behind a CGNat for this. I simply don’t like opening ports to the internet, though.
  2. You can use a VPN. Tailscale works great for this. I use it personally for sshing remotely into my machines.
  3. You can use cloudflare-tunnels. Potentially bad privacy-wise since they can technically access the data. So don’t use it for sensitive stuff. Also, their policy doesn’t allow traffic that’s not mostly HTML. So something like a Jellyfin server would violate this. But you do get to use their firewall which is great for protection against DDOS attacks.

P.S. If you need help setting any of these up, lmk.



I currently use Wiki.js but it’s a bit too much. The image size is around 500MB. I don’t see why I need such a huge program for hosting essentially text files and some images.

From the comments, DokuWiki with a modern theme, Fossil-SCM, and MkDocs seem nice. I’ll probably try some of these during the weekend.


Hadn’t heard of it before. Looks promising, thank you.


Recommendations for lightweight wiki servers?
I currently run a personal wiki for some notes, recipes, and stuff. It's set up using Wiki.js as the server. I'm the only regular user, and I feel like it's a bit of an overkill. Does someone have any suggestions for a more lightweight wiki server? I tried DokuWiki and mostly like it. But the UI is very old and dare I say, ugly. I love the UI of Wiki.js btw. My main criteria is that it should be lightweight. I don't need fancy editing features. Happy to work with raw html or markdown files. I need some kind of permission management to hide some private wikis from the public, but otherwise I don't really care.
fedilink


That was the idea. But I’m not a functional programmer (not a programmer by profession at all lol), so I might’ve done something stupid. Hence the disclaimer. Thanks for confirming.


A tail-recursive version written in OCaml that should not reach stack limits easily. (Not an expert in OCaml, so this might be stupid. But I tried it with 10000 iterations, and it worked without any issues.)

let gnu =
    let rec aux s = function
    | 0 -> s
    | n -> aux (s^" is Not Unix") (n-1)
in aux "GNU";;


Try out fileshelter. It’s super lightweight and works pretty reliably.



Zulip is a little better in this regard. I’m involved in Lean, which uses Zulip as the primary mode of support and documentation. While it’s usable, I still think that a Discourse style forum is the way to go.


Adding to the discussion, if you want to watch anything that’s not mainstream (i.e. non-western, or arthouse), you’re basically supposed to either wait for it to stream on Mubi or get a Blu-ray/DVD (that are often out of circulation if it’s more than 5 years old). So the only real option is pirating.



Games are one of the very few things that I always pay for. Steam is mostly responsible for that. Also, music. But nowadays I do store some of my own music because I can have lossless that way.


I can’t permaseed for tv shows due to storage limits, so I use autoremove-torrents to automatically delete stuff based on the tracker.


I’m kinda in the same boat, except for a specific private tracker. It’s a local private tracker which has a ton of exclusive stuff in my native language, and most of the users also speak it so there’s a communal aspect to it. But otherwise, yeah. I also tend to prefer public trackers, especially for more mainstream stuff.


Should I replace my SSD?
cross-posted from: https://lemmy.sdf.org/post/5332699 > I have an SSD that's around 5 years old now. It used to be in my laptop. But then I upgraded my laptop and put it in a homeserver. It still works perfectly well but from what I've read, SSDs fail suddenly without much prior indications. > > Do you think I should replace it already? It's not running any super important stuff. If it dies, it'll just mean that my media servers will be down for a day, not a super big deal since I have regular backups. I feel bad creating unnecessary e-waste, so I'll love to know your experience with SSDs and how frequently do you usually replace them. > > Also, if you know a tool which can help me detect remaining lifespan of an SSD, that'll be very helpful. Thanks.
fedilink

Need suggestions for storage expansion in a mini pc
Hi all, I have a very simple homeland which consists of just one thinkcentre mini pc. I don't really need extra storage at this moment, but I think adding another disk for redundancy will be nice. The problem is, the mini pc only has space for one hard drive. What is the best thing to do in this case? Is the a reliable way to add an (ideally, with space to add more later) extra disk to it? I don't really want to get something like a Synology as I'm happy with the processing power etc. of this. Some way to expand the storage as directly as possible will be the best.
fedilink

YSK: There’s a website with seemingly never ending offers on VPS.
This is not an ad. I found this website and registered an account. Performance seems pretty good.
fedilink

What got you into selfhosting and what was the first thing that you hosted?
For me, it was PhotoPrism. I used to be an idiot, and used Google Photos as my gallery. I knew that it was terrible for privacy but was too lazy to do anything about it. When Google limited storage for free accounts, I started looking for alternatives. Tried out a lot of stuff, but ended up settling on PhotoPrism. It does most things that I need, except for multiple user support (it's there in the sponsored version now). It made me learn a bit about Docker. Eventually, I learned how to access it from outside of my home network over Cloudflare tunnel. I'm happy that I can send pics/albums to folks without sharing it to any third party. It's as easy as sending a link. Now I have around a dozen containers on a local mini pc, and a couple on a VPS. I still route most things through Cloudflare tunnels (lower latency), only the high bandwidth stuff like Jellyfin are routed through a wireguard tunnel through the VPS. Anyway, how did you get into selfhosting? (The question is mostly meant for non-professionals. But if you're a professional with something interesting to share, you're welcome as well.)
fedilink

Unable to forward ports using wireguard
## **Update:** Sorry guys, looks like I just needed to reboot the public server. My goal is to forward port `8096` from my private server to my public server. That, is any traffic at public server's port `8096` should be tunneled to port 8096 of my private server and back. I've set up a `wireguard` tunnel and `ping` is working from one device to the other. In this, `10.8.0.1` is the private server and `10.8.0.2` is the public server. Here are my config files (`/etc/wireguard/wg0`). ``` --- On the public server --- [Interface] Address = 10.8.0.2/24 ListenPort = 51820 PrivateKey = ***************************************** # packet forwarding PreUp = sysctl -w net.ipv4.ip_forward=1 # port forwarding PreUp = firewall-cmd --zone=public --add-port 8096/tcp PreUp = iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8096 -j DNAT --to-destination 10.8.0.1:8096 PostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 8096 -j DNAT --to-destination 10.8.0.1:8096 PostDown = firewall-cmd --zone=public --remove-port 8096/tcp # packet masquerading PreUp = iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE PostDown = iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE [Peer] PublicKey = ***************************************** AllowedIPs = 10.8.0.1 ``` ``` --- On the private server --- [Interface] Address = 10.8.0.1/24 PrivateKey = ***************************************** [Peer] PublicKey = ***************************************** AllowedIPs = 10.8.0.2 Endpoint = <public-server-addr>:51820 PersistentKeepalive = 25 ``` Now, I'm trying to test the connection using `netcat`. I'm listening from my private server using `nc -l 8096` (I've made sure that the port is unblocked) and trying to connect from a third device using `nc <public-server-addr> 8096` but it's not working. I have no idea what's going on here. Some help from experienced people is very appreciated.
fedilink


Suggestions for selfhosted recipe manager?
I like to cook, and for that I need a place where I can keep all my recipes. I'm currently using the app [My Recipe Box](https://play.google.com/store/apps/details?id=fr.recettetek). But it's closed source and full of ads. While the pro version is pretty cheap, I wanted to see if there were any open source apps for this. Selfhosted apps will be nice. I'm fine with web access and no native app as well. If not selfhosted, I can also manage with open source apps with automatic backup of some sort. The only feature that I really need is recipe scraping. Thanks for all your suggestions.
fedilink