A self hostable research workspace
- C# 95.6%
- Dockerfile 4.4%
| .config | ||
| src/api | ||
| test | ||
| .dockerignore | ||
| .editorconfig | ||
| compose.yaml | ||
| Directory.Build.props | ||
| Directory.Build.targets | ||
| Dockerfile | ||
| LICENSE.md | ||
| README.md | ||
| Scholar.slnx | ||
Scholar
Scholar is a research workspace for searching, ingesting, and managing of source material for personal or AI-assisted research and synthesis.
Text ingestion demo
The API accepts UTF text files, stores their text and metadata in PostgreSQL, and maintains a generated tsvector column with a GIN full-text index.
Run the API, its migrations, and PostgreSQL 18.4 with Docker:
docker compose up --build
The API is available at http://localhost:8080. PostgreSQL is only reachable by the application services on their private Docker network. Stop the services with docker compose down, or also delete the database volume with docker compose down --volumes.
To run the API directly instead, apply the database migration and start it locally:
dotnet tool restore
dotnet ef database update --project src/api
dotnet run --project src/api
Ingest and retrieve a file:
curl -F "file=@notes.txt;type=text/plain" http://localhost:8080/api/source
curl http://localhost:8080/api/source/{id}
curl "http://localhost:8080/api/source/search?query=research"