Lamb — Literally Another Micro Blog.

Barrier free super simple blogging, self-hosted. Read about the features.
Requirements
- PHP 8.2 – 8.5
- SQLite3, gettext, simplexml, mbstring, pdo_mysql extensions (pdo_mysql is required by the database library even though Lamb uses SQLite)
- gd extension, recommended: converts image uploads to WebP (without it originals are stored as-is)
Getting started
There are three ways to install Lamb. All of them track the stable release channel.
1. Docker image (easiest)
No PHP, git, or Composer needed on the host — just Docker:
# Generate a password hash first (any machine with PHP), or copy one from make-password.php output
docker run -d --name lamb -p 80:80 \
-e LAMB_LOGIN_PASSWORD='<your-hash>' \
-v lamb-data:/app/data -v lamb-assets:/app/src/assets \
ghcr.io/svandragt/lamb:latest
See Docker for details.
2. Release tarball
For shared hosting or servers without git/Composer. Download lamb-<version>.tar.gz from the releases page — it includes all dependencies:
mkdir lamb && tar -xzf lamb-<version>.tar.gz --strip-components=1 -C lamb
cd lamb
php make-password.php <your-password>
Point your webserver at the src/ directory (FrankenPHP or Nginx). Those pages also cover making data/ and src/assets/ writable by the webserver user.
3. Git checkout
Requires git and Composer:
# Checkout project - release branch is stable
git clone --branch release https://github.com/svandragt/lamb.git
cd lamb
composer install --no-dev
php make-password.php <your-password>
This route gets you the bin/upgrade script for one-command (or cron-driven) upgrades — see Upgrading.
Lamb can be run locally with the builtin PHP webserver, or with other tooling.
Verified setups
The well-travelled paths — verified automatically by the acceptance test suite — are the Docker image and Nginx (checked before every release by the release-verify workflow), FrankenPHP (same runtime as the Docker image), and the built-in PHP webserver (checked on every change). Devbox wraps the built-in webserver and is the maintainer’s daily development environment, so it is well-travelled too. DDev is a convenience wrapper and is not separately tested.
Deployment options
Webservers:
Containers:
Devtools / local environments / sandbox:
- DDev local environments wrapper around Docker. Convenient.
- Devbox portable, isolated, developer environments. Tidy.
- Local PHP setup DIY. Control.