39 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
+++
 | 
						|
title = "Zola website deployment with Drone CI"
 | 
						|
date = 2022-09-28
 | 
						|
 | 
						|
[taxonomies]
 | 
						|
categories = ["Linux"]
 | 
						|
 | 
						|
[extra]
 | 
						|
author = "Emil Miler"
 | 
						|
+++
 | 
						|
 | 
						|
Zola is my SSG of choice, as it it fast, powerfull and packed in a single statically linked binary. Here is how I use with in conjuction with Drone CI for automatic building and deployment to my webserver.
 | 
						|
 | 
						|
<!-- more -->
 | 
						|
 | 
						|
I have written a [bechelor's thesis](https://git.microlab.space/em/bakalarka) on static site generators and implementing a sample website with Zola in particular. Where my thesis lacks, though, is in the automatic deployment, where I botched together some Git hooks and shell scripts. It works fairly well, but it does not provide much feedback or code validity checks.
 | 
						|
 | 
						|
## Pipeline
 | 
						|
 | 
						|
The Drone pipeline has two main parts -- building and deployment itself. I chose to download a fixed version of Zola insted of using pre-made Docker images, because they were acting out during my testing. As of today, prebuilt Zola binaries still don't work with [musl libc](https://musl.libc.org/), so a Glibc based image is needed, such as Debian instead of Alpine.
 | 
						|
 | 
						|
Deployment is done using [drone-rsync](https://plugins.drone.io/plugins/rsync) plugin, whcich handles connection to a remove webserver and handles private keys via Drone secrets.
 | 
						|
 | 
						|
```
 | 
						|
```
 | 
						|
 | 
						|
## Webserver configuration
 | 
						|
 | 
						|
```
 | 
						|
create user
 | 
						|
create website directory
 | 
						|
check permissions
 | 
						|
```
 | 
						|
## SSH keys
 | 
						|
 | 
						|
```
 | 
						|
ssh-keygen -t rsa -b 4096
 | 
						|
```
 |