🐇 super simple community platform :) https://tetratto.com
Find a file
2025-05-10 22:40:32 -04:00
.github chore: archive workflows 2025-05-03 19:33:03 -04:00
crates fix: log into next stored account on logout 2025-05-10 22:40:32 -04:00
example chore: bump deps 2025-05-07 21:59:10 -04:00
sql_changes add: stacks mode and sort sql 2025-05-09 15:56:40 -04:00
.env fix: compose post modal button 2025-04-08 22:13:55 -04:00
.gitignore add: everything else 2025-03-21 01:38:07 -04:00
Cargo.lock add: custom emojis 2025-05-10 21:58:02 -04:00
Cargo.toml chore: finish moving repo 2025-05-03 19:30:46 -04:00
justfile add: postgres support 2025-03-22 22:17:47 -04:00
LICENSE add: everything else 2025-03-21 01:38:07 -04:00
README.md chore: finish moving repo 2025-05-03 19:30:46 -04:00
rustfmt.toml add: ability to edit community title through ui 2025-04-02 18:44:31 -04:00
SECURITY.md Create SECURITY.md 2025-04-02 15:12:57 -04:00

🐇 tetratto!

Tetratto is a super simple community-oriented website where users can create various communities and share posts in them!

Usage

Everything Tetratto needs will be built into the main binary. You can build Tetratto with the following command:

cargo build -r --no-default-features --features=redis,sqlite

You can replace sqlite in the above command with postgres, if you'd like. Redis (or a Redis fork) is required for features such as chats and (realtime) notifications!

You can then take the binary and place it somewhere else (highly recommended; the binary will create a fair number of files!). You can do this to move it to a directory just called "tetratto" in the parent directory:

mkdir tetratto
mv ./target/release/tetratto ../tetratto
cd ../tetratto

Your first start of Tetratto might be a little slow as it's going to download all icon SVGs required for the HTML templates to render properly. These icons will be stored on disk, so there's no need to worry about this time every restart.

Configuration

In the directory you're running Tetratto from, you should create a tetratto.toml file. This file follows the configuration schema defined here!

Tetratto requires Cloudflare Turnstile for registrations. Testing keys are listed here. You can technically disable the captcha by using the always passing, invisible keys.

A docs directory will be generated in the same directory that you ran the tetratto binary in. Markdown files placed here will be served at /doc/{*file_name}. For other types of assets, you can place them in the generated public directory. This directory serves everything at /public/{*file_name}.

Usage (as a user)

Tetratto is very simple once you get the hang of it! At the top of the page (or bottom if you're on mobile), you'll see the navigation bar. Once logged in, you'll be able to access "Home", "Popular", and "Communities" from there! You can also press your profile picture (on the right) to view your own profile, settings, or log out!

All Tetratto instances support reports for communities and posts through the UI. You can just find the ellipsis icon on either and then press "Report" to file a report!

Updating

When bumping versions, you might need to run a few SQL scripts in order to get your database up to what the next commit expects. It is recommended to only update from GitHub release, which will list the SQL scripts you need to run to migrate your database.

Developing

All you really need to develop Tetratto is Rust and Just.

You can fix a lot of weird style issues and stuff using just fix. You need Clippy for this

You can also automatically bump all dependencies and point out unused ones with just clean-deps! You need cargo-edit and cargo-machete for this

Contributing

Read the "Contribution Guidelines" before contributing!

License

Tetratto is licensed under the AGPL-3.0.