Health checks
- API health:
curl http://localhost:8080/api/v1/healthz - Database (SQLite): Check the database file exists and is accessible
- Database (PostgreSQL):
docker compose exec db pg_isready -U pullbaseuser -d pullbasedb - Web UI: Sign in and confirm the dashboard loads recent activity.
- Agents: List servers and check
last_timestampin status history via CLI or UI.
Routine operations checklist
Daily
- Review drift alerts from status history
- Check audit logs for unexpected actions
- Ensure webhooks (if enabled) are succeeding
Weekly
- Rotate admin tokens or ensure expiration dates are set
- Back up the database (SQLite file or PostgreSQL dump)
- Verify TLS certificates (at reverse proxy) aren’t approaching expiry
Monthly
- Test agent token rotation on a sample server
- Exercise rollback on a staging environment
- Review GitHub App access scopes
Quarterly
- Run disaster recovery drill (bootstrap new server + restore DB)
- Patch base OS/images used for agents and central server hosts
Troubleshooting guide
Bootstrap secret already used
Bootstrap secret already used
- Delete
bootstrap-admin-secret.txtinside the config directory and restart to regenerate. - Or provide a new secret via
PULLBASE_BOOTSTRAP_SECRETenvironment variable. - Create a new admin via CLI if another admin exists:
pullbasectl users create
Agents reporting 401 Unauthorized
Agents reporting 401 Unauthorized
Git clone failures
Git clone failures
- Check outbound network connectivity to the Git provider.
- For GitHub Apps, verify installation scopes and ensure the private key matches the app.
- Confirm agents trust the TLS certificate (
CACERT_PATHpoints to the CA bundle).
Service manager not detected
Service manager not detected
- Override auto-detection by setting
system.serviceManagerinconfig.yaml. - For Docker containers, use
supervisoras the service manager. - Ensure service manager commands are in the agent’s PATH.
Database migration errors
Database migration errors
- Review container logs around startup for SQL errors.
- Migrations run automatically for both SQLite and PostgreSQL.
- Check for schema drift caused by manual database edits.
- Restore from backup if migrations fail due to corruption.
Webhook retries failing
Webhook retries failing
- Inspect container logs:
docker compose logs pullbase - Ensure the webhook secret in GitHub matches
PULLBASE_WEBHOOK_SECRET_KEY. - Confirm Pullbase is reachable from your Git provider (network ACLs, firewalls).
TLS certificate permission denied
TLS certificate permission denied
When TLS is enabled, the server attempts to generate self-signed certificates on startup. If you see:Option 1: Disable TLS (recommended if behind a reverse proxy or for testing):Option 2: Create the certs directory with proper permissions:For production, use CA-signed certificates or terminate TLS at a reverse proxy.
Exec format error
Exec format error
If you see
Download the correct binary and reinstall:
Failed to execute /usr/local/bin/pullbase-server: Exec format error:You downloaded the wrong binary for your system architecture.| Output | Binary to download |
|---|---|
x86_64 | pullbase-server-linux-amd64 |
aarch64 or arm64 | pullbase-server-linux-arm64 |
Collect diagnostics
1
Export environment metadata
2
Export server status history
3
Capture database snapshot
SQLite:PostgreSQL:
Resetting the installation
If you need a clean slate (lab environments):- Stop services:
docker compose down - Remove data only if you accept data loss:
- SQLite:
docker volume rm pullbase_pullbase_dataor delete the database file - PostgreSQL:
docker volume rm pullbase_postgres_data
- SQLite:
- Start again:
docker compose up -d
Getting help
- Review GitHub issues for known bugs.
- Collect the diagnostic bundle above before filing a bug report.
- Provide Pullbase version and deployment details.