A static mail HTML archive for the 21st century, written in Rust

Overview

🦀 Crabmail 🦀

self-hosted / github mirror

A static mail HTML archive for the 21st century, written in Rust. Includes helpful "modern" features that existing solutions lack, like:

  • Responsive UI
  • Single-page threads
  • Working mailto: links
  • Thread-based Atom feeds

Not implemented yet / designed:

  • Attachment handling?
  • Gemini support

EMAIL FOREVER!

lists.flounder.online demo

Installation and usage

To use crabmail to host your own archive-first mailing list, check out Self-hosted Archives-first Mailing Lists in 2022

To install:

git clone git://git.alexwennerberg.com/crabmail/
cd crabmail && cargo install --path .

Copy crabmail.conf and set the variables as needed.

Get a maildir folder, for example, via mbsync. Crabmail will create sub-lists for each folder inside this maildir.

Run crabmail [maildir root] -c [config-file.conf].

For more thorough documentation, run man doc/crabmail.1. You can also move these wherever your docs manpages may live

If you want to use an mbox file (for example, to mirror another archive), use mblaze to import it into a maildir. Mblaze also has some tools that you may find supplementary to crabmail.

Open site/index.html in a web browser

Contributing

For patches, use git-send-email or git-format-patch to send a patch to the crabmail mailing list

git-format-patch is preferred for non-trivial or multi-commit changes

You can also use this mailing list for bug reports or questions

Etc

Crabmail is AGPLv3 licenses, but some files are licensed under 0BSD or other more permissive licenses. I call this out when I can.

For a similar project, check out bubger

Consider supporting me and my projects on patreon

You might also like...
A Discord bot for sending GeoGuessr challenge links that uses the GeoGuessr API written in rust.

GeoGuessr-bot-rs This is a simple implementation of a discord bot that send GeoGuessr-challenge links on demand. Features: Slash-commands Lightning-fa

Some tools for streaming frames to rpi-rgb-led-matrix using ZeroMQ, written in Rust.

led_matrix_zmq Some tools for streaming frames to rpi-rgb-led-matrix using ZeroMQ, written in Rust. This repository includes: Rust client and server l

A gui api explorer written in Rust.

Zzz - GUI Api platform Pronounced "Zees"; as in "catching some Z's". A pun on RESTful APIs. example URL: https://jsonplaceholder.typicode.com/todos/ T

Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices
Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices

Cross-platform GUI written in Rust using ADB to debloat non-rooted android devices. Improve your privacy, the security and battery life of your device.

A variation of the solana helloworld program example with a client written in Rust instead of Typescript

Simple Solana Smart Contract Example This repository demonstrates how to create and invoke a program on the Solana blockchain. In Solana the word prog

A powerful minecraft bedrock software written in Rust with a powerful Typescript plugin API.
A powerful minecraft bedrock software written in Rust with a powerful Typescript plugin API.

Netrex A powerful minecraft bedrock software written in RustLang. Why Netrex? It's written in Rust. Unique and straight to the point. Typescript Plugi

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Alternative implementation of the Bitwarden server API written in Rust and compatible with upstream Bitwarden clients*, perfect for self-hosted deploy

oreboot is a fork of coreboot, with C removed, written in Rust.

oreboot is a downstream fork of coreboot, i.e. oreboot is coreboot without 'c'.

s3d is an S3 daemon for the Edge written in Rust
s3d is an S3 daemon for the Edge written in Rust

s3d is an S3 daemon for the Edge written in Rust The goal of s3d is to provide a daemon for edge platforms (e.g. factory servers 🏭 planes 🛩 ships 🚢

Owner
Alex Wennerberg
seeking digital self-reliance
Alex Wennerberg
Explore the WWW and find the shortest path between two HTML documents

explore Find shortest path between two web resources. About I decided to create this project because some day I started to wonder: In how many clicks

Eryk Andrzejewski 1 Apr 10, 2022
A "cursed" container with opaque keys, usable as a static variable

cursedcontainer Please, for the love of all things good in the world, do not use this crate unless you've read the code thoroughly and understand the

the iris system 4 Mar 17, 2022
An unsafe botched job that doesn't rely on types being 'static lifetime.

An unsafe botched job that doesn't rely on types being 'static lifetime. Will panic if provided a 0 field struct. I will fix this when I figure out how.

twhite 0 Feb 4, 2022
A highly modular Bitcoin Lightning library written in Rust. Its Rust-Lightning, not Rusty's Lightning!

Rust-Lightning is a Bitcoin Lightning library written in Rust. The main crate, lightning, does not handle networking, persistence, or any other I/O. Thus, it is runtime-agnostic, but users must implement basic networking logic, chain interactions, and disk storage. More information is available in the About section.

Lightning Dev Kit 850 Jan 3, 2023
A language server for lua written in rust

lua-analyzer lua-analyzer is a lsp server for lua. This is mostly for me to learn the lsp protocol and language analysis so suggestions are helpful. T

null 61 Dec 11, 2022
Opensource diagnostic software for Daimler vehicles, inspired by Xentry and DAS, written in Rust

OPENSTAR An opensource diagnostic application for Daimler vehicles inspired by DAS and Xentry. Some of the work here is based on OpenVehicleDiag If yo

Ashcon Mohseninia 21 Nov 20, 2022
Benchmarking web frameworks written in rust with rewrk tool.

Web Framework Benchmarks Benchmarking web frameworks written in rust with rewrk tool.

null 103 Dec 8, 2022
Yet another ROS2 client library written in Rust

RclRust Target CI Status Document Foxy (Ubuntu 20.04) Introduction This is yet another ROS2 client library written in Rust. I have implemented it inde

rclrust 42 Dec 1, 2022
A little bit fast and modern Ruby version manager written in Rust

A little bit fast and modern Ruby version manager written in Rust Features Pure Rust implementation not using ruby-build Cross-platform support (macOS

Takayuki Maeda 510 Jan 5, 2023
Music bot written in Rust

Akasuki What is Akasuki? Akasuki is a simple discord music bot written in rust. Highlights Select your music using discord's new select menu feature,

Forbidden A 0 Dec 19, 2021