The next part requires fossil, a decentralized version control system you can get at https://www.fossil-scm.org.
If you haven’t used git, it kinda like that. If you’ve used git, it’s very different. Your brain will be rewarded for know about both.
I install the single binary in /opt
, because I’m trendy.
I’m not going to cover using fossil. It took me a week of late nights bending my think, and I’m glad because I’ve always kinda hated git, and instead of “master” we have “trunk” which makes more sense to me because I belong in a tree (preferably suspended in a supportive, comfortable position, with free tree-wifi).
What you should know is that fossil is the kind of software sci-fi writes dream of, but in a non-sexy, practical way (unless you think knowledge preservation and situational awareness are sexy, in which case Bring Your Own Smelling Salts!). And it hosts it’s own website interface via CGI.
At this point if you aren’t excited, not sure I can help you, but we’ll continue.
Gonna make a fossil repo for the web config for allthe.io, and I’ll call it alltheio.fossil.
I keep my fossils in ~/.museum/
, because a regular fossil contributor mentioned it on hackernews or something and I thought it was cute and I don’t like seeing directories if I don’t have to (hence the dot).
Right now if I type fossil all list
:
/home/maiki/.museum/dotfiles.fossil
/home/maiki/.museum/stagingtest.fossil
So I go to .museum
and fossil init alltheio.fossil
:
project-id: c1065f2f1024c0fbfd0cd50494b61cdad9513a76
server-id: a189949d8f1db7044db055344247cc1748380c8e
admin-user: maiki (initial password is "UKJt6Eju7M")
I’m gonna change that password in a sec.
Fossils are SQLite databases. They work by “opening” them in a directory, and can be open in multiple directories at once so I guess there’s that git.
Let’s pop over to ~/projects/allthe.io
where our Hugo config is, and open it up.
$ fossil open ~/.museum/alltheio.fossil
project-name: <unnamed>
repository: /home/maiki/.museum/alltheio.fossil
local-root: /home/maiki/projects/allthe.io/
config-db: /home/maiki/.config/fossil.db
project-code: c1065f2f1024c0fbfd0cd50494b61cdad9513a76
checkout: 0a6f1aa2ae8d24032438d7c1d89b4f9c20aaa147 2020-08-09 01:00:54 UTC
tags: trunk
comment: initial empty check-in (user: maiki)
check-ins: 1
I like to do some prep work when I make a new fossil, which I do via the web UI. These tasks include:
- changing my password
- making the repo private; this is suggested as the default state to set a repo when putting it in online server mode, and opening up permissions as needed
- name, description
- changing default home page to README
When I type fossil ui
my web browser opens…
Say whaaaat? But I don’t have time to geek out with you!
I’m gonna do each of the things I listed, and in the future I’ll show what I did (or you can read like, 10 pages of docs and know everything about fossil).
I need to add the files to the repo before my README will show, so let’s do that real quick.
$ fossil add README.md COPYING config/_default/config.yaml
ADDED COPYING
ADDED README.md
ADDED config/_default/config.yaml
$ fossil commit -m 'hajime'
New_Version: 2b09d0319c2cdfc77ed00241a67ebaf0e76ce19bec93d01f855bb6c79b6b28fe
Cool, let’s check fossil ui
:
And “home” link:
That’s the README.md text! Noice.
You’ll notice I didn’t add the tule
theme; that ought to be in it’s own repo, so we won’t track it as part of this one. Also, tule
is designed to be immediately replaced, a bootstrap theme if you will. For this process we’ll be keeping it “unversioned” for now…
Alright, but wasn’t this about, um, hosting or something? Oh yeah! Let’s do that part next!