READMEmain
We couldn't render this README. Read it on GitHub
Shame Server
A simple server for recording and displaying "shames" - complaints or incidents tracked by UUID. Built with Bun, Hono, and SQLite.
Features
- Record shames with UUID and complaint text
- View all shames in a paginated wall
- Query shames by UUID
- Persistent storage using SQLite
- Production-ready with Railway deployment support
Prerequisites
- Bun v1.0.0 or higher
Installation
- Clone the repository:
git clone <your-repo-url>
cd shame-server
- Install dependencies:
bun install
Development
Run the development server with hot reload:
bun dev
The server will start at http://localhost:3000
Production
For production deployment:
bun start
Railway Deployment
This project is configured for deployment on Railway with persistent storage. The database will be stored in a persistent volume mounted at /app/data.
Required environment variables:
NODE_ENV: Set to "production"PORT: Default is 3000
API Endpoints
POST /shame
Record a new shame.
Request body:
{
"uuid": "123e4567-e89b-12d3-a456-426614174000",
"complaint": "Left dirty dishes in the sink"
}
GET /shame
Get all recorded shames.
GET /shame/:uuid
Get up to 25 most recent shames for a specific UUID.
GET /health
Health check endpoint.
Database Schema
CREATE TABLE shames (
id INTEGER PRIMARY KEY AUTOINCREMENT,
uuid TEXT NOT NULL,
complaint TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)
License
[Your chosen license]
Contributing
[Your contribution guidelines]