Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A self-hosted blog system built with Spring Boot and Jekyll themes, offering an admin backend, visitor statistics, and Docker deployment.

Crisp, minimal personal website and blog theme for Hugo, forked from Ezhil.

Minimal Hugo blog theme built with Bootstrap 5, featuring LaTeX support, Disqus comments, and SEO-friendly templates.

A modern, feature-rich Hexo theme with card design, dark mode, and dozens of integrations.

Free Tailwind CSS blogging template from ThemeWagon with a minimalist multipage layout, blog pages, authentication page, and responsive design.
Treehole Jekyll is a self-hosted, non-static blog system built on Spring Boot and MyBatis with SQLite storage, designed to accept Jekyll themes and ship with its own admin backend and visitor statistics.
Treehole Jekyll (also called THole) is a Java-based blog platform that combines a Spring Boot application with a Jekyll-themed front end. Instead of being a static site, it runs a backend admin panel where you can write posts from any computer with a browser, and the system renders those posts through the theme you choose. It uses SQLite for data storage, follows a MyBatis persistence layer, and is versioned for JDK 8. The official distribution is a downloadable ZIP, and there is also a Docker image named zhangyw/treehole-jekyll. A live demo is available at http://blog.zhangyingwei.com.
zhangyw/treehole-jekyll and run the container with port 5000 exposed to launch the blog quickly without installing Java.The installation is either a ZIP package or a Docker image. For the ZIP route, download the JDK 8 build, run the install script, and if you hit a carriage-return error on Linux, install dos2unix and run dos2unix treehole.sh. For Docker, execute docker pull zhangyw/treehole-jekyll and then docker run -p 5000:5000 -d --name treehole zhangyw/treehole-jekyll:0.0.1. Once running, the blog is served on port 5000 and the admin panel is part of that process.
No. Treehole is a non-static blog with its own backend; it generates pages from the admin content using adopted Jekyll themes, but you don’t manually compile posts.
The official ZIP download is built for JDK 8 (Java 8). The Docker image avoids needing a local Java installation entirely.
If the treehole.sh script reports a carriage-return error, install dos2unix and run dos2unix treehole.sh before executing it.
The container maps to port 5000, as shown by the docker run -p 5000:5000 command.
Yes, the developer hosts a demo at http://blog.zhangyingwei.com.
