all repos — nirvash @ main

modular CMS using the quartzgun library

more robust path traversal prevention
Iris Lightshard
finish theme/wallpaper impl
Iris Lightshard
fix bg positioning, login template
Iris Lightshard


view within the cockpit of Nirvash


nirvash is a content management system (CMS) written in Go using the quartzgun library, designed to be efficient, modular, and easy to use. It uses an Adapter system that in theory allows almost any backend SSG to be used for actual page generation and backend storage. It’s inspired by Joost Van Der Schee’s Usecue CMS.

installation and configuration

Clone this repository and run go build to build nirvash. Just running ./nirvash from there, if you haven’t run it before, should run the configuration wizard (it runs if the config file found in your user’s config directory is missing or incomplete). The configuration file looks like:

adapter=eureka // one of the supported adapters, currently just eureka
root=/path/to/ssg/root // path to where your SSG content root is
assetRoot=/path/to/asset/root // path to the parent folder containing Nirvash static/ assets and templates/ directory (eg base directory of this repo)
staticRoot=/path/to/static/root // path to static file storage on your webserver
staticShowHTML=false // true or false, show HTML files in the file manager interface
staticShowHidden=false // true or false, show hidden files in the file manager interface
staticMaxUploadMB=25 // integer, maximum size in MB of files uploaded in the file manager interface
plugins=none // list of plugins to use, currently none are implemented

You can also set the configuration options by running eg nirvash configure adapter=eureka root=/var/www. Key-value pairs given on the command line are written to the configuration file, and pairs not listed are unmodified.

User management is done from the command line as well:


Running nirvash without any arguments starts the webserver on port 8080.

Initially the user will be presented with the login screen; upon successful login, the application presents the navbar with these options:

adapter interface

nirvash is extensible by Adapters that can interact with almost any static site generator under the hood.

The Adapter interface and associated data types can be found in the adapter.go file, but the basic interface looks like this:


nirvash is licensed under the MIT license.

git clone