Self-Hosted Sync Overview
Run your own sync server to keep your data in sync across devices. The server is lightweight and easy to set up with Docker.
How It Works
Section titled “How It Works”The server stores your data in a single ascently.json file and images in a directory. It’s simple: last write wins. Authentication is a static bearer token you set.
Features
Section titled “Features”- Delta sync: Only syncs changed data
- Image sync: Automatically syncs problem images
- Conflict resolution: Last-write-wins based on timestamps
- Cross-platform: Works with iOS and Android clients
- Privacy: Your data, your server, no analytics
API Endpoints
Section titled “API Endpoints”GET /health- Health checkGET /sync- Download full datasetPOST /sync- Upload full datasetPOST /sync/delta- Sync only changes (recommended)POST /images/upload?filename={name}- Upload imageGET /images/download?filename={name}- Download image
All endpoints require Authorization: Bearer <your-token> header.
See the API Reference for complete documentation.
Getting Started
Section titled “Getting Started”Check out the Quick Start guide to get your server running with Docker Compose.
You’ll need:
- Docker and Docker Compose
- A secure authentication token
- A place to store your data
The server will be available at http://localhost:8080 by default. Configure your Ascently apps with your server URL and auth token to start syncing.
How Sync Works
Section titled “How Sync Works”- First sync: Client uploads or downloads full dataset
- Subsequent syncs: Client uses delta sync to only transfer changed data
- Conflicts: Resolved automatically using timestamps (newer wins)
- Images: Synced automatically with problem data
Active sessions are excluded from sync until completed.