109 lines
3.5 KiB
Markdown
109 lines
3.5 KiB
Markdown
|
+++
|
|||
|
title = "My Tilde Site setup (2023)"
|
|||
|
date = "2023-01-30"
|
|||
|
updated = "2023-01-30"
|
|||
|
[extra]
|
|||
|
authors = ["Ydreniv"]
|
|||
|
tags = ["indieweb", "web", "meta"]
|
|||
|
+++
|
|||
|
|
|||
|
I’ve finally finalized my Tilde Towm website setup.
|
|||
|
There’s nothing too fancy, but several bricks to assemble.
|
|||
|
|
|||
|
## The core
|
|||
|
|
|||
|
The core of this setup is powered by [Zola](https://getzola.org).
|
|||
|
This is a nice static site generator, which can be run with a single binary.
|
|||
|
Unlike others, like Jekyll, there is no need to manage a whole Ruby/Python/…
|
|||
|
environment.
|
|||
|
I have put a Zola binary in my Tilde home, to use whenever I feel the need.
|
|||
|
|
|||
|
While typing Zola commands may be okay the first few times, I soon decided to
|
|||
|
automate things a bit.
|
|||
|
I’ve settled on using a simple Makefile, as it is quite standard, and easy
|
|||
|
enough to use.
|
|||
|
|
|||
|
```Makefile
|
|||
|
all: build
|
|||
|
|
|||
|
build:
|
|||
|
yes | ~/zola build -o ~/public_html
|
|||
|
```
|
|||
|
|
|||
|
It’s very simple, but means I only have to type `make` when compiling the
|
|||
|
website.
|
|||
|
And then, it means I can easily make things more complex.
|
|||
|
|
|||
|
## Indieweb
|
|||
|
|
|||
|
As part of my efforts to integrate this site to the Indieweb, I wamsel so be
|
|||
|
able to send webmentions.
|
|||
|
I’ve settled on using [Pushl](https://github.com/PlaidWeb/Pushl).
|
|||
|
It’s a CLI tool which caches it’s previous mentions, meaning it won’t send the
|
|||
|
same twice.
|
|||
|
So I’ve added a `pushl` stage to my Makefile, which is required by the `all`
|
|||
|
stage:
|
|||
|
|
|||
|
```Makefile
|
|||
|
pushl:
|
|||
|
. /home/ydreniv/venv-pushl/bin/activate ; pushl -c pushl-cache/ "https://tilde.town/~ydreniv/atom.xml"
|
|||
|
```
|
|||
|
|
|||
|
This is great, as it means webmentions will be sent automatically, without me
|
|||
|
having to do any cURL command manully.
|
|||
|
However, this accentuates an issue.
|
|||
|
How do I manage my test environment ?
|
|||
|
|
|||
|
## Test environment
|
|||
|
|
|||
|
At first, when I wanted to test something, I tested it live.
|
|||
|
It was okay.
|
|||
|
At most, one person would see a broken site, which would be fixed in the next
|
|||
|
minutes.
|
|||
|
Webmentions and feeds however make some things asynchronous.
|
|||
|
I could mess up a link, and ending up mentioning the wrong page.
|
|||
|
Or I could make a typo, build things, have the typo included in the feeds, and
|
|||
|
have a feed reader collect this feed before I fix it.
|
|||
|
While both are minor issues, it prompted me to setup a better developing
|
|||
|
environment.
|
|||
|
|
|||
|
At that point, I still didn’t have put anything on git.
|
|||
|
So I got a Gitea account, and git everything.
|
|||
|
This is not strictly needed, but it’s a great way to backup code or static
|
|||
|
site.
|
|||
|
This also means I’ll be able to see things like monthly changes.
|
|||
|
|
|||
|
Then, I created a webspace on my personal server, with sftp access.
|
|||
|
My workflow would be the following :
|
|||
|
I would build things on Tilde Town, send the output via sftp to my personal
|
|||
|
server.
|
|||
|
Then once I have checked that everything is fine, I would do the previous
|
|||
|
build+pushl to Tilde Town.
|
|||
|
|
|||
|
My current Makefile is the following :
|
|||
|
|
|||
|
```Makefile
|
|||
|
all: build pushl
|
|||
|
|
|||
|
build:
|
|||
|
yes | ~/zola build -o ~/public_html
|
|||
|
|
|||
|
pushl:
|
|||
|
. /home/ydreniv/venv-pushl/bin/activate ; pushl -c pushl-cache/ "https://tilde.town/~ydreniv/atom.xml"
|
|||
|
|
|||
|
preprod:
|
|||
|
yes | ~/zola build --base-url https://example.com/ydreniv --drafts
|
|||
|
echo "put -r public/* www" > sftp-batch.txt
|
|||
|
sftp -b sftp-batch.txt example.com
|
|||
|
rm sftp-batch.txt
|
|||
|
```
|
|||
|
|
|||
|
It’s not perfect, and the path difference (`~ydreniv` vs `ydreniv`) means that
|
|||
|
some links are broken.
|
|||
|
Moreover, somehow the test server doesn’t display non-ascii characters well.
|
|||
|
And there’s the issue of the sftp transfer as well.
|
|||
|
It’s very slow, and probably not optimized.
|
|||
|
Yet it’s good enough for me.
|
|||
|
I’ll have to improve it further, but that’s enough for now.
|
|||
|
|