Description
Autobd is a simple, feature full and easy to use server-node style backup daemon. Setup a server inside a docker container on the box you want to share files from, setup a node (also inside a docker container, or outside) on another, and watch the node sync.
autobd alternatives and similar packages
Based on the "Server Applications" category.
Alternatively, view autobd alternatives based on common mentions on social networks and blogs.
-
etcd
Distributed reliable key-value store for the most critical data of a distributed system -
Caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS -
Vault
A tool for secrets management, encryption as a service, and privileged access management -
consul
Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure. -
apex
Build, deploy, and manage AWS Lambda functions with ease (with Go support!). -
RoadRunner
🤯 High-performance PHP application server, process manager written in Go and powered with plugins -
SFTPGo
Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob -
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native) -
Ponzu
Headless CMS with automatic JSON API. Featuring auto-HTTPS from Let's Encrypt, HTTP/2 Server Push, and flexible server framework written in Go. -
Flagr
Flagr is a feature flagging, A/B testing and dynamic configuration microservice -
algernon
:tophat: Small self-contained pure-Go web server with Lua, Markdown, HTTP/2, QUIC, Redis and PostgreSQL support -
discovery
A registry for resilient mid-tier load balancing and failover. -
Trickster
Open Source HTTP Reverse Proxy Cache and Time Series Dashboard Accelerator -
Key Transparency
A transparent and secure way to look up public keys. -
Rendora
dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites -
jackal
💬 Instant messaging server for the Extensible Messaging and Presence Protocol (XMPP). -
Golang API Starter Kit
Go Server/API boilerplate using best practices DDD CQRS ES gRPC -
go-feature-flag
GO Feature Flag is a simple, complete and lightweight feature flag solution 100% Open Source. 🎛️ -
Euterpe
Self-hosted music streaming server 🎶 with RESTful API and Web interface. Think of it as your very own Spotify! ☁️🎧 -
goproxy
🦁 goproxy is a proxy server which can forward http or https requests to remote servers./ goproxy 是一个反向代理服务器,支持转发 http/https 请求。 -
Eru
Eru, a simple, stateless, flexible, production-ready orchestrator designed to easily integrate into existing workflows. Can run any virtualization things in long or short time. -
marathon-consul
Integrates Marathon apps with Consul service discovery. -
cortex-tenant
Prometheus remote write proxy that adds Cortex/Mimir tenant ID based on metric labels -
go-proxy-cache
Simple Reverse Proxy with Caching, written in Go, using Redis. -
lets-proxy2
Reverse proxy with automatically obtains TLS certificates from Let's Encrypt -
Simple CRUD App w/ Gorilla/Mux, MariaDB
Simple CRUD Application with Go, Gorilla/mux, MariaDB, Redis. -
protoxy
A proxy server than converts JSON request bodies to protocol buffers -
simple-jwt-provider
Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. -
go-fitbit
Fitbit API for Go to fetch, add, update and delete data on Fitbit using REST API -
riemann-relay
Service for relaying Riemann events to Riemann/Carbon destinations
TestGPT | Generating meaningful tests for busy devs
Do you think we are missing an alternative of autobd or a related project?
Popular Comparisons
README
[autobd] (logo.png?raw=true "autobd")
Backing you up since whenever...
What is it?
Autobd is an automatic backup daemon. What is that? A daemon (derived from the evil word 'demon') is a process or program that runs (mostly) silently in the background, and handles certain tasks. This 'Demons' task is to back up a directory tree.
Say you have three servers. A, B and C. You have files on server A that you want on servers B and C. You don't really want to some convoluted and hacky script, you need something that is just going to work in the background, require almost no configuration or installation of any additional software, and is super easy to get running via docker.
Enter Autobd.
All you need to do on server A is set the directory you want to watch via the DATA_DIR
variable in scripts/docker/deploy-server.sh
, then you can
start the daemon by running this script. This will start a single autobd server instance, running inside of docker. You can curl
http://0.0.0.0:8080/version
, and you will get version information from the server.
Now you just need to get your nodes going. This is just like the server, except you're using another script, pre-written. All
you need to do is let the node know which directory you want it to put synced files into, via the DATA_DIR
variable in
the scripts/docker/deploy-nodes.sh
script and run the it. You're good to go.
Once the nodes and server are running, the nodes will identify with the server, and request an initial file index from there server. The first sync of course will be quite large, since the node is getting everything, but subsequent syncs will usually be much smaller, unless you dump a lot of files onto the server at once.
The nodes will do this again and again in an interval, that you can define in etc/config.toml.node. Additionally, each node will send the server a 'heartbeat' in an interval. This lets the server know of the status of each node, if it's synced, and if it's still online. So you need only access the server, to get information on the entire 'horde' of 'demons' :)
That's autobd in a nutshell.
See the [tutorial](./Documentation/TUTORIAL.md) for a more in-depth guide.
Getting autobd
Golang is required, so get that. Most versions should work but it's probably best to stick with at least 1.4.2 as that's what I'm developing on.
After you have go installed, it's as simple as either cloning the git repo:
git clone https://github.com/tywkeene/autobd
or using go get:
go get github.com/tywkeene/autobd
and to build
$ cd autobd
$ ./build.sh
Getting it running
To run autobd , simply do: ./autobd -config etc/config.toml
Autobd ships with two configuration files, config.toml.server and config.toml.node, to get you started running both
Dockerfile
Autobd ships with two Dockerfiles and the scripts to deploy both server and node containers. You'll of course need docker
scripts/docker/deploy-server.sh
Usage: ./scripts/docker/deploy-server.sh
Removes old autobd-server container, builds a new image, and deploys a new autobd-server container using the arguments:
DATA_DIR="/home/$USER/data/server-data"
SECRET_DIR="/home/$USER/secret"
ETC_DIR="/home/$USER/etc/autobd"
PORT=8080
These variables may be modified to suit your needs.
scripts/docker/deploy-nodes.sh
Usage: ./scripts/docker/deploy-nodes.sh n
Builds new autobd-node images, and deploys n nodes
scripts/docker/kill-nodes.sh
Usage: ./scripts/docker/kill-nodes.sh n
Runs docker rm -f
for n nodes
scripts/docker/setup-network.sh
Usage ./scripts/docker/setup-network.sh
Sets up a docker network for server and nodes to communicate. (I basically just use this testing, may or may not be useful to you)
The API
See [API.md](./Documentation/API.md)
Contributing
Open a pull request or issue with your idea or bug. Really. Anything wrong with anything anywhere, open a ticket and let me know, then we can work on it together :) (Just be sure to check the story board before creating a new ticket) and checkout the [Development Process](./Documentation/development_process.png) flowchart.