All Projects → suda → dvsync

suda / dvsync

Licence: other
🐳️ Easy and secure way to copy data between Docker volumes, even across data centers

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to dvsync

scotty
java proxy
Stars: ✭ 44 (-25.42%)
Mutual labels:  tunnel
edgevpn
⛵ The immutable, decentralized, statically built p2p VPN without any central server and automatic discovery! Create decentralized introspectable tunnels over p2p with shared tokens
Stars: ✭ 223 (+277.97%)
Mutual labels:  tunnel
knx-go
KNX clients and protocol implementation in Go
Stars: ✭ 62 (+5.08%)
Mutual labels:  tunnel
purr
Smuggle TCP connections through HTTP
Stars: ✭ 35 (-40.68%)
Mutual labels:  tunnel
cfdtunnel
A wrapper for cloudflared that manages multi clients for you
Stars: ✭ 43 (-27.12%)
Mutual labels:  tunnel
bmx7
BMX7 / SEMTOR Securely Entrusted Mesh Routing Protocol
Stars: ✭ 55 (-6.78%)
Mutual labels:  tunnel
nat-tunnel
NAT Tunnel: to effortlessly serve from behind NAT
Stars: ✭ 75 (+27.12%)
Mutual labels:  tunnel
wireguard
Wireguard for UDM
Stars: ✭ 56 (-5.08%)
Mutual labels:  tunnel
ap-kcp
用于穿透恶劣网络环境的高性能可靠传输协议,基于 KCP 优化和修改,使用 Rust 实现
Stars: ✭ 121 (+105.08%)
Mutual labels:  tunnel
sixxsd
sixxsd - The SixXS Daemon - IPv6 Tunnel & Routing Engine
Stars: ✭ 19 (-67.8%)
Mutual labels:  tunnel
quictun
The simplest tunnel service based on QUIC.
Stars: ✭ 52 (-11.86%)
Mutual labels:  tunnel
webhook-tunnel
A little HTTP proxy suitable to create tunnels for webhook endpoints protected behind a firewall or a VPN
Stars: ✭ 63 (+6.78%)
Mutual labels:  tunnel
go-http-dialer
Go net.Dialer for HTTP(S) CONNECT Tunneling.
Stars: ✭ 55 (-6.78%)
Mutual labels:  tunnel
gohide
tunnel port to port traffic over an obfuscated channel with AES-GCM encryption.
Stars: ✭ 62 (+5.08%)
Mutual labels:  tunnel
ssh-web-console
Connect to your linux machine via ssh in your browser.
Stars: ✭ 198 (+235.59%)
Mutual labels:  tunnel
Ssh-Pascal
Delphi ssh library wrapping libssh2
Stars: ✭ 42 (-28.81%)
Mutual labels:  tunnel
tunman
Comprehensive solution for SSH tunnels - respawning, healthchecking/monitoring
Stars: ✭ 43 (-27.12%)
Mutual labels:  tunnel
nysocks
Nysocks binds kcp and libuv to provide an aggressive tcp tunnel in nodejs.
Stars: ✭ 78 (+32.2%)
Mutual labels:  tunnel
fuso
一款体积小, 快速, 稳定, 高效, 轻量的内网穿透, 端口转发工具 支持多连接,级联代理,传输加密 (A small volume, fast, stable, efficient, and lightweight intranet penetration, port forwarding tool supports multiple connections, cascading proxy, and transmission encryption)
Stars: ✭ 1,132 (+1818.64%)
Mutual labels:  tunnel
ondevice
ondevice.io client
Stars: ✭ 32 (-45.76%)
Mutual labels:  tunnel


dvsync


Easy and secure way to copy data between Docker volumes, even across VPCs or data centers.

dvsync is a set of two containers running OpenSSH, ngrok and rsync that automatically create a secure, encrypted channel between each other and enable easy way to migrate data stored in Docker volumes.

Client: dvsync-client Server: dvsync-client


Running

⚠️ To establish a secure channel, dvsync uses ngrok and you need to pass your NGROK_AUTHTOKEN which can be found in ngrok dashboard.

dvsync will synchronize contents of its /data directory, therefore whatever data you want to sync, should be mounted under it.

Here are example ways to run it using Docker CLI, Docker Compose / Swarm or Kubernetes. Note that you can mix those, making data migration much easier.

Docker CLI

  1. Start a server where you want to copy data from:
docker run --rm -e NGROK_AUTHTOKEN="$NGROK_AUTHTOKEN" \
  --mount source=MY_SOURCE_VOLUME,target=/data,readonly \
  quay.io/suda/dvsync-server
  1. Once the server started, look into the logs and copy the DVSYNC_TOKEN
  2. Start the client where you want tot copy the data to:
docker run --rm -e DVSYNC_TOKEN="$DVSYNC_TOKEN" \
  --mount source=MY_TARGET_VOLUME,target=/data \
  quay.io/suda/dvsync-client

Using local source/target

Alternatively, if you want to copy this data to your local machine, you can mount a host directory as well:

docker run --rm -e DVSYNC_TOKEN="$DVSYNC_TOKEN" \
  -v $PWD:/data \
  quay.io/suda/dvsync-client

This can also be done other way around, when you start the server locally if you need to copy local data into the data center.

Docker Compose / Swarm

  1. Start a server where you want to copy data from:
version: '3.6'
services:
  dvsync-server:
    image: 'quay.io/suda/dvsync-server'
    environment:
      NGROK_AUTHTOKEN: ${NGROK_AUTHTOKEN}
    volumes:
      - type: volume
        source: MY_SOURCE_VOLUME
        target: /data
        read_only: true
volumes:
  MY_SOURCE_VOLUME:
  1. Once the server started, look into the logs and copy the DVSYNC_TOKEN
  2. Start the client where you want tot copy the data to:
version: '3.6'
services:
  dvsync-server:
    image: 'quay.io/suda/dvsync-client'
    environment:
      DVSYNC_TOKEN: ${DVSYNC_TOKEN}
    volumes:
      - type: volume
        source: MY_TARGET_VOLUME
        target: /data
volumes:
  MY_SOURCE_VOLUME:

Kubernetes

  1. Start a server where you want to copy data from:
apiVersion: v1
kind: Pod
metadata:
  name: dvsync-server
spec:
  containers:
  - image: quay.io/suda/dvsync-server
    name: dvsync-server
    env:
    - name: NGROK_AUTHTOKEN
      value: "REPLACE WITH YOUR NGROK_AUTHTOKEN"
    volumeMounts:
    - mountPath: /data
      name: MY_SOURCE_VOLUME
  volumes:
  - name: MY_SOURCE_VOLUME
  1. Once the server started, look into the logs and copy the DVSYNC_TOKEN
  2. Start the client where you want tot copy the data to:
apiVersion: v1
kind: Pod
metadata:
  name: dvsync-client
spec:
  containers:
  - image: quay.io/suda/dvsync-client
    name: dvsync-client
    env:
    - name: DVSYNC_TOKEN
      value: "REPLACE WITH YOUR DVSYNC_TOKEN"
    volumeMounts:
    - mountPath: /data
      name: MY_TARGET_VOLUME
  volumes:
  - name: MY_TARGET_VOLUME

Contributing

All contributions (no matter if small) are always welcome.

To see how you can help and where to start see Contributing file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].