Source & license
Upstream license: GPL-3.0
License TL;DR
You can run it and change it privately. If you give others copies of the program or a modified version, provide the corresponding source under the GPL. You can charge money. Running it as a web service alone doesn’t trigger that source-sharing requirement.
Explain GPL v3 in plain English →Summary of the main license. Separate packages and assets can have different terms.
Inspect repository ↗Read this project’s actual license ↗Repository owner
See the upstream repository for the original creator and contributors.
Maintain this project? Maintainer verification →Cloudflare hosting
Free tier eligible within limits
The documented Bark Worker deployment can use Cloudflare Free allowances for a small workload under the request, CPU and service-specific quotas below. This is conditional eligibility, not a measured zero-cost deployment; optional features, domains and external providers can add costs.
Hosting requirements
- Workers Free allows 100,000 requests per day shared across the account and 10 ms CPU per invocation; measure CPU-heavy authentication, parsing and rendering before assuming it fits.
- Keep aggregate D1 use below 5 million rows read/day, 100,000 rows written/day and 5 GB total storage; a request can touch many rows.
- Use a small personal or team workload; domain registration and optional third-party providers are separate costs. Provision your own IDs, secrets and migrations.
Sources checked 01/10/2026
Repository snapshot: a243fe5. Hosting eligibility reflects the deployment documentation and listed assumptions.
- pushover ↗
Bark-Worker is a [Bark-Server](https://github.com/Finb/bark-server) implenmention on Cloudflare Worker. It provides privacy-aware users with a cheap and private bark backend.
- workers ↗
{ "name": "bark-worker", "main": "main.js", "compatibility_date": "2026-03-01", "compatibility_flags": [ "nodejs_compat" ], "observability": { "enabled": true }, "d1_databases": [ { "binding": "database", "database_name": "database-bark", "database_id": "<unique-ID-for-your-database>" }
- d1 ↗
bility_date": "2026-03-01", "compatibility_flags": [ "nodejs_compat" ], "observability": { "enabled": true }, "d1_databases": [ { "binding": "database", "database_name": "database-bark", "database_id": "<unique-ID-for-your-database>" } ], "keep_vars": true, "vars": { "ALLOW_NEW_DEVICE": "true", "ALLOW_QUERY_NUMS": "true", "ROOT_PATH": "/", // "BASIC_AUTH": "" } }
- free-tier-eligible ↗
{ "name": "bark-worker", "main": "main.js", "compatibility_date": "2026-03-01", "compatibility_flags": [ "nodejs_compat" ], "observability": { "enabled": true }, "d1_databases": [ { "binding": "database", "database_name": "database-bark", "database_id": "<unique-ID-for-your-database>" }
- free-tier-eligible ↗
bility_date": "2026-03-01", "compatibility_flags": [ "nodejs_compat" ], "observability": { "enabled": true }, "d1_databases": [ { "binding": "database", "database_name": "database-bark", "database_id": "<unique-ID-for-your-database>" } ], "keep_vars": true, "vars": { "ALLOW_NEW_DEVICE": "true", "ALLOW_QUERY_NUMS": "true", "ROOT_PATH": "/", // "BASIC_AUTH": "" } }
- free-tier-eligible ↗
up>1, 2, 3, 4</sup> | Duration | CPU time | | --- | --- | --- | --- | | **Free** | 100,000 per day | No charge for duration | 10 milliseconds of CPU time per invocation | | **Standard** | 10 million included per month <br> +$0.30 per additional million | No charge or limit for duration | 30 million CPU milliseconds included per month<br> +$0.02 per additional million CPU milliseconds<br><br> Max of [5 minutes of CPU time](https://developers.cloudflare.com/workers/platform/limits/#account-plan-limits) per invocation (default: 30 seconds)<br> Max of 15 minutes of CPU time per [Cron Trigger](https://developers.cloudflare.com/workers/configuration/cron-triggers/) or [Queue Consumer](https://developers.cloudflare.co
- free-tier-eligible ↗
oudflare.com/workers/platform/pricing/#workers) | | --- | --- | --- | | Rows read | 5 million / day | First 25 billion / month included + $0.001 / million rows | | Rows written | 100,000 / day | First 50 million / month included + $1.00 / million rows | | Storage (per GB stored) | 5 GB (total) | First 5 GB included + $0.75 / GB-mo | Track your D1 usage To accurately track your usage, use the [meta object](https://developers.cloudflare.com/d1/worker-api/return-object/), [GraphQL Analytics API](https://developers.cloudflare.com/d1/observability/metrics-analytics/#query-via-the-graphql-api), or the [Cloudflare dashboard ↗︎](https://dash.cloudflare.com/?to=/:account/workers/d1/). Select your D1 database, then vie
- GPL-3.0 ↗
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Pub
- architecture ↗
{ "name": "bark-worker", "main": "main.js", "compatibility_date": "2026-03-01", "compatibility_flags": [ "nodejs_compat" ], "observability": { "enabled": true }, "d1_databases": [ { "binding": "database", "database_name": "database-bark", "database_id": "<unique-ID-for-your-database>" }
- architecture ↗
bility_date": "2026-03-01", "compatibility_flags": [ "nodejs_compat" ], "observability": { "enabled": true }, "d1_databases": [ { "binding": "database", "database_name": "database-bark", "database_id": "<unique-ID-for-your-database>" } ], "keep_vars": true, "vars": { "ALLOW_NEW_DEVICE": "true", "ALLOW_QUERY_NUMS": "true", "ROOT_PATH": "/", // "BASIC_AUTH": "" } }
Upstream screenshot · cwxiaos/bark-worker repository contributors ↗. Depicts the upstream project. We have not deployed and tested a fresh installation here.
What it can replace
Compare the workflow you need. These mappings describe overlap; full feature parity requires a separate comparison.
API-triggered mobile push notifications, delivered to the Bark iOS application; cross-platform clients and managed Pushover operations are excluded.
See supporting source ↗How it works
The shape of Bark Worker on Cloudflare, and how it stacks up against the rented tools it replaces.
Architecture
Diagram of deployment declarations at the reviewed commit. Each app has its own entrypoint; declared resources do not prove runtime calls. Follow file and line sources below.
View upstream source ↗Configuration and workflow sources
Reviewed commit a243fe59b68b. Files were read as data; upstream applications and CI jobs were not executed.
Deployment configuration · 1 files
Cloudflare Workers · compatibility 2026-03-01
bark-worker · default
Entrypoint: main.js
database→ D1
Named environments are separate deployments. Bindings are shown only where declared. Configured routes are URL patterns, not verified application endpoints.
Runtime source · handlers, binding usage and workflow steps
Observed TypeScript/JavaScript declarations from Worker entrypoints and resolved relative imports. Calls and workflow steps may run conditionally; their listed order is not a proven end-to-end request flow. Router declarations may be mounted under a prefix or may not be registered. This shows code wiring, not a successful deployment or runtime test. Dynamic wiring, aliases and generated code may not resolve.
- L2 · fetch handler exported · calls handleRequest
- L7 · handleRequest calls (conditional paths may differ): Boolean, ctx.waitUntil, db.cleanupExpiredSessions, pathname.replace, rootPath.replace, handler.register, handler.ping, handler.healthz, util.validateBasicAuth, handler.info, handler.mcp, realPathname.split, request.headers.get, contentType.includes, request.json, reduce, Object.keys, key.toLowerCase, request.formData, formData.forEach
Environment references: env.ALLOW_NEW_DEVICE · env.ALLOW_QUERY_NUMS · env.ROOT_PATH · env.BASIC_AUTH · env.database
Build and deployment pipeline · 1 GitHub Actions workflows
Repository CI declarations, separate from runtime request processing. Job dependencies and conditions are shown as written; long commands are shortened with an ellipsis; a workflow file does not prove a recent successful run.
Triggers: push, workflow_dispatch
Deploy · no job dependencies declared
- actions/checkout@v4
actions/checkout@v4 - Setup Node
actions/setup-node@v4 - Install wrangler
npm install -g wrangler - Verify Cloudflare API Token
echo "Verifying Cloudflare API Token..." wrangler whoami - Check and Create D1 Database
set -x DB_LIST=$(wrangler d1 list --json) DB_ID=$(echo $DB_LIST | jq -r '.[] | select(.name == "database-bark") | .uuid') if [ -z "$DB_ID" ]; then CREATE_OUTPUT=$(wrangler d1 create database-bark) DB_ID=$(echo "$CREATE_OUTPUT" | sed -n 's/.*"database_id": "\([a-f0-9-]*\)".*/\1/p') else echo "Found existing database-bark database" fi echo "Database ID: $DB_ID" echo "DB_ID=$DB_ID" >> $GITHUB_ENV - Update wrangler.toml
sed -i 's/"database_id": ".*"/"database_id": "'$DB_ID'"/' wrangler.json - Deploy worker
cloudflare/wrangler-action@v3.14.1Wrangler command: deploy
deploy: wrangler deploypredeploy: npm run db:migrate:remote
Repository README
View original on GitHub ↗Full upstream document by @cwxiaos · README.md · snapshot a243fe5
Bark-Worker
English | 中文文档
[!NOTE] KV Version will probably not support MCP due to limited quota, but if the MCP route can be optimized to some extent, there may have MCP support in KV version.
[!NOTE] Batch Push has the highest priority, if
device_keysis specified and not empty,device_keywill be ignored, in both V1 and V2 APIs.
Bark-Worker is a Bark-Server implenmention on Cloudflare Worker. It provides privacy-aware users with a cheap and private bark backend.
What is Bark?
Bark is an iOS App which allows you to push customed notifications to your iPhone.
[!NOTE] A domain is required if worker.dev is unavailable in your country/region
Features
- Full Bark-Server APIs support
registerpinghealthzinfopush
- Path based parameters resolve
- Easy to deploy, Cheap to use and Convenient to manage
Setup
[!NOTE] Select one, D1 or KV Version are both available. D1 Version is recommended for its higher usage than KV Version
Follow the instructions for D1 Version
[!NOTE] The Cloudflare API Token must have D1 permission.
Or manually deploy
Refer to Setup Guide
Cloudflare D1 Version
Create a Worker and a D1 Database, bind D1 database to Worker with name database
Cloudflare KV Version
Create a Worker and a KV Storage, bind KV Storage to Worker with name database
Tips
- Multi Device Key to one Device
- Device Key Alias
- D1 Database Manage in Console
- etc.
Refer to Tips
Frequently asked about Bark Worker
What is Bark Worker?+
Bark Worker is a self-hosted Pushover alternative built on the Cloudflare developer platform. Send API-triggered notifications to Bark on your iPhone from a Cloudflare Worker.
What does Bark Worker replace?+
Bark Worker is listed as an alternative to Pushover. Compare the features and tradeoffs before migrating.
What Cloudflare primitives does Bark Worker use?+
Bark Worker is built on D1, Workers.
How much does Bark Worker cost to run?+
The documented Bark Worker deployment can use Cloudflare Free allowances for a small workload under the request, CPU and service-specific quotas below. This is conditional eligibility, not a measured zero-cost deployment; optional features, domains and external providers can add costs. Workers Free allows 100,000 requests per day shared across the account and 10 ms CPU per invocation; measure CPU-heavy authentication, parsing and rendering before assuming it fits. Keep aggregate D1 use below 5 million rows read/day, 100,000 rows written/day and 5 GB total storage; a request can touch many rows. Use a small personal or team workload; domain registration and optional third-party providers are separate costs. Provision your own IDs, secrets and migrations. Check current Cloudflare pricing before deploying.
Is Bark Worker open source?+
The upstream repository declares the GPL-3.0 license. Read its terms at https://raw.githubusercontent.com/cwxiaos/bark-worker/a243fe59b68bfc5c5ce4b7386a674b9d76aaf0e8/LICENSE. Source code and contributor credit are available at https://github.com/cwxiaos/bark-worker.


Discussion · 0
sign in to comment →