Website deployment is divided into two stages: one-time setup (where we create the infrastructure for hosting a website based on markdown content) and maintenance. The maintenance stage will be fully automated through continuous integration pipelines set up using Gitea locally to build the content and GitHub externally to host the content publicly.

Internal Services

There are various ways to self-host services. My personal preference is to leverage Unraid and their built-in Docker environment, which includes a large community-driven app store with many of the most popular self-hosted services. In cases where a service or template isn’t available on the community app store, Docker Compose can be used and managed through the same interface.

Required Services:

  • Gitea: Recommended for creating an organization to hold the Vault and Quartz repositories.
  • Gitea Runner

External Service

All public access is restricted to external servers. The content for the website will be stored on GitHub in a public repository, built via a GitHub Action using Quartz, and hosted on GitHub Pages. A custom domain name will be configured via Cloudflare.

Required Services:

  • GitHub
  • CloudFlare