Operations and Maintenance

This guide is for the technical officer or IT staff member maintaining the deployed system.

Routine Deployment Workflow

  1. Pull or sync the latest repository changes.
  2. Make changes in the maintainer fork.
  3. Test locally where possible.
  4. Push the commit to GitHub.
  5. Deploy the latest commit in Render.
  6. Check the frontend and backend health.

Recommended command flow:

git status
git pull --rebase origin main
git add .
git commit -m "Describe the change"
git push

If the remote has newer commits, pull/rebase before pushing.

Render Deployment

There are usually two Render services:

When a normal code/documentation change is pushed:

When dependencies, Docker image, or build cache behavior changed:

For simple environment variable changes:

Health Checks

Backend:

https://your-backend.onrender.com/health

Expected result:

{
  "success": true
}

Frontend:

Open the frontend URL and confirm the login page loads.

Logs to Check

Render backend logs are the first place to check for:

Aiven logs/metrics help with:

Cloudflare R2 helps with:

Backups

Maintain backups for:

The uploaded files are not stored only in Render when R2 is enabled. They are stored in Cloudflare R2.

Secrets and Passwords

Rotate secrets if:

Important secrets:

Email Maintenance

If email stops working:

  1. Check whether the sender email is still verified.
  2. Check SMTP username/password/key.
  3. Check SMTP port.
  4. Check provider quota.
  5. Check Render backend logs.

For production, prefer an institutional sender such as:

no-reply@dental.pdn.ac.lk

File Upload Maintenance

If old files do not download:

If new uploads fail:

Database Maintenance

The backend includes startup schema checks, but maintainers should still be careful.

Before major schema updates:

  1. Take or confirm a database backup.
  2. Deploy to a test environment if available.
  3. Deploy backend.
  4. Watch backend logs during startup.
  5. Test affected screens.

Ownership Handover

Before handing over the system, confirm that the stakeholder owns: