A self hostable research workspace
  • C# 95.6%
  • Dockerfile 4.4%
Find a file
2026-08-24 18:19:50 -04:00
.config Added basic ingestion capabilities for files 2026-08-24 18:18:44 -04:00
src/api Added basic ingestion capabilities for files 2026-08-24 18:18:44 -04:00
test Added tests 2026-08-24 18:19:31 -04:00
.dockerignore Added docker compose setup for testing 2026-08-24 18:19:50 -04:00
.editorconfig Added initial project state 2026-08-11 01:10:58 -04:00
compose.yaml Added docker compose setup for testing 2026-08-24 18:19:50 -04:00
Directory.Build.props Removed fluff and added postgresql to api project 2026-08-19 20:35:56 -04:00
Directory.Build.targets Removed fluff and added postgresql to api project 2026-08-19 20:35:56 -04:00
Dockerfile Added docker compose setup for testing 2026-08-24 18:19:50 -04:00
LICENSE.md Updated README, licensed under OSLv3 2026-08-24 18:17:34 -04:00
README.md Updated README, licensed under OSLv3 2026-08-24 18:17:34 -04:00
Scholar.slnx Updated sln file 2026-08-24 18:17:11 -04:00

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"