Crates.io | webringer |
lib.rs | webringer |
version | 1.0.3 |
created_at | 2025-09-02 03:27:19.651531+00 |
updated_at | 2025-09-02 09:42:42.885044+00 |
description | A bin/lib crate for a webring site |
homepage | |
repository | https://codeberg.org/babalark/webringer |
max_upload_size | |
id | 1820573 |
size | 385,118 |
A crate for running a webring. It comes with a pre-made
GUI but you can just also add it to your project and use the ring
and site
modules and write your own HTML/CSS (see Using it as a library crate)
Run cargo install webringer
This runs on an SQLite database, with the path set in the config file (see Configuration), defaulting to cwd/data.db
.
The database will be automatically created when the program is executed.
Just run webringer
! If you don't have any configuration there are sensible defaults in place.
Then, open the website (whether hosted locally, on the web, etc), log into the default admin account (username: admin, password: admin), create a new admin account, AND DELETE THE OLD ONE. Now you're ready to go! Get your friends to add their sites to the webring!
Configuration is read from a .env
file, starting in the current directory and then checking all the parents.
Key | Usage | Default |
---|---|---|
DATABASE_URL |
The location of the database, in the format sqlite://relative/path/to/db |
sqlite://data.db |
MIN_CONNECTIONS |
The minimum number of connections kept in the SQL connection pool | 5 |
MAX_CONNECTIONS |
The maximum number of connections kept in the SQL connection pool | 20 |
ACQUIRE_TIMEOUT_SECS |
The maximum number of seconds to spend waiting for a connection | 10 |
IDLE_TIMEOUT_SECS |
Any connection that remains in the idle queue longer than this will be closed. | 300 |
If you'd rather use your own html templates/css, you can use the ring
and site
modules and
define your own main.rs
file. Your project should look something like this (excluding
development files like Cargo.toml
).
.
├── src
│ └── main.rs
├── static
│ ├── css
│ │ └── style.css
│ ├── 404.html
│ └── logo.svg
├── templates
│ ├── admin
│ │ ├── account
│ │ │ └── change-password.html
│ │ ├── account.html
│ │ ├── add.html
│ │ ├── landing_page.html
│ │ └── sites_view.html
│ ├── base.html
│ ├── index.html
│ ├── join.html
│ ├── list.html
│ └── login.html