Alright now we're cookin'. I may see about writing up getting microblog.pub running as a service, on apache2, given the docs only really cover running it in Docker and under nginx. May also share the SCSS for my theme, because it's pretty easy to customize the colors on it!

in reply to this note

@cocoa@thread.seam.rip Hey! That's nice, please share!

I would like to add instructions on how to run Apache2 in the official doc if the steps are easy.

in reply to this note

@dev@microblog.pub Sure! The Apache2 config is fairly simple - certainly no more complex than the nginx one, anyway. I can grab mine as examples when I have some time.

The SCSS theme needs a little more tweaking before it's ready to share, I think - I keep noticing spots I missed styling, lol.

in reply to this note

@dev@microblog.pub Also - would there be any interest in an admin settings UI? I find having to shell into the box to update things on a site gets a little tedious after a while. I'll have to do some reading on FastAPI - I've worked mainly in Flask in the past - but I don't think it'd be too hard.

in reply to this note

@cocoa@thread.seam.rip I don't think so. Changing most settings require restarting all the processes. It would introduce a lot of complexity/be really hard to achieve with the current architecture.

in reply to this note

@dev@microblog.pub Oh point, I forgot the multi-process architecture. It'd still be possible, but yeah, way more work. Perhaps I will just start with editing and rebuilding the SCSS/CSS, because that doesn't require process restarts at all.

in reply to this note

@cocoa@thread.seam.rip Actually, the CSS file is cached by the browser (as a regular static file), and the hash is added as a query argument to invalidate the cache. So right now, it requires a restart.

in reply to this note

@dev@microblog.pub Okay, here's the apache configs. They're in two seperate files, because I use Let's Encrypt, so I start with the non-encrypted one and Certbot copies it to the encrypted version, though I think? you can have both in one file.

<VirtualHost *:80>
	ServerName thread.seam.rip

	ServerAdmin webmaster@localhost

ProxyPass "/"  "http://localhost:8000/"
ProxyPassReverse "/"  "http://localhost:8000/"
ProxyPreserveHost On
RewriteEngine on
RewriteCond %{SERVER_NAME} =thread.seam.rip
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

And the SSL one!

<IfModule mod_ssl.c>
<VirtualHost *:443>
	ServerName thread.seam.rip

	ServerAdmin webmaster@localhost

ProxyPass "/"  "http://localhost:8000/"
ProxyPassReverse "/"  "http://localhost:8000/"
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto "https" 

SSLCertificateFile /etc/letsencrypt/live/thread.seam.rip/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/thread.seam.rip/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

The ProxyPass, ProxyReverse, ProxyPreserveHeader, and RequestHeader lines are the important ones. The first three you will find in most Apache proxy write-ups but the RequestHeader is a bit of a gotcha, and missing it will cause weird errors with forms (as they try to post to HTTP and not HTTPS). The rewrite and SSL stuff is added by Certbot - you can start with just the HTTP version, minus the rewrite rules, run Certbot, and then get the updated version and SSL version (which needs the header option set)

in reply to this note

@cocoa@thread.seam.rip Amazing theme! I like how each post has a slightly different color, might add something similar to my site. Also, where did you get the background from? I've been struggling to find good tiling patterns.

in reply to this note

@dj@dj.je Subtle Patterns! It's my go-to for nice tiling backgrounds to add a bit of pop without being too in-your-face. I can't claim credit for the color variation idea - it's based on a custom LJ layout (the creator gave me permission for ports users ago). It some fun stuff with nth-child for the variations.