TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Upload a PDF, note the client, and get a polished, trackable online flip book
plus a one-click "Copy for Gmail" share block. Built to run on free tiers.
Multi-user: each account sees only its own books, share links and activity. A
superuser (bootstrapped from env vars) manages accounts and sees usage
analytics across everyone.檢視完整 README ↗Upload a PDF, note the client, and get a polished, trackable online flip book plus a one-click "Copy for Gmail" share block. Built to run on free tiers.
Multi-user: each account sees only its own books, share links and activity. A superuser (bootstrapped from env vars) manages accounts and sees usage analytics across everyone.
/api/book/<slug>/page/<n>, so the real storage URLs are never exposed./b/<slug>): a real page-curl flip book (page-flip) — two-page
spread on desktop, single page on mobile.Next.js 16 (App Router) · Neon Postgres · Vercel Blob · pdf.js · page-flip · jose.
cp .env.example .env.local and fill in the required values (including the
SUPERUSER_* credentials you'll first sign in with).node --env-file=.env.local scripts/init-db.mjs to create tables
up front — the app also creates them lazily on first use.npm run dev → http://localhost:3000DATABASE_URL.BLOB_READ_WRITE_TOKEN in the project).SESSION_SECRET (openssl rand -base64 32),
SUPERUSER_USERNAME / SUPERUSER_PASSWORD / SUPERUSER_EMAIL, and
(optionally) RESEND_API_KEY / RESEND_FROM for password-reset emails, in
Project → Settings → Environment Variables.vercel --prod.Comfortably within free tiers. ~300 books × ~20 pages × ~120 KB ≈ ~700 MB of Blob (free tier is 1 GB+), Neon rows are tiny, and traffic is low. Expected: $0.
| Variable | Required | Purpose |
|---|---|---|
DATABASE_URL | ✅ | Postgres connection string (Supabase/Neon/local) |
BLOB_READ_WRITE_TOKEN | ✅ | Vercel Blob (auto on Vercel) |
SESSION_SECRET | ✅ | Signs session cookie + hashes visitor IPs |
SUPERUSER_USERNAME | ✅ | Superuser login (manages all accounts) |
SUPERUSER_PASSWORD | ✅ | Superuser password (env is source of truth) |
SUPERUSER_EMAIL | — | Superuser email (for password resets) |
RESEND_API_KEY | — | Resend key for reset emails (else logged to console) |
RESEND_FROM | — | From address for reset emails |
NEXT_PUBLIC_BASE_URL | — | Override share-/reset-link origin |
This is deliberately light protection, per the brief: no raw PDF is ever served; images are proxied (real Blob URLs hidden); right-click and image drag are disabled in the viewer. A determined user can still screenshot — that's fine.