Self-host for any-sync, designed for personal usage or for review and testing purposes.
Important
This image is suitable for running your personal self-hosted any-sync network for home usage. If you plan to self-host a heavily used any-sync network, please consider other options.
Warning
Starting from release version v2.0.1, we have transitioned from the s3-emulator to minio as the data storage for any-sync-filenode. Please note that this change will result in the loss of any-sync-filenode data (stored at the path ./storage/s3_root
).
- install docker and docker-compose https://docs.docker.com/compose/install/linux/
-
start stand - at the first run the directories
etc/
of configuration files andstorage/
for data storage will be generated:For Linux, MacOS and other nix* systems:
make start
For Windows (Run this in PowerShell, not cmd.exe):
# Generate config docker build -t generateconfig -f Dockerfile-generateconfig . docker run --rm -v ${PWD}/etc:/opt/processing/etc --name any-sync-generator generateconfig # Run containers docker compose up -d
-
stop stand:
make stop
-
restart stand:
make restart
-
update image versions and start:
make update
-
clean unused docker objects:
make clean
-
clean config and storage files - deleting data for redis, mongo, s3, any-sync-*:
make cleanEtcStorage
-
show logs:
docker-compose logs -f any-sync-node docker-compose logs -f any-sync-filenode docker-compose logs -f
-
attach to container:
docker compose exec mongo-1 bash docker compose exec any-sync-node-1 bash docker compose exec any-sync-coordinator bash
-
restart certain container:
docker compose restart any-sync-node-1
-
get current network config
docker compose exec mongo-1 mongosh 127.0.0.1:27001/coordinator db.getMongo().setReadPref('primaryPreferred'); db.nodeConf.find().sort( { _id: -1 } ).limit(1)
-
run client (GUI)
Use
<pathToRepo>/any-sync-dockercompose/etc/client.yml
as a network configuration for the clients. See the documentation for more details. -
run client (CLI)
# macos example ANYTYPE_LOG_LEVEL="*=DEBUG" ANYPROF=:6060 ANY_SYNC_NETWORK=<pathToRepo>/any-sync-dockercompose/etc/client.yml /Applications/Anytype.app/Contents/MacOS/Anytype
Use file .env
- Set specific versions: find and edit variables with suffix "_VERSION"
- Set external listen host: default 127.0.0.1, for change you need edit variable "EXTERNAL_LISTEN_HOST"
You can find compatible versions on these pages:
- stable versions, used in production
- unstable versions, used in test stand
If you need to create local build binaries for any-sync-*, you can do so by using the "overrides" functionality in docker-compose.
- clone repos
install -d repos && for REPO in any-sync-{node,filenode,coordinator,consensusnode}; do if [[ ! -d repos/$REPO ]]; then git clone [email protected]:anyproto/${REPO}.git repos/$REPO; fi; done
- to create a symlink for the "override file," you can either create it yourself as docker-compose.override.yml or use an existing one
ln -F -s docker-compose.any-sync-node-1.yml docker-compose.override.yml
- restart docker compose
make restart
open link in browser: http://127.0.0.1:80
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.