🌐 中文
BeeCount supports 5 cloud sync options. Choose based on your scenario.
| Option | Best For | Highlights |
|---|---|---|
| BeeCount Cloud | Real-time multi-device + self-hosted | One-click Docker, sub-second sync, built-in Web, multi-user |
| iCloud | iOS-only users | Zero config, native integration, Apple ecosystem |
| Supabase | Cross-platform without NAS | Generous free tier, easy setup, hosted |
| WebDAV | NAS users | Local data, Synology/Nextcloud/etc. |
| S3 protocol | Flexible cloud storage | Cloudflare R2/AWS S3/MinIO, large free tier |
Sub-second multi-device sync + Web admin + multi-user isolation. Recommended for users with NAS / VPS / Docker.
# docker-compose.yml
services:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
volumes:
- ./data:/datadocker compose up -d
docker compose logs beecount-cloud | grep -A 10 "first launch"Output similar to:
BeeCount Cloud — first launch, admin account auto-created:
Email: owner@example.com
Password: FIDodUnwprkw1zUi
With this account:
- Open
http://<server-ip>:8869in browser → Web admin console - In the App, choose "BeeCount Cloud", enter server URL + credentials
Web console → "Users" → "Add User" with their email and password → tell them to log in. Each user's data is isolated.
services:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
environment:
# Override default random admin:
BOOTSTRAP_ADMIN_EMAIL: me@example.com
BOOTSTRAP_ADMIN_PASSWORD: <strong password>
# Override JWT secret (default: auto-generated to /data/.jwt_secret):
# JWT_SECRET: <32+ byte random string>
volumes:
- ./data:/data- PWA support: Web admin is a PWA — install icon appears in the address bar to install as a desktop app
- Data location: SQLite + attachments + JWT secret all live in
./data/. Migrate / back up the whole directory. - Public deployment: Front with nginx / caddy for HTTPS + domain.
📖 BeeCount-Cloud repo + backup system + audit reports →
Best for: iOS users wanting zero-config, seamless sync.
Pros:
- ✅ Zero config: works out of the box
- ✅ Native: auto-sync via Apple ID
- ✅ Privacy: data in your iCloud Drive
- ✅ Multi-device: iPhone + iPad auto-sync
Setup:
- Sign in to iCloud and enable iCloud Drive on the device
- Open BeeCount → Profile → Cloud Service
- Choose iCloud
💡 iCloud only works between iOS devices. For iOS + Android, use Supabase / S3 / BeeCount Cloud.
Best for: Users without NAS who want quick setup.
Setup:
-
Create Supabase project
- Sign up at supabase.com
- Create a new project; pick a region
- Get URL and anon key from project settings
-
Configure Storage
- Create a bucket named
beecount-backups - Set it to Private (don't check Public bucket)
- Configure RLS policies: Create 4 policies so users can only access their own data
- Go to bucket Policies tab
- Create the following 4 policies (same configuration each):
- SELECT: read own backup files
- INSERT: create new backups
- UPDATE: update own backups
- DELETE: delete own backups
- Each policy:
-
Policy name: customizable (e.g.
Allow user access to own backups) -
Target roles:
authenticated -
Policy definition:
((bucket_id = 'beecount-backups'::text) AND ((storage.foldername(name))[1] = 'users'::text) AND ((storage.foldername(name))[2] = (auth.uid())::text))
-
This ensures users only access
beecount-backups/users/<their-user-id>/.
-
- Create a bucket named
-
Configure in app
- Open BeeCount → Profile → Cloud Service
- Tap "Add custom cloud service"
- Service type: Supabase
- Enter your URL and anon key
- Save and enable
- Tap "Sign in", register or log in to start syncing
Best for: Users with NAS or private cloud storage.
Supported services:
- ✅ UGREEN NAS
- ✅ Synology NAS
- ✅ Nextcloud
- ✅ Jianguoyun WebDAV
- ✅ ownCloud
- ✅ Other WebDAV-compatible servers
Setup:
-
Enable WebDAV
- Enable WebDAV on your NAS or cloud platform
- Note the server URL (e.g.
http://nas.local:5005) - Create or use an existing user account
-
Prepare directory (optional)
- Create
BeeCountfolder under WebDAV root, or use any path
- Create
-
Configure in app
- Open BeeCount → Profile → Cloud Service
- Tap "Add custom cloud service"
- Service type: WebDAV
- Fill in:
- WebDAV server URL: e.g.
http://nas.local:5005 - Username / Password
- Remote path: e.g.
/home/BeeCountor/BeeCount
- WebDAV server URL: e.g.
- Tap "Test connection" to verify
- Save and enable. WebDAV doesn't need login — sync starts after configuration.
Common WebDAV examples:
UGREEN NAS:
- URL: http://your-nas:5005
- Remote path: /home/BeeCount
Synology NAS:
- URL: http://your-nas:5005 or https://your-domain
- Remote path: /BeeCount
Jianguoyun:
- URL: https://dav.jianguoyun.com/dav/
- Remote path: /BeeCount
Best for: Users who want flexible cloud providers or generous free tiers.
Supported services:
- ✅ Cloudflare R2 (recommended, 10GB free)
- ✅ AWS S3
- ✅ MinIO (self-hosted)
- ✅ Aliyun OSS / Tencent COS (S3-compatible)
- ✅ Others S3-protocol compatible storages
Setup (using Cloudflare R2):
-
Create R2 bucket
- Log into Cloudflare Dashboard
- Open R2
- Create a bucket like
beecount-backups - Note the bucket name
-
Get API credentials
- Click Manage R2 API Tokens
- Create a new API Token
- Permission: Object Read & Write
- Note:
- Access Key ID
- Secret Access Key
- Endpoint (like
<account-id>.r2.cloudflarestorage.com)
-
Configure in app
- Open BeeCount → Profile → Cloud Service
- Tap "Add custom cloud service"
- Service type: S3 Protocol
- Fill in:
- Endpoint: R2 endpoint (no
https://) - Region:
auto - Access Key / Secret Key
- Bucket name: e.g.
beecount-backups - Use HTTPS: enable (recommended)
- Port: leave blank
- Endpoint: R2 endpoint (no
- Tap "Test connection" to verify
- Save and enable
Other S3 examples:
Cloudflare R2:
- Endpoint: <account-id>.r2.cloudflarestorage.com
- Region: auto
- Use HTTPS: yes
AWS S3:
- Endpoint: s3.amazonaws.com
- Region: us-east-1 (use your bucket's region)
- Use HTTPS: yes
MinIO (self-hosted):
- Endpoint: minio.example.com
- Region: us-east-1 or auto
- Use HTTPS: based on your config
- Port: 9000 (or your custom)
Aliyun OSS (S3-compatible):
- Endpoint: oss-cn-hangzhou.aliyuncs.com
- Region: oss-cn-hangzhou
- Use HTTPS: yes
💡 Tips:
- Don't include
http://orhttps://in the endpoint- Cloudflare R2 free tier: 10GB storage + 10M Class A operations / month
Q: Which option should I pick?
- iOS single device → iCloud
- Multi-device real-time + self-host → BeeCount Cloud
- Cross-platform without NAS → Supabase or S3
- Have a NAS → WebDAV
Q: WebDAV upload failing?
- Check WebDAV is enabled and port is correct
- Verify username and password
- Some NAS WebDAV needs specific paths (e.g. UGREEN needs
/home/) - Tap "Test connection" for detailed errors
Q: S3 connection failing?
- Endpoint must not include
http://orhttps:// - Verify Access Key and Secret Key
- Verify bucket name spelling
- Check bucket region matches (AWS S3 needs exact, R2 uses
auto)
Q: How to sync between devices?
- iCloud: log into the same Apple ID
- BeeCount Cloud: same server URL + same account
- Supabase: same URL and anon key, same account
- WebDAV: same server URL and credentials
- S3: same endpoint, Access Key, and bucket
- 📦 Google Drive
- 📦 Dropbox
- 📦 OneDrive
If you want to prioritize a service, please raise an Issue!