Siru
Siru is a static site generator inspired by Hugo, built with Ruby.
Features
- Markdown content rendering
- Theme support
- Live server with reload
Installation
Via APT Repository (Ubuntu/Debian)
# Add the repository
echo "deb [trusted=yes arch=amd64] https://raw.githubusercontent.com/timappledotcom/siru-apt-repo/main/ stable main" | sudo tee /etc/apt/sources.list.d/siru.list
# Update package list
sudo apt update
# Install Siru
sudo apt install siru
Via .deb Package
wget https://github.com/timappledotcom/siru/releases/download/v0.2.0/siru_0.2.0_all.deb
sudo dpkg -i siru_0.2.0_all.deb
Via Flatpak
flatpak install --user siru-0.2.0.flatpak
Usage
Create a new site
siru new [sitename]Create a new post
Quick method (auto-generates and opens in editor):
siru new post "My Post Title"
siru new post "My Draft Post" --draft
This command will:
- Create a new markdown file in
content/posts/ - Generate a filename from the title (e.g., "my-post-title.md")
- Add proper front matter with title, date, and draft status
- Open the file in your default editor (set via
$EDITORor$VISUAL)
Manual method:
- Navigate to the
content/posts/directory. - Create a new Markdown file with TOML or YAML front matter:
+++
title = "My Awesome Post"
date = "2025-07-14"
draft = true
+++
Content goes here.
- Create a new page
- Navigate to the
content/directory (not insideposts). - Create a new Markdown file:
- Navigate to the
+++
title = "About Us"
date = "2025-07-14"
draft = true
+++
About us content.
Build the site
cd [sitename] siru buildServe the site
siru serve
Drafts
- Draft Mode: To include draft posts in your build or serve, add the
--draftoption.
siru build --draft
siru serve --draft
- Draft Status: Posts with
draft = truein their front matter will not be published unless the--draftoption is used.
Configuration
Siru sites are configured through a config.toml file in the root directory:
baseURL = "https://yoursite.com/"
languageCode = "en-us"
title = "My Awesome Site"
theme = "paper"
[params]
color = "linen" # Theme color: linen, wheat, gray, light
bio = "Welcome to my blog!"
twitter = "yourusername"
github = "yourusername"
mastodon = "https://mastodon.social/@yourusername"
bluesky = "yourusername.bsky.social"
Front Matter
Siru supports both TOML and YAML front matter:
TOML Front Matter
+++
title = "Post Title"
date = "2025-07-14"
draft = false
tags = ["ruby", "static-site"]
summary = "A brief summary of the post"
+++
YAML Front Matter
---
title: "Post Title"
date: "2025-07-14"
draft: false
tags: ["ruby", "static-site"]
summary: "A brief summary of the post"
---
Available Front Matter Fields
title: Post/page titledate: Publication datedraft: Whether the content is a draft (true/false)tags: Array of tags for the postsummary: Brief description (used in post lists)slug: Custom URL slug (optional)
License
This project is licensed under the terms of the GPL-3.0 license.