diff --git a/README.md b/README.md index 503ef3e..dd0db31 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,8 @@ The frontend is bundled with the Worker using [Cloudflare Workers Static Assets] > [!NOTE] > Migrating from separate frontend deployment? If you previously deployed the frontend separately to Cloudflare Pages, you can delete the `warden-frontend` Pages project and re-setup the router for the worker. The frontend is now bundled with the Worker and no longer requires a separate deployment. -> [!WARNING] The web vault frontend comes from Vaultwarden and therefore exposes many advanced UI features, but most of them are non-functional. See [Current Status](#current-status). +> [!WARNING] +> The web vault frontend comes from Vaultwarden and therefore exposes many advanced UI features, but most of them are non-functional. See [Current Status](#current-status). ## Configure Custom Domain (Optional) @@ -112,7 +113,8 @@ If you want to use a custom domain instead of the default `*.workers.dev` domain - **TTL:** Auto 5. Click **Save** -> ⚠️ **Important:** The **Proxy status must be "Proxied"** (orange cloud). If it shows "DNS only" (gray cloud), Worker routes will not work. +> [!IMPORTANT] +> The **Proxy status must be "Proxied"** (orange cloud). If it shows "DNS only" (gray cloud), Worker routes will not work. ### Step 2: Add Worker Route @@ -145,7 +147,8 @@ namespace_id = "1001" simple = { limit = 5, period = 60 } ``` -> [!NOTE] The `period` must be either `10` or `60` seconds. See [Cloudflare documentation](https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/) for details. +> [!NOTE] +> The `period` must be either `10` or `60` seconds. See [Cloudflare documentation](https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/) for details. If the binding is missing, requests proceed without rate limiting (graceful degradation). @@ -253,7 +256,8 @@ ls .wrangler/state/v3/d1/ sqlite3 .wrangler/state/v3/d1/miniflare-D1DatabaseObject/*.sqlite ``` -> [!NOTE] Local dev requires Node.js and Wrangler. The Worker runs in a simulated environment via [workerd](https://github.com/cloudflare/workerd). +> [!NOTE] +> Local dev requires Node.js and Wrangler. The Worker runs in a simulated environment via [workerd](https://github.com/cloudflare/workerd). ## Contributing diff --git a/docs/db-backup-recovery.md b/docs/db-backup-recovery.md index 7ca28fb..a0231af 100644 --- a/docs/db-backup-recovery.md +++ b/docs/db-backup-recovery.md @@ -4,11 +4,12 @@ Centralize your D1 operational playbooks here: backup automation, restore flows, ## GitHub Actions Backups -> [!NOTE] To use this backup feature, you must fork this repository and configure the required Cloudflare secrets as described in the [CI/CD deployment](deployment.md#cicd-deployment-with-github-actions) section in advance: `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`, and `D1_DATABASE_ID` (and `D1_DATABASE_ID_DEV` if you want to backup `dev`). +> [!NOTE] +> To use this backup feature, you must fork this repository and configure the required Cloudflare secrets as described in the [CI/CD deployment](deployment.md#cicd-deployment-with-github-actions) section in advance: `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID`, and `D1_DATABASE_ID` (and `D1_DATABASE_ID_DEV` if you want to backup `dev`). This project includes a GitHub Action workflow that automatically exports your D1 database and uploads the backup to one or more destinations (S3-compatible storage and/or WebDAV) daily. The backup runs at 04:00 UTC (1 hour after the cleanup task). -> [!NOTE] **Important Notes:** +> [!NOTE] > - **Manual trigger required for first run:** You must manually trigger the Action once (GitHub Actions → Backup D1 Database (S3/WebDAV) → Run workflow) before scheduled backups will run automatically. > - **Ensure your S3 bucket is set to private access** to prevent data leaks and avoid unnecessary public traffic costs. > - **⚠️ CRITICAL: Do NOT use R2 from the same Cloudflare account as your Worker** for backups. If your Cloudflare account gets suspended or banned, you will lose access to both your Worker and your backup storage, resulting in complete data loss. Always use a separate Cloudflare account or a different S3-compatible storage provider (AWS S3, Backblaze B2, MinIO, etc.) for backups to ensure redundancy and disaster recovery. @@ -143,7 +144,8 @@ gunzip backup.sql.gz wrangler d1 execute DATABASE_NAME --remote --file=backup.sql ``` - > [!NOTE] The `--remote` flag is required to execute against your production D1 database. Without it, the command will run against the local development database. + > [!NOTE] + > The `--remote` flag is required to execute against your production D1 database. Without it, the command will run against the local development database. > ⚠️ **Troubleshooting: `no such table: main.users` error** > @@ -184,4 +186,5 @@ To use Time Travel: wrangler d1 time-travel restore DATABASE_NAME --bookmark= ``` -> [!NOTE] Time Travel retains data for 30 days on the free tier. See [Cloudflare D1 Time Travel documentation](https://developers.cloudflare.com/d1/reference/time-travel/) for more details. +> [!NOTE] +> Time Travel retains data for 30 days on the free tier. See [Cloudflare D1 Time Travel documentation](https://developers.cloudflare.com/d1/reference/time-travel/) for more details. diff --git a/docs/deployment.md b/docs/deployment.md index c085bde..6627646 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -148,7 +148,8 @@ To avoid bundling a large JSON file into the Worker, the dataset can be stored i If you skip seeding, `/api/settings/domains` and `/api/sync` will return `globalEquivalentDomains: []`. -> [!NOTE] The `CLOUDFLARE_API_TOKEN` must have **both** Worker and D1 permissions: +> [!NOTE] +> The `CLOUDFLARE_API_TOKEN` must have **both** Worker and D1 permissions: > - **Edit Cloudflare Workers** - Required for deploying the Worker > - **Edit D1** - Required for database migrations and backups >