!MthpOIxqJhTgrMNxDS:nixos.org

NixOS ACME / LetsEncrypt

104 Members
Another day, another cert renewal44 Servers

Load older messages


SenderMessageTime
11 Nov 2024
@arianvp:matrix.orgArianIt's just a static website if someone owns it I'll just make a new server 😂19:07:08
@arianvp:matrix.orgArianI don't have the ssh key anymore. If you are bored and wanna try to break in you have my consent 19:07:30
@emilazy:matrix.orgemilyit sounds like you need me to break in to get you your SSH key back19:08:08
@emilazy:matrix.orgemilylike smashing someone's windows to unlock the door from the inside for them19:08:19
@arianvp:matrix.orgArianNormalize machines with 10 years of uptime and some php 519:08:53
@arianvp:matrix.orgArianI need this to cope with npm version bumps during day job 19:09:18
@emilazy:matrix.orgemilythat makes me feel old because I remember PHP 4 being the hot new thing19:24:23
12 Nov 2024
@pfhuh:matrix.orgpfhuh joined the room.05:55:11
@thinkchaos:matrix.orgThinkChaosI toyed with GNU parallel to replace the locking, but it's not great to say the least. It tries to re-login as the user running it to start a daemon, and can helpfully do that over SSH for you... Doesn't work well with namespaces/locked down services. And it's Perl, so anyone using the "perlless" setup it'll cause forbidden deps issues22:51:32
@thinkchaos:matrix.orgThinkChaosAs they say, never meet your heroes, nor look at a popular program's code22:52:04
@emilazy:matrix.orgemilydid you remember to cite it?22:52:33
@thinkchaos:matrix.orgThinkChaosWhere?22:52:52
@emilazy:matrix.orgemilyit infamously nags you to cite it in academic publications if you use it. you have to promise it that you'll cite it.22:53:21
@emilazy:matrix.orgemilyhttps://git.savannah.gnu.org/cgit/parallel.git/tree/doc/citation-notice-faq.txt22:53:25
@emilazy:matrix.orgemilysome distros patch it out.22:53:30
@thinkchaos:matrix.orgThinkChaosI'm not going to make a PR with that, it's just not worth pursuing22:53:52
@thinkchaos:matrix.orgThinkChaoslol didn't know that22:53:57
@thinkchaos:matrix.orgThinkChaosI'll cite it's name in vain is what I'll do22:54:22
@thinkchaos:matrix.orgThinkChaos * I'll cite its name in vain is what I'll do22:54:28
@thinkchaos:matrix.orgThinkChaosBut yeah I think the best for the locking would be to write a small CLI tool that's less cursed and based on FIFOs so I'm playing with that22:55:03
@thinkchaos:matrix.orgThinkChaosWould avoid the whole round robin bit of code at the cost of one more daemon to manage the FIFO (since the FIFO's data is lost when the writer closes, so daemon required|22:55:57
@thinkchaos:matrix.orgThinkChaos * Would avoid the whole round robin bit of code at the cost of one more daemon to manage the FIFO (since the FIFO's data is lost when the writer closes, so daemon required)22:55:59
@thinkchaos:matrix.orgThinkChaos emily: how tempted are you by going nuclear and writing an ACME daemon?
Cause my view is it's easier to write the 2 small tools to move complexity out of the module and call it a day, and I'm willing to spend time on it. But I agree a fully NixOS blessed daemon would be the best solution, just sounds like a lot more work.
23:08:15
@thinkchaos:matrix.orgThinkChaosBasically asking if I should spend more time pursuing those 2 tools now23:08:30
@emilazy:matrix.orgemilyquite tempted, but please don't block any work on it, it is very far down my list of priorities23:08:41
@emilazy:matrix.orgemilyI have no plans to actively write an ACME implementation and even if I developed such plans I would not expect a deliverable before late 202523:09:00
@emilazy:matrix.orgemilyespecially since I consider Caddy-as-ACME-client to be basically good enough23:10:06
@thinkchaos:matrix.orgThinkChaosOk, then I'll have my fun with and experiment more23:11:41
13 Nov 2024
@m1cr0man:m1cr0man.comm1cr0man
In reply to @thinkchaos:matrix.org
emily: how tempted are you by going nuclear and writing an ACME daemon?
Cause my view is it's easier to write the 2 small tools to move complexity out of the module and call it a day, and I'm willing to spend time on it. But I agree a fully NixOS blessed daemon would be the best solution, just sounds like a lot more work.

I would want to get a set of concrete goals for whatever daemon you are thinking of here. There's features of the systemd implementation we absolutely want to keep, and things we are implementing to get around limitations.

I'm currently of the view that going nuclear isn't required. We can simplify the locking with systemd targets as I demonstrated before, and this is in line with how the account leader is implemented today. Some of the scripting can also be upstreamed to lego - specifically returning a different return code when certs are not expired but cannot be checked online. This only leaves some minor setup things to a daemon, plus perhaps evaluating a locking system.

I'm not going to say don't do it, this sort of passion to solve the problem can only result in positive improvement 😄 do bare in mind though that there's a lot of skeletons in the ACME module closet - so many edge cases we've engineered it to fit. There's good reason to keep the cert:service 1:1 mapping for many of the integrations that now exist, and if there is another way, it will need careful testing.

01:30:53
@thinkchaos:matrix.orgThinkChaos
In reply to @thinkchaos:matrix.org
For simplifying the max concurrency, sem from GNU parallel seems like the right tool: https://man.archlinux.org/man/sem.1
The cert ExecStart would look like sem --id nixos-acme --fg --max-procs ${cfg.maxConcurrentRenewals} 'lego ...'
The daemon thing is just for locking, basically replacing GNU Parallel in that^
01:35:01

Show newer messages


Back to Room ListRoom Version: 6