Troubleshooting
Troubleshooting common issues with Testiment.
Troubleshooting
Containers Won't Start
docker compose config
docker compose logs -f server
docker compose logs -f webCommon causes:
- Missing required env vars
- Invalid image tag
- Port conflicts on host
Auth Issues
Verify these are aligned:
BETTER_AUTH_URL
NEXT_PUBLIC_SERVER_URL
NEXT_PUBLIC_APP_URL
CORS_ORIGINS
BETTER_AUTH_COOKIE_DOMAIN (optional; set it if you want root-domain cookies)Database Connection Errors
- Check
DATABASE_URLcredentials and host - Confirm
postgresservice is healthy if you are using the bundled database - In Docker,
localhostpoints to the container itself- Use
postgresfor bundled Compose Postgres - Use
host.docker.internalfor host-machine Postgres
- Use
- If tables are missing in a fresh database:
- bundled database:
docker compose run --rm migrate
- external database:
docker compose -f docker-compose.external-db.yml run --rm migrate
- bundled database:
Uploads Not Accessible
- Verify
STORAGE_BUCKET,STORAGE_ACCESS_KEY_ID, andSTORAGE_SECRET_ACCESS_KEY - Verify
STORAGE_REGION/STORAGE_ENDPOINTfor your provider - If you use a custom S3-compatible provider, try
STORAGE_ADDRESSING_STYLE=pathorvirtualif the defaultautomode does not match your provider - Verify bucket CORS if uploads fail before the server responds
- If uploads are restricted to known sites, keep bucket CORS origins aligned with the capture public key
allowedOrigins - If using
STORAGE_PUBLIC_URL, confirm it points to accessible objects
See: Storage Setup
Redis or Turnstile Not Configured
Testiment does not require Redis or Turnstile to run.
- Missing Redis disables capture rate limiting and one-time submit token replay protection.
- Missing Turnstile disables the anti-bot challenge for capture submissions.
CAPTURE_SUBMIT_TOKEN_SECRETcan still be set without Redis or Turnstile.