Ansible roles for deploying any-sync daemons. Supports Debian- and RHEL-based Linux distributions.
Infrastructure requirements:
| Component | Count | Notes |
|---|---|---|
| any-sync-node | 3+ | Document sync nodes |
| any-sync-coordinator | 1 | Network coordinator, manages spaces and members |
| any-sync-filenode | 1 | File storage node |
| any-sync-consensusnode | 1 | Consensus for conflict resolution |
| Redis with Bloom module | 1 | Filenode index |
| MongoDB ≥4 (latest version is recommended) | 1–3 | Coordinator state; must be in Replica Set mode |
| S3 storage | 1 | Object storage for files — any S3-compatible cloud (AWS S3, GCS, etc.) or self-hosted (e.g. Minio) |
Tooling:
- Ansible v2.11+
- any-sync-tools for generating network configuration
git clone https://github.com/anyproto/ansible-anysync.gitEdit inventory.ini to match your infrastructure. Example structure:
[any_sync_node]
any-sync-node1 ansible_host=10.10.0.1
any-sync-node2 ansible_host=10.10.0.2
any-sync-node3 ansible_host=10.10.0.3
[any_sync_filenode]
any-sync-filenode1 ansible_host=10.10.1.1
[any_sync_coordinator]
any-sync-coordinator1 ansible_host=10.10.2.1
[any_sync_consensusnode]
any-sync-consensusnode1 ansible_host=10.10.3.1
[any_sync:children]
any_sync_node
any_sync_filenode
any_sync_coordinator
any_sync_consensusnode
; optional: self-hosted S3 (e.g. Minio)
[s3]
minio ansible_host=10.10.6.1Use any-sync-tools to generate your network configuration, then copy the following values into group_vars/any_sync.yml:
networkId— from the generatedclient.ymlpeerId,peerKey,signingKey— for each any-sync-* node
any_sync_config:
networkId: <your-network-id>
any-sync-node1:
peerId: <peerId>
peerKey: <peerKey>
signingKey: <signingKey>
type: tree
addresses:
- "{{ hostvars['any-sync-node1'].ansible_host }}:{{ any_sync_node_yamux_port }}"
- "quic://{{ hostvars['any-sync-node1'].ansible_host }}:{{ any_sync_node_quic_port }}"
# ... repeat for each nodeTune each daemon's settings by editing defaults/main.yml inside the corresponding role directory. This includes MongoDB/Redis URLs, ports, and other options.
The latest compatible component versions are published at the any-sync versions API.
ansible-playbook any-sync.yml -i inventory.iniAfter the cluster is up, import the client.yml file (generated in step 2) into your Anytype client app.
Thank you for your desire to develop Anytype together!
❤️ This project and everyone involved in it is governed by the Code of Conduct.
🧑💻 Check out our contributing guide to learn about asking questions, creating issues, or submitting pull requests.
🫢 For security findings, please email [email protected] and refer to our security guide for more information.
🤝 Follow us on Github and join the Contributors Community.
Made by Any — a Swiss association 🇨🇭
Licensed under MIT.