{ "info": { "author": "Kale Kundert", "author_email": "kale@thekunderts.net", "bugtrack_url": null, "classifiers": [], "description": "*******************************\nSpare Keys\n*******************************\nSpare Keys makes and distributes encrypted copies of the files that you would \nneed to recover from a catastrophic hard drive failure, e.g. SSH keys, GPG \nkeys, password vaults, etc. The basic process goes like this:\n\n- You specify which files you want to keep spare copies of. You can do this by \n editing a configuration file, or by installing plugins.\n\n- You specify where you want to store encrypted copies of theses files (e.g. \n remote hosts, USB drives, etc.), again via configuration files or plugins.\n\n- Run ``sparekeys`` to automatically create, encrypt, and distribute spare \n copies of the specified files to the specified locations. A decryption \n script is distributed with the archive, so the only thing you need to \n remember is the password you used for the encryption.\n\n- If you ever lose your hard drive, download the most recent archive from any \n of the backup locations and run the provided decryption script to recover \n your credentials.\n\n.. image:: https://img.shields.io/pypi/v/sparekeys.svg\n :target: https://pypi.python.org/pypi/sparekeys\n\n.. image:: https://img.shields.io/pypi/pyversions/sparekeys.svg\n :target: https://pypi.python.org/pypi/sparekeys\n\n.. image:: https://img.shields.io/travis/kalekundert/sparekeys.svg\n :target: https://travis-ci.org/kalekundert/sparekeys\n\n.. image:: https://img.shields.io/coveralls/kalekundert/sparekeys.svg\n :target: https://coveralls.io/github/kalekundert/sparekeys?branch=master\n\nInstallation\n============\nSpare Keys can be installed from PyPI::\n\n $ pip3 install sparekeys\n\nNote that Spare Keys requires python\u22653.6.\n\nUsage\n=====\nTo get started, simply run the following command::\n\n $ sparekeys\n\nThis will create and execute a default configuration that will save your SSH \nand GPG credentials. Your credentials won't be copied anywhere, but the path \nto the encrypted archive will be shown so that you can copy it yourself.\n\nFor more information::\n\n $ sparekeys -h\n\nConfiguration\n=============\nThe configuration file is based on the TOML file format. On Linux systems, it \ncan be found at::\n\n ~/.config/sparekeys/config.toml\n\nThe basic syntax is as follows (lower-case words are literal, upper-case words \nwould be replaced by meaningful values)::\n\n [archive.PLUGIN_1]\n OPTION = VALUE\n\n [publish.PLUGIN_2]\n OPTION = VALUE\n\n [auth.PLUGIN_3]\n OPTION = VALUE\n\n # It's also possible to specify multiple sets of options for the same\n # plugin:\n\n [[archive.PLUGIN_4]]\n OPTION = VALUE_3A\n\n [[archive.PLUGIN_4]]\n OPTION = VALUE_3B\n\n # Any plugin an be disabled like so:\n\n [archive.PLUGIN_5]\n disable = true\n\nBasically, there are three things that Spare Keys does:\n\n- \"archive\": Find important files and copy them into an archive.\n- \"auth\": Encrypt the archive using a password.\n- \"publish\": Copy the encrypted archive to remote destinations.\n\nEach of these processes can be executed in different ways by different \n\"plugins\". See the Plugins_ section below for more details. Options can be \nspecified for each plugin in the corresponding block. Below are the options \nunderstood by the built-in plugins:\n\n``[archive.file]``\n Copy files (local or remote) into the archive.\n\n - ``src`` (str or list): One or more files to copy into the archive. \n Trailing slashes are significant, because these paths will be passed to \n ``rsync`` (by default). See ``man rsync`` for more information.\n\n - ``dest`` (str or list): The names to give the copied files in the archive. \n By default, the original name is kept. If specified, there must be \n exactly one ``dest`` for each ``src``.\n\n - ``cmd`` (str): The command to use to copy the files. ``{src}`` and \n ``{dest}`` will be replaced by the source and destination paths, \n respectively. The default command is:: \n \n rsync -a --no-specials --no-devices {src} {dest}\n\n - ``precmd`` (str or list): One or more commands to run before copying each \n file.\n \n - ``postcmd`` (str or list): One or more commands to run after copying each \n file.\n\n``[publish.scp]``\n Copy the encrypted archive to a remote SSH host.\n\n - ``host`` (str or list): One or more SSH hosts.\n\n - ``remote_dir`` (str): Where to save the spare keys on the remote host \n (relative to the home directory). The default is ``backup/sparekeys``.\n\n``[publish.mount]``\n Copy the encrypted archive to a mount-able drive (e.g. a USB drive).\n\n - ``drive`` (str or list): One or more mountable drives. The specified \n drives must exist in ``/etc/fstab``.\n\n - ``remote_dir`` (str): Where to save the spare keys on the mounted drive \n (relative to the home directory). The default is ``backup/sparekeys``.\n\nThe following top-level options are also available:\n\n- ``archive_name`` (str): A date/time format string that will be used to name \n each archive. The default is ``YYYY-MM-DD``.\n\nPlugins\n=======\nSpare Keys supports the use of setuptools plugins to customize the backup \nprocess. For example, the following plugins are currently included:\n\n``avendesora``\n Query avendesora for the password to encrypt the archive with, and also \n include the configuration files for avendesora in the archive.\n\n To configure::\n\n [auth.avendesora]\n account = LOGIN_ACCOUNT_NAME\n\n``emborg``\n Include the configuration files for borg and emborg in the archive, and also \n run ``borg key export`` to archive the keys for \"repokey\" backups.\n\nAlthough these plugins are currently distributed with Spare Keys itself, they \nshould be moved into the corresponding projects as soon as possible.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "sparekeys", "package_url": "https://pypi.org/project/sparekeys/", "platform": "", "project_url": "https://pypi.org/project/sparekeys/", "project_urls": null, "release_url": "https://pypi.org/project/sparekeys/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.1.0" }, "last_serial": 4641614, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "08e5b237f2c318539e6fd8bf0e89a6df", "sha256": "f4e85c55fec4fb2b3ade92a08209b1a3440fd6b6398ed89be2896f970d44788c" }, "downloads": -1, "filename": "sparekeys-0.1.0.tar.gz", "has_sig": false, "md5_digest": "08e5b237f2c318539e6fd8bf0e89a6df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25440, "upload_time": "2018-12-28T16:48:07", "url": "https://files.pythonhosted.org/packages/9b/b3/5a178cd1d834b995052e2790afc5e561a9be0f75b102983aef0b54749a5f/sparekeys-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "08e5b237f2c318539e6fd8bf0e89a6df", "sha256": "f4e85c55fec4fb2b3ade92a08209b1a3440fd6b6398ed89be2896f970d44788c" }, "downloads": -1, "filename": "sparekeys-0.1.0.tar.gz", "has_sig": false, "md5_digest": "08e5b237f2c318539e6fd8bf0e89a6df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25440, "upload_time": "2018-12-28T16:48:07", "url": "https://files.pythonhosted.org/packages/9b/b3/5a178cd1d834b995052e2790afc5e561a9be0f75b102983aef0b54749a5f/sparekeys-0.1.0.tar.gz" } ] }