- Rust 74.8%
- HTML 8%
- JavaScript 7%
- CSS 6.7%
- Shell 1.5%
- Other 2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks are pending
Build and Push Docker Images / build-and-push (push) Waiting to run
doc: announce archival |
||
| .github/workflows | ||
| api | ||
| frontend | ||
| migration | ||
| web | ||
| .editorconfig | ||
| .env.example | ||
| .envrc | ||
| .gitignore | ||
| biome.json | ||
| Cargo.lock | ||
| Cargo.toml | ||
| docker-compose.override.yml | ||
| docker-compose.yml | ||
| download.sh | ||
| justfile | ||
| LICENSE | ||
| petring-api.toml | ||
| petring-web.toml | ||
| README.md | ||
| rustfmt.toml | ||
| shell.nix | ||
PetRing & PetAds
Note
As of 2026-03-30, PetRing and Collar will be archived.
This is due to the jess museum discord server going defunct and the lack of interest in maintaining it.
If you'd like to extend or improve this, feel free to fork it.
If you want to actually maintain it and make it general purpose, please make an issue request and i'll hand you the ownership.
Just please dont give me a request just to then abandon it yourself.
Warning
This project is in an early ALPHA and is not ready for any serious usecase
Bugs will exist, and code will be messy; Keep that in mind.
This is a webring and navlink ad system for the Jess Museum Discord server.
Table of Contents
How to install
Requirements
- Just (Optional)
- A stable Rust toolchain (preferrably stable-x86_64-unknown-linux-gnu, but musl can maybe work too)
- SQLite3
- OpenSSL (for generating random keys)
Installation
- Make an empty directory, and enter it
- Run:
curl -fsSL https://raw.githubusercontent.com/h4rldev/petring/main/download.sh | bash
- Or run:
wget -O - https://raw.githubusercontent.com/h4rldev/petring/main/download.sh | bash
- Check out Collar to actually use PetRing.
How to build
Prerequisites
- Just (Optional)
- A stable Rust toolchain (preferrably stable-x86_64-unknown-linux-gnu, but musl can maybe work too)
- SQLite3
- OpenSSL (for generating random keys)
- Docker (optional)
Prebuild
- Initialize a sqlite database
sqlite3 petring.db "VACUUM;"
- Setup your
.envfile according to the.env.examplefile - Then run the migrations
- With just:
just migrations petring.db up
- Without just:
pushd migration >/dev/null
mv ../petring.db .
cargo run --release -- up
mv petring.db ../
popd >/dev/null
Finally
- With just:
just build
- Without just:
cargo build --release --bin petring-api
cargo build --release --bin petring-web
You'll now find the binaries in the
target/releasedirectory.
Docker
- Clone the repo
- Initialize the database
- Setup your
.envfile according to the.env.examplefile - Run migrations
- Edit the docker-compose.yml (uncomment/comment out the lines according to what you need.)
- Run the docker-compose
Contributing
For people without write access
- Fork the repo
- Check out a new branch based on dev
- Make your changes
- Test your changes locally.
- If you want to be considerate, follow the conventional commits spec.
- Submit a PR describing what you've done
For people with write access
- No need to fork the repo, just clone it
- And then follow the same instructions as above
- When merging auto-prs, also follow the [conventional commits]( spec.
License
This project is licensed under the BSD-3 Clause License, see the LICENSE file for details.