A full-stack application for managing and monitoring CuratorBot jobs.
The Curator Application consists of:
- Backend: A FastAPI-based service that provides an interface to the Wikimedia Toolforge API
- Frontend: A Vue.js application with TypeScript and PrimeVue for displaying and managing Toolforge jobs
This application is designed to work within the Wikimedia ecosystem, particularly for tools that need to interact with the Toolforge infrastructure programmatically.
toolforge build start -i web https://github.com/DaxServer/wikibots-curator-backend.git -L
-L
flag uses the latest buildpacks and base image, required for Poetry.
Use toolforge envvars
to set them up. The OAuth1 application is at OAuth applications - Wikimedia Meta-Wiki.
X_USERNAME
OAUTH_CLIENT_SECRET
OAUTH_CLIENT_ID
SECRET_KEY
When deploying for the first time, use:
toolforge webservice buildservice start --buildservice-image tool-curator/web:latest --mount all
For subsequent deployments, use:
toolforge webservice restart
This project is the Backend application.
- Python 3.13 or higher
- Poetry (for dependency management)
Install backend dependencies:
poetry install
Start the FastAPI server:
X_USERNAME=DaxServer OAUTH_CLIENT_ID=abc123 OAUTH_CLIENT_SECRET=abc123 poetry run web
The backend server will be available at http://localhost:8000. The OAuth1 application is at OAuth applications - Wikimedia Meta-Wiki.
Build the frontend for production:
pack build -B tools-harbor.wmcloud.org/toolforge/heroku-builder:24_0.20.7 curator-web
To run the tests, use the following command:
poetry run pytest
For verbose output:
poetry run pytest -v