chyrp-lite is a free, open source blogging & personal sites project written in PHP and released under BSD-3-Clause. It has 500 GitHub stars, 70 forks and 8 open issues, and was last pushed 33 hours ago. On this registry it ranks #32 of 34 tracked projects in Blogging & Personal Sites, with 5 head-to-head comparisons available.

What is chyrp-lite?

Chyrp Lite is an ultra-lightweight blogging engine written in PHP and released under the BSD-3-Clause licence, aimed at people who want to host a blog, a tumbleblog, or a broader publishing site on their own web server with minimal fuss.

What it is

Chyrp Lite is a self-hosted blogging engine written in PHP that runs on a conventional web server stack and stores its content in MySQL, SQLite, or PostgreSQL. It ships with six responsive blog themes and a friendly administration console, and it is built on W3C-validated HTML5 with semantic markup and comprehensive ARIA labelling so that the resulting site is navigable on a broad range of devices and usable with assistive technologies. Two structural ideas organise the product: Feathers, which define the types of blog content, and Pages, which publish articles separately from the blog stream, optionally including a homepage that visitors see on arrival.

The concrete problem it solves is hosting a blog on infrastructure you already control, without standing up a large content management system to do it. Installation is deliberately short, and the engine can be shaped into a traditional blog, a tumbleblog, or a general-purpose web publishing platform with blogging features on the side. Instead of depending on a third-party hosted service, the publisher unzips a release onto a web server, runs the installer, and keeps the content and the codebase on their own machine. Theme development is handled through the Twig template engine, and behaviour is extended through modules rather than by editing core files.

Key capabilities

  • Feathers provide distinct content types: Text, Photo, Quote, Link, Video, Audio, and an Uploader for multiple files.
  • Pages publish articles outside the blog stream, from a single colophon to a hierarchy of multiple pages with an optional homepage.
  • Authoring supports plain text, Markdown, or raw markup, with Chyrp-flavoured Markdown listed among the project topics.
  • Modules include Cacher for page caching, Tags, Categorize, Comments, Likes, Cascade for ajax-powered infinite scrolling, and Read More for excerpting long entries.
  • Interoperability and discovery modules include Mentionable for registering webmentions, Sitemap for search engine indexing, and Easy Embed for embedding content.
  • Security and anti-spam modules include Content Security Policy for a strict CSP header, Password Protection against account password attacks, and MAPTCHA using simple mathematics problems.
  • A comprehensive rights model manages users and visitors, and the interface is localized, with README translations in German, Italian, Korean, Dutch, Polish, and Simplified Chinese alongside English.

Who uses it and how

  • Individual publishers on shared or self-managed PHP hosting who unzip a release, upload it, and complete setup by visiting install.php in a browser.
  • Tumbleblog-style publishers who mix media by enabling the Photo, Video, Audio, Quote, and Link Feathers instead of restricting themselves to text.
  • Multi-author sites and communities that rely on the rights model together with the Comments, Likes, and Mentionable modules.
  • Operators hardening a public blog by enabling the Cacher, Content Security Policy, Password Protection, and MAPTCHA modules together.
  • Administrators deploying behind Apache, nginx, lighttpd, or Caddy 2, all of which appear in the project topics.

Getting started

Download the latest release, unzip it, upload it to a web server, and run the installation by visiting install.php; MySQL users create a database with a username and password first. Docker users instead review docker-compose.yaml, run docker compose up -d --build, and then visit install.php, on a host providing PHP 8.1+ with Multibyte String, PDO, and cURL.

How it compares

No list of paid products that Chyrp Lite replaces is provided in the facts, and no comparable blogging engines are named there either. It therefore stands alone in this registry, and the honest statement is that its positioning rests on its own terms: BSD-3-Clause licensing, self-hosting, and a small PHP footprint rather than on a documented contrast with named alternatives.

When to use it — and when not to

Choose Chyrp Lite if you can operate a PHP 8.1+ host with Multibyte String, PDO, and cURL, a supported database among MySQL 5.7+, SQLite 3+, and PostgreSQL 10+, and a web server you are willing to maintain, and if you want the publishing surface to stay small. It is a poor fit for anyone who wants a managed or hosted service, a non-PHP runtime, or database administration handled for them. The provided README excerpt also breaks off partway through the upgrading section, so upgrade guidance should be confirmed against the full documentation before committing a production site.

project readme (upstream, from github) — read inline

English, Deutsch, Italiano, 한국인, Nederlands, Polski, 简体中文.

What can Chyrp Lite do for me?

Chyrp Lite makes it possible to host a blog on your own web server with minimal fuss. You can have a traditional blog, a tumbleblog, or you can add oodles of customisation and build a general-purpose web publishing platform with blogging features on the side. You get six beautiful blog themes and a friendly administration console, all fully navigable on a broad range of devices, thanks to the power of responsive HTML5. Semantic markup and comprehensive ARIA labelling ensure your blog will be accessible to visitors who use assistive technologies.

With a flexible system of Feathers and Pages, you can make your website whatever you want it to be. Feathers enable different types of blog content – you can restrict yourself to absolute textual purity, or you can create a multimedia rainbow. Pages let you publish articles separate from your blog content – be it a simple colophon or a hierarchy of multiple pages, optionally including a homepage that your visitors will see when they first arrive at your website.

What are the key features?

Core:

  • Easy to install, simple to maintain, extensible by design.
  • Built with responsive and accessible W3C-validated HTML5.
  • Universal support for plain text, Markdown, or raw markup.
  • Personalise your blog using powerful extensions.
  • Theme development is easy with the Twig template engine.
  • Manage users and visitors with a comprehensive rights model.

Feathers:

  • Text: write textual blog entries.
  • Photo: upload an image.
  • Quote: make a quotation.
  • Link: link to another website.
  • Video: upload a video file.
  • Audio: upload an audio file.
  • Uploader: upload multiple files.

Modules:

  • Cacher: cache your blog pages for reduced server load.
  • Categorize: give each of your blog entries a category.
  • Content Security Policy: Adds a strict CSP header to the blog.
  • Tags: apply multiple searchable tags to your blog entries.
  • Mentionable: register webmentions from blogs that link to yours.
  • Comments: a comprehensive comments system for your blog.
  • Likes: allow your visitors to show their appreciation.
  • Read More: excerpt long blog entries on the blog index.
  • Rights: set attribution and copyright/left for your entries.
  • Cascade: ajax-powered infinite scrolling for your blog.
  • Lightbox: on-page image viewer with image protection.
  • Sitemap: index your blog for search engines.
  • MAPTCHA: use simple mathematics problems to prevent spam.
  • Highlighter: syntax highlighting for your code snippets.
  • Easy Embed: the easiest way to embed content in your blog.
  • Post Views: maintain a view count for your blog entries.
  • MathJax: a JavaScript display engine for mathematics.
  • Inject: use triggers and filters for content injection.
  • Notify: send notifications after events.
  • Password Protection: Impedes password attacks on user accounts.

Requirements

Installation

You can install Chyrp Lite in three steps:

  1. If using MySQL, create a MySQL database with a username and password.
  2. Download the latest release, unzip, and upload to your web server.
  3. Run the installation process by visiting install.php in your web browser.

If you prefer Docker, you can install in four steps:

  1. Download the latest release and unzip it.
  2. Read through docker-compose.yaml and modify if needed.
  3. Run docker compose up -d --build to build and start the container.
  4. Run the installation process by visiting install.php in your web browser.

Upgrading

You can upgrade Chyrp Lite in six steps:

  1. Backup your database before proceeding!
  2. Download the latest version of Chyrp Lite.
  3. Move your uploads folder and includes/config.json.php somewhere safe.
  4. Overwrite your current version with the new one.
  5. Restore your uploads folder and includes/config.json.php.
  6. Run the upgrade process by visiting upgrade.php in your web browser.

If you're using Docker, you can upgrade in four steps:

  1. Backup your Docker volumes before proceeding!
  2. Download the latest version of Chyrp Lite.
  3. Copy over any changes you've made to docker-compose.yaml.
  4. Run docker compose up -d --build.

There's no need to run upgrade.php if you're using Docker.

Security

HTML in posts and pages

By design Chyrp Lite allows authors to create posts and pages containing valid HTML, meaning that authored content may also contain JavaScript and CSS styles. This allows maximum freedom to authors, but it comes with a security risk if the blog administrator allows untrusted users to create posts and pages. If you want to allow untrusted users to create posts and pages, you should enable the Content Security Policy module to apply a strong Content Security Policy that disallows unsafe inline JavaScript and CSS.

Server-side request forgery (SSRF)

Chyrp Lite uses filter_var to categorize IP addresses as "safe" or "unsafe" using FILTER_VALIDATE_IP and the following flags:

  • FILTER_FLAG_NO_RES_RANGE
  • FILTER_FLAG_NO_PRIV_RANGE
  • FILTER_FLAG_GLOBAL_RANGE

Remote connections to "unsafe" IP addresses are denied or terminated before any data is sent, providing incomplete protection against server-side request forgery attacks. Complete SSRF protection in an environment such as Chyrp Lite, that must allow remote connections to user-defined endpoints, cannot reasonably be achieved at the application layer. Providing complete SSRF protection is considered out of scope for this project. If exposure to SSRF is a concern in your deployment environment, you should configure firewall rules that prevent outbound connections to IP ranges in the IANA IPv4 and IPv6 special registries.

Files accessible to visitors

After installation, these files are accessible to visitors:

  • LICENSE.md
  • README.md
  • README_de_DE.md
  • README_it_IT.md
  • README_ko_KR.md
  • README_nl_NL.md
  • README_zh_CN.md
  • SECURITY.md
  • install.php
  • themes/…/*.twig
  • tools/*
  • upgrade.php

There are no secrets in them, but you might want to restrict access.

Documentation

The Chyrp Lite wiki has comprehensive documentation for users and developers.

Authors

Chyrp Lite was created by the following people:

  • Lite Developer: Daniel Pimley
  • Chyrp Developer: Arian Xhezairi
  • Project Founder: Alex Suraci
  • Module authors and other contributors.

Licenses

Chyrp Lite is Copyright 2008-2026 Alex Suraci, Arian Xhezairi, Daniel Pimley, and other contributors, distributed under the BSD license. Please see the licenses directory for the full license text of all software packages distributed with Chyrp Lite.

Frequently asked questions

Is chyrp-lite free to use?

chyrp-lite is open source under the BSD-3-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does chyrp-lite do?

An ultra-lightweight blogging engine, written in PHP.

What is chyrp-lite written in?

chyrp-lite is primarily written in PHP. Its source is publicly available at https://github.com/xenocrat/chyrp-lite, and it has 500 GitHub stars.