Yes... we now have a name!
The Bio::Neos backup system has a long history, starting as a BASH script written by @rossj when he was a high school intern for us, then later converted to a Ruby script, with an addition of Sinatra for a basic monitoring web interface, then an initial porting to NodeJS by @malyon. After the port of the Ruby version, more or less directly, we needed to do a big reorganization to adjust to Node / JS norms. Although I am sure we still have a long way to go with this, the basic functionality in this updated version is mostly in place.
Now we have decided to put this in a more public location before finishing the work on it, enter: GitHub. If you would like to contribute, comment, or just review the system -- go ahead and browse around. We welcome any and all helpful commentary.
Required version of Node.js: 10.x
Older versions might work as well, but recent development has been using this version of Node exclusively.
The system will not start without a system config and at least one machine config.
Look at the example in <project_root>/etc/alcove/alcove.ini.example
. Your config only
needs to contain the required options that don't have defaults (data_dir
,
notifications.email_to
& notifications.email_from
)
Look at the example in <project_root>/etc/alcove/machines/machine.ini.example
. Your
config only needs to have the required options. (name
, ip
, and schedule
)
The system using rsync over an SSH connection, and works best if you do not have
to worry about permission issues. For this reason, the system should be authorized
to connect to the remote machine using the root
user with an strong SSH Key Pair.
By default, the connection will use the identity of the user that runs the system
(~/.ssh/id_rsa
), but we suggest generating a new identity just for this system,
and to enable automated operation you cannot set a passphrase with this key.
$ ssh-keygen -f <project_root>/etc/backup/id_rsa
Within your config specify this identity with the option rsync.identity
by
setting it equal to the location of the private key id_rsa
with the public key
accessible at the same level.
Be sure to set the appropriate username and permissions if the key is generated by a user different than the one that will be used to execute this system.