If I'm reading this correctly you're missing some of this: https://www.openbsd.org/faq/pf/rdr.html
Not sure what is sending this: "500 Internal Server Error" because you haven't mentioned your public IP setup. On Sat, Sep 7, 2024 at 1:58 PM Am Jam <intd...@gmail.com> wrote: > Hi Everyone, > > I am trying to host my ebook collection via the "Calibre Content Server" > (i.e., calibre-server) on OpenBSD 7.5, but I am having a problem with my > /etc/httpd.conf. > > My ebooks (comprising epub, mobi, and pdf files) are located in > /var/calibre/library. > > I've created a dedicated user, _calibre, to run the server, and I do so > like this: > > # doas -u _calibre calibre-server --port=8004 /var/calibre/library > QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to > '/tmp/runtime-_calibre' > calibre server listening on 0.0.0.0:8004 > OPDS feeds advertised via BonJour at: 192.168.1.78 port: 8004 > _ > > When I do this, I can, from another computer within my network, navigate > to http://192.168.1.78:8004 and read my ebooks. So far so good. > I now want to access the same webpage from outside of the network using a > domain I've purchased; however, I keep getting the following httpd error > when I navigate to my URL: > > 500 Internal Server Error. > > > Am I missing something obvious? > > > Many Thanks. > > > /etc/httpd.conf: > > ### Calibre > ### https://lit.mydomain.io ### > server "lit.mydomain.io" { > listen on * tls port 443 > > # enable HTTP Strict Transport Security > hsts { > preload > subdomains > max-age 15768000 > } > > tls { > certificate "/etc/ssl/mydomain.io.fullchain.pem" > key "/etc/ssl/private/mydomain.io.key" > } > > location "/.well-known/acme-challenge/*" { > root "/acme" > request strip 2 > } > > # set logs > log { > access "calibre-access.log" > error "calibre-error.log" > } > > # set max upload size to 1G (in bytes) > connection max request body 1048576000 > connection max requests 1000 > connection request timeout 3600 > connection timeout 3600 > > # calibre access points > location "/*" { > fastcgi socket tcp "127.0.0.1" 8004 > # fastcgi socket tcp "192.168.1.78" 8004 > } > } > > ### http://lit.mydomain.io > server "lit.mydomain.io" { > listen on * port 80 > > location "/.well-known/acme-challenge/*" { > root "/acme" > request strip 2 > } > > location * { > block return 302 "https://$HTTP_HOST$REQUEST_URI" > } > > } > > > > /etc/acme-client.conf: > > $ less /etc/acme-client.conf > authority letsencrypt { > api url "https://acme-v02.api.letsencrypt.org/directory" > account key "/etc/acme/letsencrypt-privkey.pem" > } > > authority letsencrypt-staging { > api url "https://acme-staging.api.letsencrypt.org/directory" > account key "/etc/acme/letsencrypt-staging-privkey.pem" > } > > domain mydomain.io { > alternative names { www.mydomain.io, pub.mydomain.io, > img.mydomain.io, src.mydomain.io, tar.mydomain.io, lit.mydomain.io } > domain key "/etc/ssl/private/mydomain.io.key" > domain certificate "/etc/ssl/mydomain.io.crt" > domain full chain certificate "/etc/ssl/mydomain.io.fullchain.pem" > sign with letsencrypt > } > > > >