βοΈ Cloud Sync Configuration Guide
May 4, 2026 Β· View on GitHub
π δΈζ
BeeCount supports 5 cloud sync options. Choose based on your scenario.
Comparison
| 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 |
π BeeCount Cloud (Self-hosted Sync + Web)
Sub-second multi-device sync + Web admin + multi-user isolation. Recommended for users with NAS / VPS / Docker.
One-click Deploy
# docker-compose.yml
services:
beecount-cloud:
image: sunxiao0721/beecount-cloud:latest
restart: unless-stopped
ports:
- "8869:8080"
volumes:
- ./data:/data
docker 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
Add Family / Teammates
Web console β "Users" β "Add User" with their email and password β tell them to log in. Each user's data is isolated.
Advanced Configuration
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
Tips
- 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 β
Option 2: iCloud (Recommended for iOS)
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.
Option 3: Supabase (Beginner-friendly)
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
Option 4: WebDAV (Recommended for NAS Users)
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
Option 5: S3 Protocol (Recommended for Flexibility)
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
FAQ
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
Roadmap
- π¦ Google Drive
- π¦ Dropbox
- π¦ OneDrive
If you want to prioritize a service, please raise an Issue!