OpenSource-Hub
A

algernon

SHA-256
3.0k stars·Developer Tools·SHA-256 checksum verified

Algernon is a small self-contained web server that bundles Lua, Markdown, Pongo2, Amber, Sass, JSX, multiple databases, user permissions and rate limiting in a single executable. Supports QUIC, HTTP/2, and plain HTTP out of the box.

Smart Download

Download Download Version

v1.17.7 · 15 MB

All-in-one self-contained web server with built-in Lua, Markdown, databases and HTTP/2/QUIC – zero config.

Core Features

  • Single executable, no external dependencies required
  • Native support for QUIC (HTTP/3), HTTP/2, and HTTP
  • Built-in Lua/Teal scripting for request handlers
  • Multi-format template rendering: Markdown, Pongo2, Amber, JSX/React
  • Support for BoltDB, SQLite, PostgreSQL, MySQL, MariaDB, Redis, Valkey, MSSQL

What It Can't Do

  • Requires Go 1.25+ for compilation. QUIC and HTTP/2 with TLS require valid certificates. Built-in BoltDB is suitable for small-scale single-machine data; for larger workloads, use PostgreSQL or external databases.

Use Cases

  • Quickly build a lightweight dynamic website or API with database integration
  • Embedded admin panel or microservice
  • Educational demos and rapid prototyping

Detailed Introduction

Algernon is a Go-based web server that packs everything into one tiny executable. It natively supports QUIC, HTTP/2, Lua scripting, Markdown rendering, Pongo2/Amber templates, JSX/React, and CSS preprocessors (Sass, GCSS). It can use BoltDB (embedded), PostgreSQL, SQLite, Redis, Valkey, MySQL, MariaDB, or MSSQL as databases. Built-in user permissions and rate limiting via Tollbooth. Perfect for rapid prototyping and small-to-medium web applications without complex setup.

Troubleshooting & FAQ (1)

How-to
How to create a public API endpoint that executes arbitrary SQLite queries in Algernon?

Upgrade to the latest main branch of Algernon. It now includes new Lua functions for SQLite that allow you to set up a public route and run arbitrary SQL. In your serverconf.lua, clear default permissions and define a custom HTTP handler that calls these SQLite functions. Check the documentation or example scripts for exact usage.

GitHub Issue #156

Tags

web serverluamarkdownhttp2quicgogolangdatabasetemplatereact

Getting Started

1

Download installer

Click the button above to download the installer for your system

2

Install the software

Install the appropriate package for your distro (dpkg / rpm / AppImage)

3

Download the Algernon binary for your platform (or `go install github.com/xyproto/algernon@latest`)

4

Place an index.md, index.lua, or other supported file in a directory

5

Run the executable; open http://localhost:4000 in a browser

Install Guide
  1. Download the Algernon binary for your platform (or `go install github.com/xyproto/algernon@latest`)
  2. Place an index.md, index.lua, or other supported file in a directory
  3. Run the executable; open http://localhost:4000 in a browser
File Integrity

SHA-256 checksum verified

Checksum extracted from GitHub official Release page

SHA256 Checksum

6feeb5c4b947429b8d24bb19a1f8fac688b4957092259d431686acce60a94840

This checksum is extracted from the GitHub Release page. Verify file integrity after download.

All SHA-256 checksums on this platform are extracted from the project's official GitHub Release page, without any modification. You can independently verify them on the GitHub Releases page.

Open Source Transparency

View GitHub Source
Environment Guide

Uninstall Info

Delete the Algernon binary. If installed via `go install`, run `rm $(which algernon)` or remove from Go module cache.

No Extra Dependencies

Ready to use after download. No additional runtime required.

Project Info
LicenseBSD
Last Updated2026-06-27 04:25:32
GitHub RepositoryOfficial Website

Having issues? Check the FAQ below

1 FAQ

Similar Projects