A self-hosted any-sync network, designed for personal use, review, or testing purposes.
Important
This setup is suitable for personal self-hosted any-sync networks. For high-load production deployments, consider using the Puppet or Ansible modules.
Warning
Before upgrading, read the Upgrade Guide.
- Docker with Compose plugin v2+
- ~1 GB RAM available
The stack runs the following services:
| Service | Role | Depends on |
|---|---|---|
any-sync-coordinator |
Network coordinator, manages spaces and members | MongoDB |
any-sync-node ×3 |
Document sync nodes | coordinator |
any-sync-filenode |
File storage node | coordinator, MinIO, Redis |
any-sync-consensusnode |
Consensus for conflict resolution | coordinator |
netcheck |
Periodic connectivity health monitor | all nodes |
| MongoDB | Coordinator state | — |
| Redis | Filenode index | — |
| MinIO | S3-compatible object storage for files | — |
Optional service: anytype-cli (commented out in docker-compose.yml) — HTTP/gRPC API server for automation.
-
Clone the repository:
git clone https://github.com/anyproto/any-sync-dockercompose.git cd any-sync-dockercompose -
Configure (optional — skip for local-only use):
# Expose to an external IP: echo 'EXTERNAL_LISTEN_HOSTS="<yourExternalIp>"' >> .env.override
See Configuration for all options.
-
Start:
make start
On first run this generates configs in
./etc/and starts all services. -
Connect Anytype client: Upload
./etc/client.ymlto the Anytype app as your self-hosted network config. See Anytype docs.
| File | Purpose |
|---|---|
.env.default |
Default values — do not edit |
.env |
Generated file — do not edit |
.env.override |
Your customizations — edit this |
Common overrides:
# External IP(s) for clients outside localhost
EXTERNAL_LISTEN_HOSTS="1.2.3.4"
# Custom storage path (default: ./storage)
STORAGE_DIR="/mnt/data/any-sync"
# Per-daemon memory limit (default: 500M)
ANY_SYNC_DAEMONS_MEMORY_LIMIT=1GFull reference: Configuration Wiki.
make start # Generate config and start all services
make stop # Stop services (data preserved)
make restart # Stop and start again
make logs # Follow logs from all services
make pull # Pull latest Docker images
make update # pull + restart (rolling update)
make upgrade # ⚠️ Full reset: removes containers and volumes, then starts fresh
make down # Stop and remove containers (data preserved)
make clean # ⚠️ docker system prune --all --volumes (removes all Docker data)
make cleanEtcStorage # Remove generated ./etc/ configs and ./storage/Full guides are in the Wiki:
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 security@anytype.io 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.