Skip to main content

Maintenance Guide

Daily Checks​

  • Website and mobile app loading correctly
  • Ops panel: any red alerts?
  • Xendit dashboard: payments flowing?
  • Support tickets: any urgent issues?
  • Dokploy container logs: any error spikes?

Weekly Checks​

  • Review key metrics: MAU, new listings, transactions
  • Check error logs for recurring patterns (Sentry + Dokploy logs)
  • Reply to App Store / Play Store reviews
  • Review external service dashboards (Xendit, Biteship, Resend)
  • Check DigitalOcean Spaces storage usage
  • Review pending KTP verifications

Monthly Checks​

  • Review infrastructure costs vs. budget (Dokploy VPS, DOCR, DO Spaces)
  • Check storage usage across all buckets
  • Review access permissions and API keys
  • Update documentation if anything changed
  • Review and rotate API keys if older than 6 months
  • Run full E2E test suite
  • Check dependency updates for security patches

Health Check Endpoints​

API Health Check
curl https://api.pasarseken.id/health
# Expected: { "ok": true, "version": "..." }
Dokploy Container Status
# Check container health in Dokploy dashboard → Applications → Status
ServiceDashboard URL
Dokploy (VPS management)VPS admin URL (ask engineering)
DigitalOcean (DOCR + Spaces)cloud.digitalocean.com
Xenditdashboard.xendit.co
Resendresend.com/overview
Biteshipapp.biteship.com
Sentrysentry.io

Common Maintenance Tasks​

Clear Expired Invoices​

Xendit invoices expire after 24 hours. Check for stuck orders:

  1. Go to Ops Panel → Orders tab
  2. Filter by status "pending_payment" older than 24h
  3. Manually expire or investigate

Review Storage Usage​

Check bucket sizes in the DigitalOcean Spaces dashboard. Buckets hold listing photos, KTP docs, dispute evidence, chat photos, hiring docs, and backups.

Monitor Backend Performance​

  • Check container CPU and memory in Dokploy → application metrics
  • Check average response times via Sentry performance (target: < 500ms)
  • Check error rates in Sentry (target: < 1%)

Rollback a Bad Deploy​

See Deployment Guide → for the rollback procedure. At a high level:

  1. Identify the last-good DOCR image tag
  2. Redeploy that tag in Dokploy → application → image tag override
  3. Or: git revert the bad merge commit and push to main to re-trigger CI

For incidents requiring data recovery, coordinate with engineering before any destructive operation. All application deletes are soft (deleted_at); no data is hard-deleted.