GitPedia

Any sync bundle

Anytype Bundle: Prepackaged All-in-One Self-Hosting

From grishy·Updated June 24, 2026·View on GitHub·

Self-host Anytype in 60 seconds. One command. Zero complexity. The project is written primarily in Go, distributed under the MIT License license, first published in 2024. Key topics include: all-in-one, anytype, docker, freebsd, golang.

Latest release: v1.4.3-2026-04-21
April 27, 2026View Changelog →
<p align="center"> <img src="./docs/logo.png" width="550"> </p> <p align="center"> <b>Self-host Anytype in 60 seconds. One command. Zero complexity.</b> </p> <p align="center"> <a href="https://github.com/grishy/any-sync-bundle/tags"><img src="https://img.shields.io/github/v/tag/grishy/any-sync-bundle" alt="Version"></a> &nbsp; <a href="https://github.com/grishy/any-sync-bundle/actions"><img src="https://github.com/grishy/any-sync-bundle/actions/workflows/release.yml/badge.svg" alt="Build"></a> &nbsp; <a href="https://goreportcard.com/report/github.com/grishy/any-sync-bundle"><img src="https://goreportcard.com/badge/github.com/grishy/any-sync-bundle" alt="Go Report Card"></a> </p>

any-sync-bundle is a prepackaged, all-in-one self-hosted server for Anytype – a local-first, privacy-focused alternative to Notion. It merges all official Anytype sync modules into a single binary for simplified deployment. Think of it as "K3s for Any Sync".

💡 New to Anytype? It's a local-first, privacy-focused alternative to Notion. Learn more →

TL;DR

Replace 192.168.100.9 with:

  • Your server's local IP for LAN-only access (e.g., 192.168.1.100)
  • Your public domain for remote access (e.g., sync.example.com)
  • Both (comma-separated) for flexibility: sync.example.com,192.168.1.100
sh
docker run -d \ -e ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRS="192.168.100.9" \ -p 33010:33010 \ -p 33020:33020/udp \ -v $(pwd)/data:/data \ --restart unless-stopped \ ghcr.io/grishy/any-sync-bundle:1.4.3-2026-04-21

After the first run, import ./data/client-config.yml into Anytype apps.

How to configure Anytype apps to use your self-hosted server? Client setup →

Overview

Key Features

  • Easy to start: A single command to launch the server
  • All-in-one option: All services in a single container or in separate binaries
  • Zero-config: Sensible defaults, configurable when needed
  • Lightweight: No MinIO option, and no duplicate logical services
  • Only 2 open ports: TCP 33010 (DRPC protocol) and UDP 33020 (QUIC protocol)

Who is this for?

  • Self-hosters who value simplicity over complexity
  • Low resource Homelab setups and Raspberry Pi deployments

Not for you if

  • ❌ You need high-availability clustering across multiple nodes
  • ❌ You require horizontal scaling beyond a single server
  • ❌ You want to use the official Anytype architecture as-is

Architecture

Comparison with original deployment

Version

Current version: v1.4.3-2026-04-21

Format: v[bundle-version]-[anytype-compatibility-date]

  • v1.4.3 – Bundle's semantic version (SemVer)
  • 2026-04-21 – Anytype any-sync compatibility date from anytype.io

The compatibility date suffix is always derived in UTC.

Compatibility: From 1.x onward we follow SemVer; 1.x upgrades are non‑breaking.

Installation

Available Images

Image TagDescription
ghcr.io/grishy/any-sync-bundle:1.4.3-2026-04-21All-in-one (embedded MongoDB/Redis)
ghcr.io/grishy/any-sync-bundle:1.4.3-2026-04-21-minimalMinimal (external MongoDB/Redis)

Latest tags (:latest, :minimal) are available, but explicit version tags are recommended.

FileDescription
compose.aio.ymlAll-in-one with embedded MongoDB/Redis
compose.external.ymlBundle + external MongoDB + Redis containers
compose.s3.ymlBundle + MinIO for S3 storage
compose.traefik.ymlWith Traefik reverse proxy
sh
# Pick one as example: docker compose -f compose.aio.yml up -d docker compose -f compose.external.yml up -d docker compose -f compose.s3.yml up -d

Edit ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRS in the compose file before starting.

Binary

  1. Download from the Release page
  2. Run:
sh
./any-sync-bundle start-bundle \ --initial-external-addrs "192.168.100.9" \ --initial-mongo-uri "mongodb://127.0.0.1:27017/" \ --initial-redis-uri "redis://127.0.0.1:6379/" \ --initial-storage ./data/storage

Configuration

Quick Reference

VariablePurposeRequired
ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRSAdvertised addressesYes
ANY_SYNC_BUNDLE_INIT_MONGO_URIMongoDB connectionNo
ANY_SYNC_BUNDLE_INIT_REDIS_URIRedis connectionNo
ANY_SYNC_BUNDLE_INIT_S3_BUCKETS3 bucket nameNo
ANY_SYNC_BUNDLE_INIT_S3_ENDPOINTS3 endpoint URLNo
ANY_SYNC_BUNDLE_INIT_S3_REGIONS3 region (default: us-east-1)No
ANY_SYNC_BUNDLE_INIT_S3_FORCE_PATH_STYLEPath-style S3 URLs (for MinIO)No
ANY_SYNC_BUNDLE_INIT_FILENODE_DEFAULT_LIMITStorage limit per space in bytesNo
AWS_ACCESS_KEY_IDS3 credentialsNo
AWS_SECRET_ACCESS_KEYS3 credentialsNo

Configuration Files

FilePurposeBackup?
./data/bundle-config.ymlService config + private keys🔴 Yes
./data/client-config.ymlClient config (regenerated on each start)🟢 No

Storage Options

Local Storage (Default)

By default, the bundle uses embedded BadgerDB. No configuration needed.

+ Zero configuration
+ No external dependencies
+ Lower latency
- Limited by local disk space

S3 Storage (Optional)

Uses the original Anytype upstream S3 implementation from any-sync-filenode.

+ Supports AWS S3, MinIO, DigitalOcean Spaces, Cloudflare R2, Backblaze B2
- Network latency
- Requires configuration

Enable S3 with:

sh
export AWS_ACCESS_KEY_ID="..." export AWS_SECRET_ACCESS_KEY="..." ./any-sync-bundle start-bundle \ --initial-s3-bucket "my-bucket" \ --initial-s3-endpoint "https://s3.us-east-1.amazonaws.com"

For MinIO, add --initial-s3-force-path-style. If your MinIO uses a custom
region, also add --initial-s3-region:

sh
./any-sync-bundle start-bundle \ --initial-s3-bucket "my-bucket" \ --initial-s3-endpoint "http://minio:9000" \ --initial-s3-region "custom-region" \ --initial-s3-force-path-style

Docker Compose with MinIO:

sh
docker compose -f compose.s3.yml up -d # MinIO console: http://localhost:9001 (minioadmin/minioadmin)

Parameters

All parameters available as binary flags or environment variables. See ./any-sync-bundle --help.

Note: --initial-* options are used only on first run to create bundle-config.yml. Subsequent starts read from the persisted config.

Global Flags

FlagDescription
--debugEnable debug mode with detailed logging <br> ‣ Default: false <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_DEBUG
--log-levelLog level (debug, info, warn, error, fatal) <br> ‣ Default: info <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_LOG_LEVEL
--pprofEnable pprof HTTP server for profiling <br> ‣ Default: false <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_PPROF
--pprof-addrAddress for pprof HTTP server (only used when --pprof is enabled) <br> ‣ Default: localhost:6060 <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_PPROF_ADDR
--help, -hShow help
--version, -vPrint the version

Commands

CommandDescription
start-bundleStart with external MongoDB/Redis
start-all-in-oneStart with embedded MongoDB/Redis (used in all-in-one container)

Start Command Flags

FlagDescription
--bundle-config, -cPath to the bundle configuration YAML file <br> ‣ Default: ./data/bundle-config.yml <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_CONFIG
--client-config, --ccPath where write to the Anytype client configuration YAML file if needed <br> ‣ Default: ./data/client-config.yml <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_CLIENT_CONFIG
--initial-storageInitial path to the bundle data directory (must be writable) <br> ‣ Default: ./data/storage/ <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_STORAGE
--initial-external-addrsInitial external addresses for the bundle <br> ‣ Default: 192.168.8.214,example.local <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRS
--initial-mongo-uriInitial MongoDB URI for the bundle <br> ‣ Default: mongodb://127.0.0.1:27017/ <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_MONGO_URI
--initial-redis-uriInitial Redis URI for the bundle <br> ‣ Default: redis://127.0.0.1:6379/ <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_REDIS_URI
--initial-s3-bucketS3 bucket name <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_S3_BUCKET
--initial-s3-endpointS3 endpoint URL <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_S3_ENDPOINT
--initial-s3-regionS3 region for request signing <br> ‣ Default: us-east-1 <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_S3_REGION
--initial-s3-force-path-styleUse path-style S3 URLs (required for MinIO) <br> ‣ Default: false <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_S3_FORCE_PATH_STYLE
--initial-filenode-default-limitStorage limit per space in bytes <br> ‣ Default: 1099511627776 (1 TiB) <br> ‣ Environment Variable: ANY_SYNC_BUNDLE_INIT_FILENODE_DEFAULT_LIMIT

Operations

Backup & Recovery

Backup:

sh
# Stop service first tar -czf backup-$(date +%Y%m%d-%H%M%S).tar.gz ./data/

Restore:

sh
rm -rf ./data && tar -xzf backup-YYYYMMDD-HHMMSS.tar.gz

Upgrading

  1. Backup your ./data/ directory
  2. Stop the current service
  3. Pull new image: docker pull ghcr.io/grishy/any-sync-bundle:NEW_VERSION
  4. Start the service
  5. Verify: check logs and --version

If upgrade fails, restore from backup and use the previous version.

Troubleshooting

Client can't connect:

  • Verify ANY_SYNC_BUNDLE_INIT_EXTERNAL_ADDRS matches your server's reachable IP/hostname
  • Check firewall: TCP 33010 and UDP 33020 must be open

Wrong external address after first run:

  • Edit ./data/bundle-config.ymlexternalAddr: list
  • Restart server (new client-config.yml will be generated)

MongoDB crashes with "illegal instruction" (AIO):

  • Your CPU doesn't support AVX instructions required by MongoDB 5.0+
  • Common on older Intel Celeron, Atom, and similar low-power CPUs
  • Use :minimal image with external MongoDB 4.4 or earlier

Development

See CONTRIBUTING.md for build instructions, development setup, and release process.

Acknowledgments

This project wouldn't exist without:

  • Anytype – For creating an amazing local-first, privacy-focused tool
  • The any-sync team – For open-sourcing the sync infrastructure
  • The self-hosting community – For testing, feedback, and support

License

© 2025 Sergei G.
Licensed under MIT.

<p align="center"> <sub>Built with ❤️ for data ownership, local-first, and open-source</sub> </p>

Contributors

Showing top 4 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from grishy/any-sync-bundle via the GitHub API.Last fetched: 6/25/2026