Manual Verification Scripting

Personally I would go with something like https://github.com/unixcharles/acme-client in your scenario. It’s a Ruby gem (=package), so you could write a Ruby script that takes care of the ACME bits and the other stuff you need to serve challenge files.

README contains a basic sample script. Getting the challenge file name and content is as simple as calling challenge.filename and challenge.file_content.

(Not to make this too Ruby-focused: There are similar libraries for other languages, take a look at the list of client implementations.)