{"id":17918345,"url":"https://github.com/dansheps/netbox-config-backup","last_synced_at":"2025-04-04T17:06:05.088Z","repository":{"id":42061506,"uuid":"431599074","full_name":"DanSheps/netbox-config-backup","owner":"DanSheps","description":"A configuration backup system using napalm","archived":false,"fork":false,"pushed_at":"2025-03-03T14:25:31.000Z","size":241,"stargazers_count":93,"open_issues_count":6,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-28T16:09:00.745Z","etag":null,"topics":["netbox","netbox-plugin"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DanSheps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["dansheps"],"patreon":"dansheps","custom":"https://paypal.me/dansheps84?country.x=CA\u0026locale.x=en_US"}},"created_at":"2021-11-24T19:05:18.000Z","updated_at":"2025-03-13T09:00:58.000Z","dependencies_parsed_at":"2023-01-31T17:31:49.149Z","dependency_job_id":"ddb44597-dbe6-43f1-a8f0-9914273da98b","html_url":"https://github.com/DanSheps/netbox-config-backup","commit_stats":{"total_commits":52,"total_committers":2,"mean_commits":26.0,"dds":"0.019230769230769273","last_synced_commit":"82162e04c4e6402681a5cbd46c0a258d16b8413f"},"previous_names":[],"tags_count":42,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanSheps%2Fnetbox-config-backup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanSheps%2Fnetbox-config-backup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanSheps%2Fnetbox-config-backup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanSheps%2Fnetbox-config-backup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanSheps","download_url":"https://codeload.github.com/DanSheps/netbox-config-backup/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247217175,"owners_count":20903008,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["netbox","netbox-plugin"],"created_at":"2024-10-28T20:10:51.168Z","updated_at":"2025-04-04T17:06:05.069Z","avatar_url":"https://github.com/DanSheps.png","language":"Python","funding_links":["https://github.com/sponsors/dansheps","https://patreon.com/dansheps","https://paypal.me/dansheps84?country.x=CA\u0026locale.x=en_US"],"categories":[],"sub_categories":[],"readme":"# Netbox Configuration Backup\n\nA configuration backup system using netbox and napalm to backup devices into a git repository\n\n# Features\n\n* Connects to any device that supports napalm and provides both a running configuration and startup configuration\n* Stores backups in a git repository\n* Runs as a scheduled task through Django RQ\n* Only displays backups with changes\n* Provides both configuration download and diffs for point-in-time backups\n\n# Future\n\n* Allow github repositories\n* Add job \"discovery\" based on specific criteria (napalm enabled, device role switch, has primary ip as an example)\n* Add RQ job to ensure all backups are queued\n* Allow manual queueing of job\n* Add API endpoint to trigger backup\n* Add signal(s) to trigger backup\n\n# Installation\n\n1. Install from PyPI (`pip install netbox-config-backup`)\n2. Edit netbox configuration:\n```pyython\nPLUGINS = [\n    'netbox_config_backup',\n    # Other plugins here\n]\n\nPLUGINS_CONFIG = {\n    'netbox_config_backup': {\n        # Parent folder must exist and be writable by your RQ worker and readable by the WSGI process\n        'repository': '/path/to/git/repository',\n        'committer': 'User \u003cemail\u003e',\n        'author': 'User \u003cemail\u003e',\n        # Freqency of backups in seconds, can be anywhere 0+ (Recommended is 1800 (30 minutes) or 3600 (1 hr)\n        'frequency': 3600\n    }\n}\n```\n3. Migrate: `python3 netbox/manage.py migrate`\n4. Create your first device backup\n\n### Cleanup Old Version\n\nIf you are coming from an older version, please remove the custom RQ worker as it is no longer required\n\n## Logging\n\nTo enable logging, add the following to your configuration.py under LOGGING:\n\n```python\n        'netbox_config_backup': {\n            'handlers': ['enter_your_handlers_here'],\n            'level': 'desired_log_level',\n            'propagate': True,\n        },\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdansheps%2Fnetbox-config-backup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdansheps%2Fnetbox-config-backup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdansheps%2Fnetbox-config-backup/lists"}