https://github.com/deviantony/valigator
Check your backups !
https://github.com/deviantony/valigator
Last synced: about 2 months ago
JSON representation
Check your backups !
- Host: GitHub
- URL: https://github.com/deviantony/valigator
- Owner: deviantony
- License: mit
- Created: 2015-11-24T17:27:22.000Z (almost 10 years ago)
- Default Branch: develop
- Last Pushed: 2022-06-03T22:43:56.000Z (over 3 years ago)
- Last Synced: 2025-06-29T07:48:50.470Z (4 months ago)
- Language: Python
- Size: 52.7 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
valigator
=========.. epigraph::
*Check your backups before you wreck yourself !*|
.. image:: https://readthedocs.org/projects/valigator/badge/?version=latest
:target: http://valigator.readthedocs.org/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://www.quantifiedcode.com/api/v1/project/6b2de325c287407aaf4998cf49c1c09e/badge.svg
:target: https://www.quantifiedcode.com/app/project/6b2de325c287407aaf4998cf49c1c09e
:alt: Code issues
.. image:: https://badges.gitter.im/deviantony/valigator.svg
:alt: Join the chat at https://gitter.im/deviantony/valigator
:target: https://gitter.im/deviantony/valigator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge|
``valigator`` helps you automate backup validation. It uses *Docker* to create ephemeral environments in which a backup restoration can occur.
It aims to be a generic tool used to test **ANY** backup type. It allows you to use the Docker images that you want and thus, the restoration procedure of your choice.
With ``valigator``, a simple backup procedure now looks like:
- Backup your service
- Trigger a webhook to the ``valigator`` HTTP API
- A backup validation is now queuedGoals
-----* Ensure valid backups
* Notifications when a restoration test failsQuick start
-----------The *entire solution* runs in Docker.
Start a ``rabbitmq`` broker:
.. code-block:: bash
$ docker run -d --name valigator-broker -p "5672:5672" rabbitmq:latest
Start the ``valigator`` API via a Docker container:
.. code-block:: bash
$ docker run -d --name valigator-api -p "7000:7000" -v "/path/to/valigator/conf/:/etc/valigator/" valigator/valigator:celery /env/bin/python -m valigator.valigator --conf /etc/valigator/valigator.yml
Start a ``valigator`` worker container:
.. code-block:: bash
$ sudo docker run -d --name valigator-worker -v "/tmp/valigator:/tmp/valigator" -v "/var/run/docker.sock:/var/run/docker.sock" -v "/path/to/archives/:/path/to/archives/" -v "/etc/valigator/:/etc/valigator/" valigator/valigator:celery /env/bin/celery -A valigator worker --loglevel=info --conf /etc/valigator/valigator.yml
The API is available and a worker is ready, all you need to do is to send a POST query to the API:
.. code-block:: bash
$ http POST :7000/validate/mongo26 archive_path=/path/to/mongodb/backup/archive.tar.gz
Documentation
-------------`On readthedocs.org`_ or in the ``docs/source`` directory.
.. _On readthedocs.org: http://valigator.readthedocs.org/en/latest/