The pet-coded webring
  • Rust 74.8%
  • HTML 8%
  • JavaScript 7%
  • CSS 6.7%
  • Shell 1.5%
  • Other 2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
h4rl ef10e7f37e
Some checks are pending
Build and Push Docker Images / build-and-push (push) Waiting to run
merge(#61) from @h4rldev.
doc: announce archival
2026-03-30 12:01:05 +02:00
.github/workflows feat: some linting, styled error page in web, made error a response in api 2025-10-26 19:53:20 +01:00
api fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
frontend feat: some linting, styled error page in web, made error a response in api 2025-10-26 19:53:20 +01:00
migration fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
web fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
.editorconfig fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
.env.example feat(frontend): small glowup 2025-10-25 11:25:17 +02:00
.envrc chore: initialize repository 2025-09-15 22:07:59 +02:00
.gitignore feat: struggling with docker 2025-10-20 02:52:27 +02:00
biome.json feat: some linting, styled error page in web, made error a response in api 2025-10-26 19:53:20 +01:00
Cargo.lock feat: some linting, styled error page in web, made error a response in api 2025-10-26 19:53:20 +01:00
Cargo.toml feat: some linting, styled error page in web, made error a response in api 2025-10-26 19:53:20 +01:00
docker-compose.override.yml fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
docker-compose.yml fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
download.sh fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
justfile fix: change url, make download.sh actually work, fix migration justfile 2025-10-26 05:21:19 +01:00
LICENSE feat(doc): add licensing information 2025-10-19 23:46:22 +02:00
petring-api.toml feat: split webserver and api 2025-10-24 04:12:59 +02:00
petring-web.toml fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
README.md doc: announce archival 2026-03-30 11:55:26 +02:00
rustfmt.toml fix: make download.sh less destructive, change defaults in web, fix redirect 2025-10-30 20:52:28 +01:00
shell.nix feat: some linting, styled error page in web, made error a response in api 2025-10-26 19:53:20 +01:00

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 .env file according to the .env.example file
  • 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/release directory.

Docker

  • Clone the repo
  • Initialize the database
  • Setup your .env file according to the .env.example file
  • 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.