Anonymous textboard for Gemini protocol
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.
 
 
 
 
 
CrunkLord420 75ec354072 BUGFIX: order thread replies 5 months ago
migrations init 6 months ago
openrc added OpenRC service 6 months ago
src BUGFIX: order thread replies 5 months ago
systemd init 6 months ago
tools/orphanposts forgot .env 6 months ago
.env init 6 months ago
.gitignore init 6 months ago
AGPL-3 init 6 months ago
Cargo.lock BUGFIX: order thread replies 5 months ago
Cargo.toml BUGFIX: order thread replies 5 months ago
LICENSE init 6 months ago
README.md added OpenRC service 6 months ago
config.toml.example init 6 months ago

README.md

GemBoard

Gemini Anonymous Textboard

GemBoard is an asynchronous and multithreaded anonymous textboard for the Gemini network protocol, built with the Rust programming language and Tokio.

System Requirements

Installation

Download

git clone https://git.kiwifarms.net/CrunkLord420/gemboard.git
cd gemboard

Build

cargo build --release

Setup PostgreSQL

Install diesel-cli

cargo install diesel_cli --no-default-features --features postgres

Initialize Database

  • Edit .env to match your PostgreSQL configuration
~/.cargo/bin/diesel setup

Configure

cp config.toml.example target/release/config.toml
  • Edit as needed after copying

Generate a self-signed TLS certificate and private key

openssl req -x509 -newkey rsa:4096 -keyout target/release/key.rsa -out \
target/release/cert.pem -days 3650 -nodes -subj "/CN=example.com"

Create Service (SystemD)

cp systemd/gemboard.service /etc/systemd/system/
systemctl enable gemboard.service
systemctl start gemboard.service
  • Edit gemboard.service to match your working directory

Create Service (OpenRC)

cp openrc/gemboard /etc/init.d/
rc-update add gemboard default
/etc/init.d/gemboard start
  • Edit init script to match your working directory

License

AGPL-3.0-only+NIGGER

AGPLv3