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.
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 -Fcontentemail@example.com
This manifest will checkout your code from
sources, build and upload the generated static files to
site using a wrapper script around
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.