PromiseTracker, is a tool to help journalists and civil society watchdogs more easily track campaign promises and other political / government pledges, using official evidence / data, as well as crowdsourced information, with a transparent and defensible methodology, to help inject accountability and honesty into the often cavalier way that promises are made to citizens to win their support for elections, policies, contracts ... but are then seldom honoured.
- CheckDesk API Key and Team ID
- Airtable API Key and Base ID
- Google Gemini API Key.
- Docker
- Install dependencies
pnpm i
- Start Apache Tika
docker compose up -d
- Run dev server
pnpm dev
- Update settings in admin [/admin/globals/settings]
- When testing multitenant app, use a domain that resolves to localhost, similar to
localtest.me
, for exampleken.localtest.me:3000
- Build the production image (bundles Apache Tika 3.2.3, no database services) using Docker BuildKit secrets:
Provide
docker build -t promisetracker:latest \ --secret id=database_uri,env=DATABASE_URI \ --secret id=payload_secret,env=PAYLOAD_SECRET \ .
DATABASE_URI
andPAYLOAD_SECRET
(build fails if they’re missing); Sentry secrets are optional. You can also point secrets at files via--secret id=…,src=path/to/file
. - Run the container against an external database:
docker run -p 3000:3000 -e DATABASE_URI="<your-database-uri>" -e PAYLOAD_SECRET="<secret>" promisetracker:latest
- The bundled Apache Tika server listens on
http://127.0.0.1:9998/
. OverrideAX_APACHE_TIKA_URL
,TIKA_PORT
, orTIKA_ENABLED=0
if you prefer an external Tika service.