No description
  • Go 68.1%
  • CSS 21.3%
  • HTML 7.4%
  • JavaScript 2.1%
  • Makefile 1.1%
Find a file
2026-03-25 17:50:50 +01:00
docs/superpowers docs: add logging implementation plan 2026-03-25 14:05:57 +01:00
static chore: remove unused Fraunces and Lora font files 2026-03-24 13:22:06 +01:00
templates redesign: European cinema aesthetic with light/dark mode and inline video embeds 2026-03-24 13:19:20 +01:00
.gitignore Add .worktrees/ to .gitignore 2026-03-23 10:37:17 +01:00
auth.go feat: replace log.Printf with slog in auth, add login activity logs 2026-03-25 14:55:22 +01:00
Basefile chore: bump to v0.1.6, add log file config and OpenRC output/error logging 2026-03-25 17:50:50 +01:00
CLAUDE.md Update CLAUDE.md with complete project documentation 2026-03-22 12:41:47 +01:00
db.go fix: idempotent migration + release workflow 2026-03-25 11:03:00 +01:00
go.mod Initial commit 2026-03-22 08:35:18 +01:00
go.sum Initial commit 2026-03-22 08:35:18 +01:00
handlers.go feat: add slog activity logging for video submissions 2026-03-25 14:56:12 +01:00
logger.go feat: add custom slog handler with timestamp and level prefixes 2026-03-25 14:07:00 +01:00
main.go feat: wire slog into main, startup success message 2026-03-25 14:08:17 +01:00
Makefile fix: restore v-prefixed version so hosty finds the git tag 2026-03-25 11:07:56 +01:00
README.md Move add form to header, remove HTMX, add Basefile 2026-03-22 15:27:22 +01:00
todo.md Initial commit 2026-03-22 08:35:18 +01:00
youtube.go Validate YouTube video ID format to [A-Za-z0-9_-]{11} 2026-03-23 11:03:24 +01:00
youtube_test.go Validate YouTube video ID format to [A-Za-z0-9_-]{11} 2026-03-23 11:03:24 +01:00

Tub

Tub is a personal YouTube video feed manager. Log in via hosty (OIDC), submit YouTube URLs, and build a personal list of saved videos with a global feed across all users.

Running locally

DEV=1 go run .

DEV=1 skips OIDC entirely and auto-logs you in as user.

Open http://localhost:8080.

Building

go build ./...
go test ./...

Deployment

Tub is deployed via hosty, which injects the OIDC environment variables automatically.

Environment variables

Var Default Description
PORT 8080 Listen port
DB_PATH ./tub.db SQLite file path
BASE_URL http://localhost:8080 Used for absolute URLs in JSON feeds
DEV Enable dev mode when non-empty
OIDC_ISSUER Injected by hosty
OIDC_CLIENT_ID Injected by hosty
OIDC_CLIENT_SECRET Injected by hosty
OIDC_CALLBACK_URL Injected by hosty