Sourcehut Pages

Deploying your static Zola website on Sourcehut Pages is very simple.

You only need to create a manifest .build.yml file in your root folder of your Zola project and push your changes to the Sourcehut git/hg repository. To create your .build.yml you can start by a template.

Example:

image: alpine/edge
packages: [ zola ]
oauth: pages.sr.ht/PAGES:RW
environment:
  site: www.example.org
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: |
      acurl -f https://pages.sr.ht/publish/$site -Fcontent=@site.tar.gz

This manifest will checkout your code from sources, build and upload the generated static files to site using a wrapper script around curl (called acurl, already available in all Sourcehut builds).

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.

By default you can use a subdomain of Sourcehut Pages to host your static website (e.g. "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 to do this are detailed on Sourcehut.