gmazza / tightblog

Streamlined Java-based blog server.
Other
17 stars 5 forks source link
blog-engine blogging cms java

TightBlog is a bottom-to-top rewrite of Apache Roller with much lesser-used functionality removed and new functionality added in (see below for details). Its goal is to satisfy the needs of 70-80% of bloggers while serving as a reliable starting point for other developers to fork and add additional customized features.

After contributing for about 2 1/2 years on Roller, I forked the codebase in May 2015 after I was unable to get team approval for simplifications I felt vital for the long-term growth of the project. As of 22 March 2020, Release 3.7.2 is available.

Screen shots for the TightBlog UI are here, the twelve-table database model is here, see also my blog for an example of a TightBlog-powered blog. TightBlog ships with three blog themes, for which bloggers may use directly, modify them per-blog, or create their own themes from scratch.

The table below shows the streamlining TightBlog has gone through in its first three releases since forking. Eliminating little-used functionality while switching to Gradle, Spring Boot, Spring REST API, Vue.js, etc. has made the code significantly easier to work with and a much more reliable starting point for forking and adding your own enhancements.

Product Released Database Tables Java Source Files (non-test) JSP Files Lines Of Code (including tests)
Apache Roller 5.1.2 1 Mar 2015 33 493 96 95.7K
TightBlog 1.0 17 July 2016 17 187 55 48.5K
TightBlog 2.0 4 June 2017 14 151 37 43.7K
TightBlog 3.0 23 June 2018 12 119 37 35.8K
TightBlog 3.5 16 June 2019 12 122 38 32.5K

Lines of code (LOC) above were based on OpenHub stats. The droppage would be even more significant were it not for increased test code coverage. CodeTabs provides a real-time comparator allowing one to see how much more streamlined TightBlog is over its predecessor:
(TightBlog) (Roller) (allow each link a minute or so to return.)

Some changes and new functionality added to TightBlog post-fork:

To obtain the source code:

To build the application (build/libs/tightblog-x.y.z.war) with Gradle and Java 11+: ./gradlew clean build from the TightBlog root.

Deployment information:

Be sure to first build the application as stated above. See Install pages for general installation instructions.

  1. Deploy as a WAR on standalone Tomcat: covered in above installation instructions.

  2. Deploy as a JAR using an in-memory database (non-production, demoing only). Modify the resources/application.properties to provide a Java keystore to support TightBlog's SSL (the file contains instructions for same.) Then run "gradle bootRun" from a command-line and TightBlog will be available at https://localhost:8443/tightblog. Note the in-memory database is deleted at each app shut-down.

  3. Deploy as a Docker container. Modify the docker/web/application-tbcustom.properties to add your keystore configuration and then from the docker folder run "docker-compose build" followed by "docker-compose up". The application will be at https://localhost/tightblog. Note that while tested locally, I have not used the Docker setup in production so it is perhaps best considered of Beta quality.