- AddEnvironmentVariables() where appsettings.json is read directly - JWT ValidIssuer follows RSecurityBackend:ApplicationName (was hard-coded Ganjoor) - deploy/entrypoint.sh: copy settings RSecurityBackend reads only from appsettings.json - Dockerfile: pin SDK 10.0.302 (newer Razor rejects some upstream views) - lang=ur-PK; ganjoor.net own-site links -> relative; api.ganjoor.net -> APIRoot; search.xml - DIVAN.md: first admin password is Test!123 (upstream doc is wrong) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| deploy | ||
| docs | ||
| GanjooRazor | ||
| RMuseum | ||
| TajikGanjoor | ||
| .dockerignore | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| DIVAN.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| GanjoorService.sln | ||
| LICENSE | ||
| README.md | ||
| RUNNING_LOCALLY.md | ||
| SEMANTIC_SEARCH_SETUP.md | ||
This is Divan (دیوان), a fork of GanjoorService that serves classical Urdu poetry and prose. See DIVAN.md for what changed and how to deploy it. The original README follows.
GanjoorService
Ganjoor museum and ganjoor.net own backend (ASP.NET Core Web API) and frontend (Razor Pages) code
این کد وب سرویس گنجینهٔ گنجور و گنجور و همچنین کد سایت گنجور است.
Running it locally
New to this codebase and want to run your own copy? See RUNNING_LOCALLY.md for a full step-by-step guide — cloning, database setup, and Visual Studio configuration.
The one thing that guide covers in more depth but is worth knowing up front: the production database is never published, since it contains private/user-linked data. What is published is a git repository of the poetry content itself (poets, categories, poems — allowlisted, no user data): github.com/ganjoor/ganjoor-data. A fresh local install can pull real content from there via Admin → مالی و سایت → درونریزی دادهٔ عمومی (also reachable automatically the first time you run the site against an empty database) instead of starting from nothing.
Semantic search
The "find a poem about..." feature has its own setup guide, separate from the main one above — it needs a downloaded ONNX model and published embeddings data on top of the usual database setup: SEMANTIC_SEARCH_SETUP.md. Also has a real troubleshooting section covering the actual problems hit building this feature, not a generic checklist — worth reading before assuming something new is broken.
Changelog
The user-facing changelog shown in the site's footer ("تازههای نرمافزار") is generated and maintained from git history. See docs/CHANGELOG_PROCESS.md for the JSON format and the process for adding new entries.
