diff options
author | lassulus <lassulus@lassul.us> | 2022-08-10 14:40:50 +0200 |
---|---|---|
committer | lassulus <lassulus@lassul.us> | 2022-08-10 14:40:50 +0200 |
commit | b16de242e0f1560c42d14b71dccc0858d70643ec (patch) | |
tree | b6d8c8a153a92a94ec5417b1937600978e9d417f | |
parent | 79e75b27a9d8fc23a1731255b20831f708f9194a (diff) |
l paste: add /form endpoint for form posts
-rw-r--r-- | lass/2configs/paste.nix | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lass/2configs/paste.nix b/lass/2configs/paste.nix index affc35307..101899e94 100644 --- a/lass/2configs/paste.nix +++ b/lass/2configs/paste.nix @@ -61,6 +61,11 @@ with import <stockholm/lib>; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://127.0.0.1:${toString config.krebs.htgen.paste.port}; ''; + locations."/form".extraConfig = '' + client_max_body_size 4G; + proxy_set_header Host $host; + proxy_pass http://127.0.0.1:${toString config.krebs.htgen.paste-form.port}; + ''; locations."/image".extraConfig = '' proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -86,6 +91,33 @@ with import <stockholm/lib>; ". ${pkgs.htgen}/examples/paste" ]; }; + + krebs.htgen.paste-form = { + port = 7770; + script = /* sh */ '' + export PATH=${makeBinPath [ + pkgs.curl + pkgs.gnused + ]}:$PATH + (. ${pkgs.writeScript "paste-form" '' + case "$Method" in + 'POST') + ref=$(head -c $req_content_length | sed '0,/^\r$/d;$d' | curl -fSs --data-binary @- https://p.krebsco.de | sed '1d;s/^http:/https:/') + + printf 'HTTP/1.1 200 OK\r\n' + printf 'Content-Type: text/plain; charset=UTF-8\r\n' + printf 'Server: %s\r\n' "$Server" + printf 'Connection: close\r\n' + printf 'Content-Length: %d\r\n' $(expr ''${#ref} + 1) + printf '\r\n' + printf '%s\n' "$ref" + + exit + ;; + esac + ''}) + ''; + }; krebs.htgen.imgur = { port = 7771; script = /* sh */ '' |