--- title: File Desk emoji: 📁 colorFrom: blue colorTo: gray sdk: docker app_port: 7860 private: true --- # File Desk (Python) WhatsApp file bot with an admin dashboard. Users send a file code (or `.dl CODE`) and the bot sends the file. ## What it does - Users download only. Admins manage files, users and settings from the dashboard. - Roles: free, premium, admin. Daily download limits per role (rolling 24 hours), with a per-user override. - Sent files are deleted for everyone after N hours (default 24, set in Settings; 0 = never). - Public file list at `/catalog` (titles and codes only, hidden files excluded). - Sinhala and English messages; users switch with `/lang si` or `/lang en`. - WhatsApp session stored encrypted in PostgreSQL (nothing sensitive on disk). ## Setup 1. `make gen-key` to create `SESSION_KEY`. 2. Set `ADMIN_PASSWORD`, `DATABASE_URL`, `ADMIN_PHONES`, `SESSION_KEY` (see `.env.example`). 3. Local: `make install && make run`, then open http://localhost:7860. 4. Hugging Face: `make space-create`, add the secrets in the Space settings, then `make space-push`. 5. Open the dashboard, enter the number under WhatsApp, and link it with the pairing code. ## Notes - Linking a WhatsApp number uses an unofficial WhatsApp client library. WhatsApp can restrict or ban such numbers. Use a number you can afford to lose. - A session created by the old Node version cannot be reused. Link again once after the switch. - Tests: `make test` (needs a reachable Postgres via `TEST_DATABASE_URL`).