Fixed
- Appwrite Sites no longer pauses when only the database keepalive runs (closes #1). Sites can pause independently of project-level pause based on site traffic rather than database/API activity. v1.0.0 only sent the database heartbeat, so users running Sites still saw their projects paused after 7 days. v1.1.0 adds an optional HTTP GET ping to one or more deployed Site URLs alongside the existing database heartbeat.
Added
- New optional
siteUrlsfield onProjectConfig(string or string[]). - New env var
APPWRITE_SITE_URLS(single URL or comma-separated list) for single-project mode. APPWRITE_PROJECTSJSON now honors a per-projectsiteUrlsfield.- 10 new bun tests covering env parsing, HTTP 200 / 500 / network-error paths, parallel multi-URL fetch, and the no-siteUrls no-op path.
Behavior
- Database heartbeat and site HTTP pings run in parallel so one slow surface doesn't delay the other.
- Each site URL is fetched with a 15s timeout, follows redirects, and sends a stable
User-Agent: appwrite-keepalive/1.1. - Non-2xx responses count as failures; network errors are captured with their message.
- Overall result is success only if database heartbeat AND every site ping succeed.
Compatibility
- v1.0.0 users with no
siteUrlsconfigured see byte-equivalent behavior. No migration needed. - New users running Appwrite Sites should add
APPWRITE_SITE_URLSas a GitHub Actions secret. See updated README.
Upgrade
git pull
bun installIn your forked repo's GitHub Actions secrets, add APPWRITE_SITE_URLS if you deploy Sites:
APPWRITE_SITE_URLS=https://my-app.appwrite.network
Or comma-separated for multiple sites:
APPWRITE_SITE_URLS=https://site-a.appwrite.network,https://site-b.appwrite.network
Thanks
- @GitUser999A for the report on #1.