--- tags: - service - josiedot - irc-now domain: txt.irc.now status: active stack: - Rust - Axum - Keycloak OIDC - PostgreSQL auth: Keycloak --- # irc.now Pastebin (txt.irc.now) Authenticated pastebin for irc.now users. Supports anonymous viewing, authenticated creation. ## URLs - https://txt.irc.now ## Stack - Rust (Axum 0.8, openid 0.23, tower-sessions, askama 0.15) - PostgreSQL via CNPG (paste-db) - nanoid for paste IDs ## Auth Keycloak OIDC via `irc-now` realm, client `paste`. - Session: tower-sessions MemoryStore, SameSite::Lax ## Routes - /auth/login, /auth/callback, /auth/logout - / (GET: create page, POST: create paste) - /my (user's pastes) - /{id} (view), /{id}/raw (raw text), /{id}/delete (POST) ## Limits - Free: 5 pastes, 24h expiry - Hourly cleanup task deletes expired pastes ## Deployment - OCP namespace: irc-josie-cloud - Build: `oc start-build paste --from-archive` (rust:1.88 -> ubi9-minimal) - Containerfile: crates/paste/Containerfile - Resources: 64Mi/256Mi memory, 50m/500m cpu - TLS: cert-manager Certificate CR -> externalCertificate on Route - Certificate: txt-irc-now-tls - Env from secrets: paste-db-app, oidc-paste ## Source - Repo: ~/development/irc-now - Crate: `crates/txt/` ## Related - [[irc-now-portal]] - [[irc-now-pics]]