A minimalistic blog/portfolio starter written in Rust. No database, bloat or JS.

Related tags

Command-line rlog
Overview

rlog

Rlog is a minimalistic blog/portfolio starter project intended to be used for a personal blog.

The project is built using only Rust, HTML and CSS as to remain as lightweight and performant as possible.

Inspiration

Rlog was inspired by Bearblog, a similar project written in Django. If you're looking for a blog that you can edit online, definitely use Bearblog.

Usage

If you wish to use rlog for your own blog, it is recommended to fork the project, as to not interfere with the project's development.

Rlog is a self-hosted project, meaning that you will need to host it on your own server.

Without Docker

To build the project, you will need to have Rust installed on your machine.

To run the project, run the following command:

cargo run

This will start a server on localhost:8080, which you can access in your browser.

To build the project for production, run the following command:

cargo build --release

This will create an executable in the target/release directory, which you can run to start the server.

./target/release/rlog

You will have to move the rlog executable to the root of the project, so it has access to the posts, templates and static directories.

With Docker

Rlog can also be run using Docker. The Dockerfile and docker-compose.yml files are already provided in the project. All that is needed to run the project is to build the Docker image and run the container, using the following command:

docker-compose up -d

This will start a container running the project on localhost:8080.

Additional notes

To host the project on a server, you will need to configure a reverse proxy to forward requests to the service running the project. I will not go into detail on how to do this, as it is out of the scope of this project. Creating, running and hosting a service is not unique to rlog.

NOTE: This project is completely free to use and modify, all I ask is that you leave the made with rlog footer in the project.

Features

Currently, there are 4 distinct pages in the project:

  • Home
  • About page
  • Contact page
  • Blog page

The blog page is the only dynamic page in the project, as it reads the blog posts from a posts directory and parses, formats and displays them on the page.

Using the blog

Pages

Each of the pages in the project are stored in the templates directory. Each page is a directory containing a content.md file, a [page].html file and an meta.toml file.

The only thing you need to edit to customize the page is the content.md file, which is going to be the actual markdown content shown on the page.

You can also edit the browser title, meta description and navigation title in the meta.toml file.

Posts

The blog posts are written in markdown, while their metadata is stored in a TOML file. You will find an example of a blog post in the posts directory. The metadata file is used to store the title, slug and date of a blog post, while the markdown file has the actual content of the post.

Images

Images can be used in any of the markdown files. To use an image, you can use a URL of an image hosted online, but it is not recommended.

The best way to use an image in a post or page is to store the image in the static/assets directory and reference it in the markdown file.

You might also like...
Fast, deduplicated content and database seeding for WordPress

Sprout Fast, deduplicated content and database seeding for WordPress. Documentation | Install | Releases Store your uploads and database in a secure,

A tool that allow you to run SQL-like query on local files instead of database files using the GitQL SDK.
A tool that allow you to run SQL-like query on local files instead of database files using the GitQL SDK.

FileQL - File Query Language FileQL is a tool that allow you to run SQL-like query on local files instead of database files using the GitQL SDK. Sampl

Rust Imaging Library's Python binding: A performant and high-level image processing library for Python written in Rust

ril-py Rust Imaging Library for Python: Python bindings for ril, a performant and high-level image processing library written in Rust. What's this? Th

Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're working with files or directories, this tool simplifies common file operations with ease.

Rust FileOps Rust File Management CLI is a command-line tool written in Rust that provides essential file management functionalities. Whether you're w

Experimental engine agnostic 3D CSG library for game development written in Rust. Started as a port of csg.js to Rust.

brusher Experimental engine agnostic 3D CSG library for game development written in Rust. Started as a port of csg.js to Rust. ultimate goal My hope i

A minimal CLI framework written in Rust
A minimal CLI framework written in Rust

seahorse A minimal CLI framework written in Rust Features Easy to use No dependencies Typed flags(Bool, String, Int, Float) Documentation Here Usage T

comfy is a flexible command script manager / runner written in Rust

comfy is a cross-platform command script manager / runner tool, which allows you to run commands in the command line itself, but being these predefined in a portable and universal .comfy file.

⚡️ Lightning-fast and minimal calendar command line. Written in Rust 🦀
⚡️ Lightning-fast and minimal calendar command line. Written in Rust 🦀

⚡️ Lightning-fast and minimal calendar command line. It's similar to cal. Written in Rust 🦀

a cute shell thingy that written in rust
a cute shell thingy that written in rust

a cute shell thingy that written in rust

Releases(v1.2.0)
  • v1.2.0(Aug 11, 2024)

    What's Changed

    • feat: binary size optimization by @tumpa02 in https://github.com/tumpa02/rlog/pull/14
    • semver by @tumpa02 in https://github.com/tumpa02/rlog/pull/15

    Full Changelog: https://github.com/tumpa02/rlog/commits/v1.2.0

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Aug 11, 2024)

    What's Changed

    • feat: finished handlers, created post parsing by @tumpa02 in https://github.com/tumpa02/rlog/pull/1
    • Jt20240804 by @tumpa02 in https://github.com/tumpa02/rlog/pull/2
    • Merge dev -> master by @tumpa02 in https://github.com/tumpa02/rlog/pull/3
    • Merge dev -> master by @tumpa02 in https://github.com/tumpa02/rlog/pull/4
    • Jt20240807 docker by @tumpa02 in https://github.com/tumpa02/rlog/pull/5
    • Merge dev -> master by @tumpa02 in https://github.com/tumpa02/rlog/pull/6
    • feat: toml and md for each page by @tumpa02 in https://github.com/tumpa02/rlog/pull/7
    • Jt20240811 styling by @tumpa02 in https://github.com/tumpa02/rlog/pull/8
    • docs: refactored docs by @tumpa02 in https://github.com/tumpa02/rlog/pull/9
    • semver by @tumpa02 in https://github.com/tumpa02/rlog/pull/11
    • Merge dev -> master by @tumpa02 in https://github.com/tumpa02/rlog/pull/10

    New Contributors

    • @tumpa02 made their first contribution in https://github.com/tumpa02/rlog/pull/1

    Full Changelog: https://github.com/tumpa02/rlog/commits/v1.1.0

    Source code(tar.gz)
    Source code(zip)
Owner
jan
software engineer | infosec
jan
Ember is a minimalistic Rust library for creating 2D graphics, games, and interactive visualizations with ease and simplicity.

Ember Ember is a simple and fun 2D rendering library for Rust, allowing you to quickly create graphics and interactive applications with ease. It uses

null 8 May 4, 2023
A cross platform minimalistic text user interface

titik Titik is a crossplatform TUI widget library with the goal of being able to interact intuitively on these widgets. It uses crossterm as the under

Jovansonlee Cesar 113 Dec 31, 2022
Code examples for https://www.poor.dev/blog/terminal-anatomy/

This repository contains examples from the Anatomy of a Terminal Emulator blog post. Each folder contains a separate example and can be run separately

Aram Drevekenin 28 Dec 7, 2022
Blog de la comunidad en Español, promovemos el contenido de la comunidad e integramos el contenido oficial

???? Agrega tu articulo Pasos: Haz fork de este proyecto Crea un archivo Markdown en la carpeta articles Escribe tu articulo con este formato --- titl

RustLang en Español 9 Oct 30, 2023
A lightweight, embedded key-value database for mobile clients (i.e., iOS, Android), written in Rust.

A lightweight, embedded key-value database for mobile clients (i.e., iOS, Android), written in Rust. ⚠️ Still in testing, not yet ready for production

Tangent 6 Sep 25, 2023
🐢 Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

Ellie Huxtable 4.6k Jan 1, 2023
Download your Stripe account to a SQLite database.

tdog tdog is a CLI to download your Stripe account to a SQLite database. table.dog Sponsor development Install # macOS: curl -L --output /usr/local/bi

Table Dog 16 Oct 10, 2022
A general-purpose, transactional, relational database that uses Datalog and focuses on graph data and algorithms

cozo A general-purpose, transactional, relational database that uses Datalog for query and focuses on graph data and algorithms. Features Relational d

null 1.9k Jan 9, 2023
Integrate Mcfly with fzf to combine a solid command history database with a widely-loved fuzzy search UI

McFly fzf integration Integrate McFly with fzf to combine a solid command history database with a widely-loved fuzzy search UI Features: Advanced hist

null 11 Jan 25, 2023
A utility for exporting administrative/moderation statistics from your Lemmy instance's PostgreSQL database to InfluxDB!

Lemmy (Stats) Data Exporter About This Project This project aims to act as a bridge between Lemmy's PostgreSQL database and InfluxDB, primarily to tra

Russell 3 Jul 5, 2023