My process for project identification has been:
As for how to deploy, docker / podman are great! With podman I’d recommend looking into their systemd integrations too. Incus is a neat LXC option too, meant more for longer term services (less micro service focused, good and bad).
Hope this helps!
What no love for Incus round these parts?
I see a lot of love for proxmox in this thread.
Word of warning from my experience, sometimes PfSense seems to get confused with virtual interfaces. It works flawlessly once it’s up and running, but every time I reboot I have to assign interfaces. It will hang until I do so and will not completely come back online until I manually intervene.
With the rise of these .md based personal knowledge database applications it would be amazing to see some conversion software.
I understand that each has their special sauce. Does anyone know what would be the most difficult part about building a tool like that to copy in Logseq data to SB for example?
You make a great point. I really shouldn’t contribute to the boogeyman-ification of port forwarding.
I certainly agree there is nothing inherently wrong or dangerous with port forwarding in and of itself. It’s like saying a hammer is bad. Not true in the slightest! A newbie swinging it around like there’s no tomorrow might smack their fingers a few times, but that’s no fault of hammer :)
Port forwarding is a tool, and is great/necessary for many jobs. For my use case I love that Wireguard offers a great alternative that: completes my goal, forces the use of keys, and makes it easy to do so.
I’ll assume you mean what I mean when I say I want to be safe with my self hosting – that is, “safe” but also easily accessible enough that my friends/family don’t balk the first time they try to log in or reset their password. There are all kinds of strategies you can use to protect your data, but I’ll cover the few that I find to be reasonable.
Port Forwarding – as someone mentioned already, port forwarding raw internet traffic to a server is probably a bad idea based on the information given. Especially since it isn’t strictly necessary.
Consumer Grade Tunnel Services – I’m sure there are others, but cloudflare tunnels can be a safer option of exposing a service to the public internet.
Personal VPN (my pick) – if your number of users is small, it may be easiest to set up a private VPN. This has the added benefit of making things like PiHole available to all of your devices wherever you go. Popular options include Tailscale (easiest, but relies on trusting Tailscale) or Wireguard/OpenVPN (bare bones with excellent documentation). I think there are similar options to tailscale through NordVPN (and probably others), where it “magically” handles connecting your devices but then you face a ~5 device limit.
With Wireguard or OpenVPN you may ask: “How do I do that without opening a port? You just said that was a bad idea!” Well, the best way that I have come up with is to use a VPS (providers include Digital Ocean, Linode to name a few) where you typically get a public IP address for free (as in free beer). You still have a public port open in your virtual private network, but it’s an acceptable risk (in my mind, for my threat model) given it’s on a machine that you don’t own or care about. You can wipe that VPS machine any time you want, the cost is time.
It’s all a trade-off. You can go to much further lengths than I’ve described here to be “safer” but this is the threshold that I’ve found to be easy and Good Enough for Me™.
If I were starting over I would start with Tailscale and work up from there. There are many many good options and only you can decide which one is best for your situation!
Ah! I think I see the confusion.
# /etc/subuid
privatenoob:100000:65536
This denotes the range of subuids that are available to your user.
-u 100000:65536
This part specifies two things ([UID]:[GID]) even though it’s the same syntax as the earlier part that specifies one range :)
I suspect what you will want to do is use the following:
# change ownership of the directory to the UID:GID that matches something in your subuid:subgid range, in this case 10000:10000
podman unshare chown -R 100000:10000 /home/privatenoob/media/storage1/Filmek/
Then we can specify that the user in the container can match the user (UID) we specified above:
ExecStart=podman run --name=radarr -u 10000:10000 -p 7878:7878 -v radarr-config:/config -v /home/privatenoob/media/storage1/Filmek:/data --restart unless-stopped lscr.io/linuxserver/radarr:latest
As a note, if you copy/pasted that ExecStart line, you might have gotten the invalid argument error because you entered 100000
(outside of your subuid range, i.e. >65536) instead of 10000
.
There’s a nice guide that gives a great walkthrough. I’ll dig through my bookmarks and add it here when I get some time.
Hope this helps!
There are a few ways around it. The simplest is to add the --privileged
option.
The more secure method with podman is by specifying a user (ex -u 10001:10001
) from your extended subuid:subgid range after your full and proper setup of rootless podman :-)
Then instead of chown
you’ll want to use the oddly named podman unshare
tool to automatically set the permissions of the host directory. You would then want to start your service with systemctl --user
instead of sudo systemctl
This is a bit of a Pokemon starter question. Just pick one and see where it takes you! They do roughly the same job, especially now that docker has a rootless mode. At the end of the day you’re learning a new technology and that’s a positive thing.