Skip to content

lapidarium

Engine for a creator's portfolio site. You define the content types in the admin (sessions, songs, repos, talks, whatever you make); every entry is a page built from ordered parts: text, video, audio, image, file, link. The engine gives you lists, feeds, search, calendar, themes and an export of everything to plain markdown files.

Django, PostgreSQL, plain CSS, a little vanilla JS. No Node.

An instance is one site: one owner, one database, one theme. The engine is a container image; everything that makes the site yours is environment variables and content you enter in the admin or import from files.

Install

The image is built from main and every release tag:

docker pull ghcr.io/fancysnake/lapidarium:latest

It needs PostgreSQL and a handful of environment variables. Deployment walks through a production instance; Getting started runs one on your machine with a demo loaded.

Where to go next

  • Getting started: a local instance with demo content, in four commands.
  • Deployment: a new production instance, from the image to the first login.
  • Configuration: every environment variable, its default and what it changes.
  • Commands: the management commands for setup, import and export.
  • How it works: the content model, in one picture, and the principles behind it.
  • Content: profile, content types, fields and entries, set up from nothing.
  • Export format: the markdown files an instance exports and imports.
  • Themes: tokens, component classes and template overrides.
  • Architecture: how the code is laid out, for contributors.
  • Changelog: what changed in each release.