Setup Work
IT Stuff
In order to set up the writing community software, I had to create a new subdomain and update my ddns-client software to keep the IP address up-to-date. The config file for this is in an ini format and is in my /usr/local/src directory, which can be a bit confusing since most of my other services are in /srv. That is except for routy which is even a bit more tricky.
So what is routy? It's a little reverse proxy service that @oorrwullie wrote and I helped a little. I used it to reverse back to this writing service on the domain write.pyrous.net. The code for this is in my /usr/local/src but the config file is actually in /var/routy/cfg.yaml. I always tend to forget where this is so I figured it would be good to write it down.
Software Configuration
I set up the software with a multi-user configuration. I can now use ./writefreely to add users at will. I also set it up with a Sqlite Database, which basically means it is saving to a single file on the filesystem. No biggie, it's fast enough for our needs.
Making a Backup
I realized that if multiple people are going to be adding work into this thing, I probably need to make sure their work doesn't get lost. It's all fine and dandy if I lose some work but losing someone else's work is unacceptable. My solution to this was to create a private repository in Github which I pay for a Pro License to host repositories. This repository only has one single file in it.
Great, but how do we automate the process? Cron jobs are great but instead, what about a timer? I used ChatGPT to help me work on a script for running the backup. Come to think of it, I probably should keep a copy of that script somewhere safe as well. Maybe I'll just commit it to the repo.
Edit: I have added a secret (unsearchable) gist at github to keep a copy of the script.
Final Result
We have a nice writing platform which works fairly well and has a backup system!