Moving to Cloudflare (2025)
Posted on Wed 16 July 2025 in blog
Part of the "setup" series:
Moving to Cloudflare
Any blog update is a simple push to GitHub now. Also, by handing over all the burden to Cloudflare resp. GitHub, maintainance of a local Node environment is no longer necessary.
Github
So far, there has been no remote repository and hosting is useful for this reason alone. A package.json
has been added to allow the CF build process to set up necessary Node modules (katex, asciidoctor, etc.).
{
"name": "depot-js-dependencies",
"version": "1.0.0",
"description": "Node.js tools, needed for blog creation",
"dependencies": {
"katex": "^0.16.21",
"less": "^4.2.2",
"less-plugin-clean-css": "^1.6.0",
"asciidoctor": "^3.0.4",
"asciidoctor-katex": "^0.4.1"
}
}
Additionally, I learned a bit about GitHub Actions by setting up one that will maintain a requirements.txt
file, utilized later from the CF build (only pip, no native uv
support for the time being). With each push to GitHub, it will be recreated as necessary and the resulting repository state is pulled from CF Pages.
Cloudflare
The actual Pelican build starts here 1, leading to the website's final update. CF's GitHub integration had to be set up on both sides: GitHub must allow the Cloudflare App on the repository and the Pages project has to be connected to the GitHub repository during setup on CF.
In addition the blog's sub-domain was announced to CF and an additional apex domain CNAME record with the current provider was created.
Actualized Component List
Pelican | ||
---|---|---|
Flex Theme | heavily modified by now | locally maintained |
pelican-katex | KaTex support | " (changed) |
pelican-cite | BibTeX-based citations | " |
pelican-toc | article TOC's | " |
asciidoc_reader | AsciiDoc support | " |
series | Article series | |
pelican-more-categories | Additional Pelican categories | |
Markdown extensions | |
---|---|
Standard extensions: | attr_list ,footnotes |
Third-party: | mdx_include (Markdown includes) |
For all other things see the first article in this series
-
npm install && pip install -r requirements.txt && pelican content -s publishconf.py
↩