Skip to content

anyproto/any-sync-dockercompose

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

266 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Docker Compose for any-sync

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.

Requirements

  • Docker with Compose plugin v2+
  • ~1 GB RAM available

Architecture

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.

Getting Started

  1. Clone the repository:

    git clone https://github.com/anyproto/any-sync-dockercompose.git
    cd any-sync-dockercompose
  2. Configure (optional — skip for local-only use):

    # Expose to an external IP:
    echo 'EXTERNAL_LISTEN_HOSTS="<yourExternalIp>"' >> .env.override

    See Configuration for all options.

  3. Start:

    make start

    On first run this generates configs in ./etc/ and starts all services.

  4. Connect Anytype client: Upload ./etc/client.yml to the Anytype app as your self-hosted network config. See Anytype docs.

Configuration

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=1G

Full reference: Configuration Wiki.

Quick Reference

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/

Documentation

Full guides are in the Wiki:

Contribution

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.

About

Deploy your own any-sync network with Docker Compose - self-host Anytype backend

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors