Don't use the kube stuff. That's entirely seperate from Quadlets and some sort of Kubernetes compatibility.
Selfhosted
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:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
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.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
Awesome, thanks!
In terms of architecture, which is preferred:
- separate pod per "app" (e.g. NextCloud), but all one network
- separate pod and network per app
- everything in one pod
I'd like to have one gateway, Caddy, so my cert renewal and proxying are all in one place, and I'd like those proxy configs to look like http://<container>
I'd prefer my containers not be able to talk to each other unless I specifically allow it. The second option would get me that, but I think it would force me to expose ports for each app to the system.
TL; DR - Can I have a "Caddy" pod that can see exposed ports from other pods, but hide those ports from regular system users? If not, I'll probably do the first option. I also want to be able to expose ports to the host on a per app basis if needed.
I ran a podman quadlet setup as a test some time ago. My setup was a little like this:
- Create a pod if the app uses multiple containers
- Create a seperate network for each app (an app is either a single container or multiple containers grouped in a pod)
- Add the reverse proxy container to all networks
- I don't expose any ports to the host unless necessary
If you create a new network in podman you can access other containers and pods in the same network with their name like so container_name:port
or pod_name:port
. This functionality is disabled in the default network by default. This works at least in the newer versions last I tried, so I have no idea about older podman versions.
For auto-updates just add this in your .container
file under [Container]
section:
[Container]
AutoUpdate=registry
Now there's two main ways you can choose to update:
- Enable
podman-auto-update.timer
to enable periodic updates similar to watchtower - Run
podman auto-update
manually
# Check for updates
podman auto-update --dry-run
# Update containers
podman auto-update
Awesome, that's exactly what I want! I guess I missed where pods could be part of multiple networks.
I'm on podman 4.x, but I'm planning to upgrade the OS anyway soon, so it probably won't be an issue.
Thanks, you're a stud!
I use one pod per app more or less. The reverse-proxy conf depends a bit on the specific app so that depends, but it will probably work for most by sharing a network and exposing the ports in the pods