A convenient TROW site search engine, powered by full-text search for an accelerated experience.
Try it now: https://topos.locene.com
![]() |
![]() |
![]() |
| Layer | Tech |
|---|---|
| Backend | TROW API · Meilisearch · Axum · Valkey |
| Frontend | Yew |
| CI / CD | GitHub Actions |
| Deployment | Docker · Debian (trixie-slim) · Nginx (alpine-slim) |
- Implement Change Data Capture (CDC) mechanism to synchronize updated posts (pending TROW support)
| Name | Version | Description |
|---|---|---|
| Rust | 1.92.0+ | Programming Language |
| Meilisearch | Latest | Full-Text Search Engine |
| Valkey | Latest | Cache |
First, clone the project repository to your local machine:
git clone https://github.com/locene/topos.git
cd toposcd backendModify the .env.example file, renaming it to .env or .env.development.local based on your needs.
Here's an explanation of several key variables:
| Name | Description |
|---|---|
| TROW_API_URL | TROW API endpoint. See documentation for the URL, usually https://api.trow.cc. |
| TROW_CLIENT_ID | The Client ID for your TROW application. Obtain this by applying through TROW. |
| TROW_CLIENT_SECRET | The Client Secret for your TROW application. Obtain this by applying through TROW. |
| ADMIN_TOKEN | Token required for accessing backend Admin APIs. |
After configuring the environment variables, run cargo run in the backend root directory.
cd webappModify src/config/config_dev.rs and src/config/config_prod.rs as needed.
Then, run cargo run in the webapp root directory.
Once it's running, simply open your browser and navigate to http://127.0.0.1:8080.
This project utilizes a high-privilege API provided by TROW (with extended rate limits). Consequently, TROW requires contributors to sign a Contributor License Agreement. All submissions to this repository are subject to the terms of this agreement.


