Claire's Journal

selfhosting

#linux #howto #selfhosting

Here you are with your very own statically generated website. You want to get that puppy up but you definitely don't want to resort to something that's a huge chore like S3 buckets. Well i have a solution for you. It's called BusyBox.

That's right and you probably already have it.

Just one caveat here before i show you how simple this can be. You will probably want some form of reverse proxy for SSL. If you already have one or plan to use something like cloudflared then read on.

Most people don't realize this but BusyBox has it's own HTTPD server:

$ busybox httpd -f -p 9393

for example will run an httpd server serving up $PWD on 9393

$ curl localhost:9393 hello

So the simplest thing that could possibly work is to create a service file in /etc/systemd/system name it something like myweb.service and it would look like this:

[Unit]
Description=BusyBox HTTP Server
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/var/www
ExecStart=/bin/busybox httpd -f -p 8000
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

now you can just do this as root:

$ sudo systemctl enable —now myweb

now your site at /var/www should be being served up on 8000. This is where you want to utilize your reverse proxy if you're serving up some SSL. These are so light with a proxy in front of them you can easily run several for different domains and services without feeling a pinch.

#linux #selfhosting

Here is a list of EVEN more tiny software that i dug up recently. I do not use all of it some of it where indicated.

Fair Camp

https://faircamp.org/

Faircamp is a static site generator which creates a complete website to present your music project. It's completely flat and static no moving parts. It is intended to look sort of like Band Camp and actually has quite a few features which allow you to change it's look. While keeping that Band Camp user experience.

You can toss it up anywhere. I'm using it here: https://fluxture.net

Rust Pad

https://github.com/ekzhang/rustpad

Rust Pad is a very light alternative to something like Etherpad. It's written unsurprisingly entirely in Rust. Making it very small. It runs very smoothly in docker and that is the preferred way to run it. One feature i like is the ability to automatically wipe the pads periodically so you can start clean. Currently in use.

Hyper8

https://hyper8.org/

Hyper8 is a static site generator for Video publishing. If you have an archive of video for a project you have going and you want to store a static version of that anywhere on a web host this might be for you. Much lighter than something like PeerTube if you want to archive media.

Rust Chan

https://github.com/csd113/RustChan

This is a self-hosted Image Board written entirely in Rust that you can run yourself. It's pretty light as far as image boards go. Love that it's a Rust project and modern rather than something as old as Kusaba-X.

#linux #nixos #selfhosting

I am compiling a list of really good tiny software which you can use to run all kinds of things. This is not intended to be comprehensive. I probably missed your favorite thing. I would love to hear about your favorite thing you should tell me.

Here are some things I am using or have considered using

Snac2

https://codeberg.org/grunfink/snac2

This is a very tiny single binary ActivityPub Server. You have several options and most linux package repositories seem to have it available. You can also use docker or just simply download a release binary. I recommend utilizing with custom systemd startup service.

Write Freely

https://writefreely.org/

Should you wish to do as I am currently this very moment and in fact Write Freely. Then uhm Write Freely is for you! This is a very tiny blogging software that runs in a similar fashion to snac2.

this is what the Write Freely systemd service looks like you could copy it for whatever else you want to run:

[Unit]
Description=WriteFreely Instance
After=syslog.target network.target
# If MySQL is running on the same machine, uncomment the following 
# line to use it, instead. 
#After=syslog.target network.target mysql.service

[Service]
Type=simple
StandardOutput=syslog
StandardError=syslog
WorkingDirectory=/var/www/example.com
ExecStart=/var/www/example.com/writefreely
Restart=always

[Install]
WantedBy=multi-user.target

Copy Party

https://github.com/9001/copyparty

“Portable file server with accelerated resumable uploads, dedup, WebDAV, SFTP, FTP, TFTP, zeroconf, media indexer, thumbnails++ all in one file.”

Wow that's a lot but it really is as good as advertised i can't actually tell you more than this. Do you like small things that do lots of stuff? Ya that's definitely Copy Party. Transfer all the things all the time everywhere i guess. The interface is quite good if you want to share a small number of things among a small number of people. It's pretty reasonable. A little retro but i like it.

Hugo

https://gohugo.io/

This is still the best choice for a statically generated blog alternative. If you want to edge cache something with no moving parts you're hard pressed to find something simpler to use than Hugo.

Owncast

https://owncast.online/

You want to live stream something. That's why you're here. I would say also that if you couple this with the obvious pair which is using OBS Studio you get quite a bit here. You can even list your little channel in their directory and people can find you. Very minimal setup to get going. Many VPS providers have templates already.

Tiny Ice

https://github.com/DatanoiseTV/tinyice

I have not yet tried this. It seems to have a built-in AutoDJ feature which is of special interest to me and perhaps you i don't really know. We don't know each other. Perhaps we are similar in our tastes?

Ergo

https://github.com/ergochat/ergo

Ergo is a very small IRCD. You remember IRC right it's like social media it even has #hashtags (they call them channels). You should try it. It's how old people used to communicate on the internet before Twitter. Ergo is low effort and pretty much zero maintenance. Put it everywhere.

Forgejo

https://forgejo.org/

Forgejo is a fork of Gitea. They share a code base originally but separated concerns over i believe ideological reasons. It's quite good and i prefer Forgejo now for no other reason than it's pretty cool and i like it. You have many options here and this is just my favorite one.