Website/CMS used at
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jeb Rosen 4a4eaea571 chore: update maud to 0.22 1 day ago
deploy Fix silly typo in sirus task for ansible. 1 year ago
src chore: reformat; remove a redundant #![warn] 1 week ago
.gitignore Add Rocket.toml to .gitignore 1 year ago chore: remove ETag and If-None-Match support 3 weeks ago
Cargo.lock chore: update maud to 0.22 1 day ago
Cargo.toml chore: update maud to 0.22 1 day ago
LICENSE-APACHE Re-license as dual MIT/Apache-2.0. Clarify license in ''. 1 year ago
LICENSE-MIT Re-license as dual MIT/Apache-2.0. Clarify license in ''. 1 year ago feat: redesign the site look and feel 2 months ago Move release build into the deployment tasks. 1 year ago


sirus (SImple RUst Site)


sirus uses the Rocket web framework and several unstable features, and therefore must be compiled with a nightly Rust compiler.

Beware, sirus sometimes depends on the master branch of Rocket and/or my own fork. Code in this repository may not always work in other projects.

Running and Deploying

sirus uses postgres by default, but can use sqlite instead if compiled with the appropriate features. When using sqlite, sirus has no runtime dependencies aside from libc (and rustc's musl target can be used to eliminate even that) by using the bundled feature or libsqlite3-sys.

sirus expects a Rocket database configuration with the name sirus and a url pointing to the site's database (postgres://user:pass@host/db or path/to/sqlite.db). The templates and the default css files are compiled in and do not need to be deployed separately.

Example deployment using systemd, for use with a reverse proxy:

Description=sirus web server for

Environment=ROCKET_DATABASES="{ sirus = { url = \"postgres://sirus@localhost/sirus" } }"



By default, a user with the name admin and password admin will be created. The administration page is located at /admin/. Here, users can be added and deleted and additional content files can be added and deleted.

Any files uploaded as content can be referenced from anywhere within the site; they are served at /static/<filename>. Files uploaded as content take precedence over default content files with the same name.

Default Content

The default content is defined in src/

  • sirus.css: base layout and theme style definitions

  • upload.js: file upload code for the site administration page

  • feed-icon.png: an RSS feed icon used for the blog post listing page

  • robots.txt: blocks off /admin from conforming web crawlers

  • site.css: blank by default; linked by the base template

  • favicon.ico: site icon


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.