this post was submitted on 07 Apr 2024
18 points (87.5% liked)

Selfhosted

39251 readers
185 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
 

Hello, I have a mumble server running as a docker container.

I'm using lego to generate let's encrypt certificates using dns challenge as an unprivileged user.

My problem is that I need to restart the mumble server so that it can reload the ssl certificate, which means restarting the docker container.

Is there any way to do this withuot adding the user to docker group, since there are security issues with that group where it's easy to escalate to a root user.

I thought about maybe a user level systemd service could be able to do it, but wan't to hear your opinions?

EDIT: I mention mumble specifically here, but this can apply to any server that requires manual reload of ssl keys, like postfix for example. I'm also not againd the idea of converting to something like kubernetes or even podman ( which would be harder cause of file permissions on all my binds ) if they can allow for woking on the container without root privileges.

you are viewing a single comment's thread
view the rest of the comments
[–] jlh@lemmy.jlh.name 1 points 5 months ago (1 children)

Kubernetes has user accounts that you could use to restart containers in an unprivileged way. Create a role and role binding that gives the "delete Pod" permission to a service account. Kind makes it very easy to run Kubernetes without any setup. You'd just need to convert your docker compose files to Deployments, Services, and PersistentVolumes.

If converting to a kubernetes setup is too big of a leap, you could maybe try to write a C program that uses setuid to gain docker privileges in a restricted way.

Probably easiest to just have a cronjob that restarts the container regularly, though.

[–] crony@lemmy.cronyakatsuki.xyz 2 points 5 months ago (1 children)

I have been thinking about moving to kubernetes, this just adds gives me another notch into doing it.

[–] jlh@lemmy.jlh.name 2 points 5 months ago

Yeah, there's definitely a learning curve since it's so different from docker, but there are some good tutorials and everything just makes sense. All the error messages are googlable and everything fits together so well.