From ddfc28b7c53841ece5f53fa5deaa3f5a332bf12f Mon Sep 17 00:00:00 2001 From: Al Beano Date: Wed, 24 Aug 2016 20:01:48 +0100 Subject: [PATCH] initial commit --- README.md | 16 ++++++++++++++++ httpd.conf | 12 ++++++++++++ tormon/tormon.fcgi | 25 +++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 README.md create mode 100644 httpd.conf create mode 100644 tormon/tormon.fcgi diff --git a/README.md b/README.md new file mode 100644 index 0000000..6f80805 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +```sh +pkg_add curl # if you don't have it already +mv /var/www /var/www.old # clean out OpenBSD's default guff +mkdir -p /var/www/logs /var/www/run /var/www/perl5 /var/www/tormon +chown www:www /var/www/run +install -o www -g www -m 0400 httpd.conf /etc/ +echo "permit nopass root as www" >> /etc/doas.conf +curl -L https://cpanmin.us | perl - App::cpanminus +cpanm -l /var/www/perl5 FCGI +perl -I /var/www/perl5/lib/perl5 -MFCGI -M5.010 -e 'say "it works"' # test perl installation +install -o www -g www -m 0500 tormon/* /var/www/tormon/ +echo 'echo -n "Starting tormon" && doas -u www /var/www/tormon/tormon.fcgi &' >> /etc/rc.local + +# updating +install -o www -g www -m 0500 tormon/* /var/www/tormon/ +``` diff --git a/httpd.conf b/httpd.conf new file mode 100644 index 0000000..d65329d --- /dev/null +++ b/httpd.conf @@ -0,0 +1,12 @@ +server "default" { + no log + listen on :: port 80 + listen on :: tls port 443 + tls { + certificate "/etc/letsencrypt/live/tor.uptime.party/fullchain.pem" + key "/etc/letsencrypt/live/tor.uptime.party/privkey.pem" + } + location "*" { + fastcgi socket "/run/tormon.sock" + } +} diff --git a/tormon/tormon.fcgi b/tormon/tormon.fcgi new file mode 100644 index 0000000..ada38b8 --- /dev/null +++ b/tormon/tormon.fcgi @@ -0,0 +1,25 @@ +#!/usr/bin/perl -I /var/www/perl5/lib/perl5 +use 5.010; +use strict; +use warnings; +use FCGI; + +my $sock = FCGI::OpenSocket( + "/var/www/run/tormon.sock", + 5, +); + +my $request = FCGI::Request( + \*STDIN, + \*STDOUT, + \*STDERR, + \%ENV, + $sock, + 0, +); + +while ($request->Accept() <= 0) { + say "Content-Type: text/plain\n\n"; + use Data::Dumper; + print Dumper(\%ENV); +}