Self-hosted Solosync stores sync data on your own Sync Server. One server instance serves one Solosync Group. No server is needed if you only use Solocord on one device.
Requirements
- PHP 8.2+ with
pdo_mysql,json,hash, andopenssl - MySQL 8+ or a compatible MariaDB release
- HTTPS
- Apache-compatible
.htaccess, or hosting that lets you setpublic/as the DocumentRoot
Production does not need Node.js or Composer. PHP’s zip extension is only needed to build a distribution ZIP. Check your host’s request size limit; the server’s default maximum SyncPack size is 16 MiB.
1. Upload the server
Get the Sync Server source or extract solosync-server/ from its distribution ZIP. On Apache shared hosting, the whole directory can be placed under a path such as public_html/solosync/ only after you verify that its access-denial and rewrite rules work. Otherwise, expose only public/ as the DocumentRoot and prevent direct web access to private/, src/, migrations/, and other internal directories.
The examples below assume the base URL is https://example.com/solosync/.
2. Run first-time setup
Visit https://example.com/solosync/setup.php. The first request creates private/setup.key.php. Open that file in your host’s file manager and paste only the value inside the quotes in return '...'; into the setup form.
Enter your database credentials and an administrator password. Setup prepares the database, generates a server identity, and creates private/config.php. It cannot run again once that file exists.
If you use the browser version of Solocord, allow its exact Origin. The official web app uses https://sc.kakikou.app. Native and Tauri clients do not need a CORS Origin entry. Trust X-Forwarded-Proto only when a trusted reverse proxy terminates HTTPS.
3. Create a connection key
Open https://example.com/solosync/admin/ and sign in as admin with your setup password. Create a connection key and keep it safe. The key is displayed only once.
4. Connect Solocord
In Solocord’s Solosync settings, choose self-hosted sync. Enter the server base URL (for example, https://example.com/solosync) and the connection key. The first Group to connect binds an empty server.
If the server already contains another Group, Solocord may ask whether to restore or merge. Read the prompt before deciding, and back up your notes before moving data.
Keep the installation safe
Never publish private/config.php, private/setup.key.php, connection keys, database dumps, or private plugins. SyncPacks are not end-to-end encrypted; the host administrator and trusted plugins can read their contents.
For manual configuration, see the server README and private/config.example.php. Manual installations also need “Install / Migrate” in the admin area or php bin/migrate.php.