Deploying your static Zola website on Sourcehut Pages is very simple.
You need to create a .build.yml
manifest file in the root folder of your Zola project and push your changes to the
Sourcehut git/hg repository.
To create your .build.yml
file you can start with a template or use the following example:
image: alpine/edge
packages:
- hut
- zola
oauth: pages.sr.ht/PAGES:RW
environment:
site: your_username.srht.site
sources:
- https://git.sr.ht/~your_username/my-website
tasks:
- build: |
cd my-website
zola build
- package: |
cd my-website
tar -C public -cvz . > ../site.tar.gz
- upload: |
hut pages publish -d $site site.tar.gz
This manifest will clone your source code, build the website and upload the generated static files to the domain
you specified in site
.
For publishing the website, the build manifest uses hut
, a commandline tool which takes care of automatically
generating authentication tokens, so there is nothing else you need to do.
From this template you need to customize the variable site
with the domain that will host your website and
sources
to point to your Sourcehut git/hg public URL (in this example my-website
is the name of the repository).
Then commit and push your changes:
$ git push
Enumerating objects: 5, done.
...
remote: Build started:
remote: https://builds.sr.ht/~your_username/job/430625 [.build.yml]
To git.sr.ht:~your_username/www
fbe9afa..59ae556 master -> master
The build job will be automatically triggered. Notice that Sourcehut returns a direct link to the build page, where you can check the progress and success status.
By default you can use a subdomain of Sourcehut Pages to host your static website - your_username.srht.site
.
If you want to use a custom domain (e.g. "blog.mydomain.org"), you will need to configure a DNS record to point to
the Sourcehut server.
Instructions on how to do this are available on Sourcehut.