# Nautobot VPN App
<p align="center">
<img src="https://raw.githubusercontent.com/iss-world/nautobot-app-vpn/main/docs/images/icon-nautobot_app_vpn.png" width="200" alt="Nautobot VPN App Logo">
</p>
<p align="center">
<a href="https://github.com/iss-world/nautobot-app-vpn/actions/workflows/ci.yml">
<img src="https://github.com/iss-world/nautobot-app-vpn/actions/workflows/ci.yml/badge.svg" alt="CI Status">
</a>
<a href="https://pypi.org/project/nautobot-app-vpn/">
<img src="https://img.shields.io/pypi/v/nautobot-app-vpn.svg" alt="PyPI Version">
</a>
<a href="https://pypi.org/project/nautobot-app-vpn/">
<img src="https://img.shields.io/pypi/dm/nautobot-app-vpn.svg" alt="PyPI Downloads">
</a>
</p>
<p align="center">
<em>An App for <a href="https://www.nautobot.com">Nautobot</a></em>
</p>
## Overview
A Nautobot plugin designed to model, visualize, and manage VPN infrastructure, including IPSec tunnels, IKE gateways, crypto profiles, and dynamic topology diagrams sourced from Neo4j.
---
## Key Features
- IKE Gateway and IPSec Tunnel modeling
- Inline or default crypto profile selection
- Dynamic tunnel provisioning form with interface auto-selection
- Topology visualization via Neo4j + Cytoscape
---
## Requirements
- Nautobot >= 2.2.0
- Python >= 3.8
- Neo4j >= 5.0 (for topology view)
---
## Installation
### 1. Install via pip
```bash
pip install nautobot-app-vpn
```
### 2. Enable the plugin
In your `nautobot_config.py`, add to `PLUGINS` and configure Neo4j settings:
```python
PLUGINS = [
"nautobot_app_vpn",
# ...
]
PLUGINS_CONFIG = {
"nautobot_app_vpn": {
"neo4j": {
"uri": "bolt://neo4j:7687",
"user": "neo4j",
"password": "testneo4j", # Change this
}
}
}
```
---
## Docker/Compose Setup (Optional)
If you are using `docker-compose`, include this plugin in your `plugin_requirements.txt`:
```text
nautobot_app_vpn
```
Then rebuild Nautobot:
```bash
docker-compose build nautobot
```
---
## Usage
### Topology View
The plugin provides a Neo4j-powered dashboard under **Plugins > VPN Dashboard**, enabling visualization of active IPSec tunnels and their metadata.
### Forms for Provisioning
- Auto-select interfaces based on ISP zone tags
- Auto-populate IPs from synced device data
- Support dynamic IP tunnels
- Create or select IKE/IPsec crypto profiles
---
## Screenshots







---
## Development
### Clone and install in editable mode:
```bash
git clone https://github.com/iss-world/nautobot-app-vpn.git
cd nautobot-app-vpn
poetry install
```
### Run linters locally
```bash
ruff check .
yamllint .
```
---
## Contributing
Pull requests are welcome! Please ensure code follows Nautobot plugin guidelines and passes all checks.
---
## License
Apache License 2.0. See [LICENSE](https://github.com/iss-world/nautobot-app-vpn/blob/main/LICENSE) for details.
---
## Author
Maintained by [@npolisetty26](https://github.com/npolisetty26)
Raw data
{
"_id": null,
"home_page": null,
"name": "nautobot-app-vpn",
"maintainer": null,
"docs_url": null,
"requires_python": "<3.13,>=3.11",
"maintainer_email": null,
"keywords": "nautobot, nautobot-app, nautobot-plugin",
"author": "ISS World Services",
"author_email": "GITSO-Network@group.issworld.com",
"download_url": "https://files.pythonhosted.org/packages/d8/45/8aff492038ef8d5ca8c7da491d3cb2978b228e7782505c47727ef308aabb/nautobot_app_vpn-1.0.4.tar.gz",
"platform": null,
"description": "# Nautobot VPN App\n\n<p align=\"center\">\n <img src=\"https://raw.githubusercontent.com/iss-world/nautobot-app-vpn/main/docs/images/icon-nautobot_app_vpn.png\" width=\"200\" alt=\"Nautobot VPN App Logo\">\n</p>\n\n<p align=\"center\">\n <a href=\"https://github.com/iss-world/nautobot-app-vpn/actions/workflows/ci.yml\">\n <img src=\"https://github.com/iss-world/nautobot-app-vpn/actions/workflows/ci.yml/badge.svg\" alt=\"CI Status\">\n </a>\n <a href=\"https://pypi.org/project/nautobot-app-vpn/\">\n <img src=\"https://img.shields.io/pypi/v/nautobot-app-vpn.svg\" alt=\"PyPI Version\">\n </a>\n <a href=\"https://pypi.org/project/nautobot-app-vpn/\">\n <img src=\"https://img.shields.io/pypi/dm/nautobot-app-vpn.svg\" alt=\"PyPI Downloads\">\n </a>\n</p>\n\n<p align=\"center\">\n <em>An App for <a href=\"https://www.nautobot.com\">Nautobot</a></em>\n</p>\n\n\n\n## Overview\nA Nautobot plugin designed to model, visualize, and manage VPN infrastructure, including IPSec tunnels, IKE gateways, crypto profiles, and dynamic topology diagrams sourced from Neo4j.\n\n---\n\n## Key Features\n\n- IKE Gateway and IPSec Tunnel modeling\n- Inline or default crypto profile selection\n- Dynamic tunnel provisioning form with interface auto-selection\n- Topology visualization via Neo4j + Cytoscape\n\n\n---\n\n## Requirements\n\n- Nautobot >= 2.2.0\n- Python >= 3.8\n- Neo4j >= 5.0 (for topology view)\n\n---\n\n## Installation\n\n### 1. Install via pip\n\n```bash\npip install nautobot-app-vpn\n```\n\n### 2. Enable the plugin\n\nIn your `nautobot_config.py`, add to `PLUGINS` and configure Neo4j settings:\n\n```python\nPLUGINS = [\n \"nautobot_app_vpn\",\n # ...\n]\n\nPLUGINS_CONFIG = {\n \"nautobot_app_vpn\": {\n \"neo4j\": {\n \"uri\": \"bolt://neo4j:7687\",\n \"user\": \"neo4j\",\n \"password\": \"testneo4j\", # Change this\n }\n }\n}\n```\n\n---\n\n## Docker/Compose Setup (Optional)\n\nIf you are using `docker-compose`, include this plugin in your `plugin_requirements.txt`:\n\n```text\nnautobot_app_vpn\n```\n\nThen rebuild Nautobot:\n\n```bash\ndocker-compose build nautobot\n```\n\n---\n\n## Usage\n\n### Topology View\n\nThe plugin provides a Neo4j-powered dashboard under **Plugins > VPN Dashboard**, enabling visualization of active IPSec tunnels and their metadata.\n\n### Forms for Provisioning\n\n- Auto-select interfaces based on ISP zone tags\n- Auto-populate IPs from synced device data\n- Support dynamic IP tunnels\n- Create or select IKE/IPsec crypto profiles\n\n---\n\n## Screenshots\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n---\n\n## Development\n\n### Clone and install in editable mode:\n\n```bash\ngit clone https://github.com/iss-world/nautobot-app-vpn.git\ncd nautobot-app-vpn\npoetry install\n```\n\n### Run linters locally\n\n```bash\nruff check .\nyamllint .\n```\n\n---\n\n## Contributing\n\nPull requests are welcome! Please ensure code follows Nautobot plugin guidelines and passes all checks.\n\n---\n\n## License\n\nApache License 2.0. See [LICENSE](https://github.com/iss-world/nautobot-app-vpn/blob/main/LICENSE) for details.\n\n---\n\n## Author\n\nMaintained by [@npolisetty26](https://github.com/npolisetty26)\n\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "VPN APP",
"version": "1.0.4",
"project_urls": {
"Documentation": "https://github.com/iss-world/nautobot-app-vpn?tab=readme-ov-file#readme",
"Homepage": "https://github.com/iss-world/nautobot-app-vpn",
"Repository": "https://github.com/iss-world/nautobot-app-vpn"
},
"split_keywords": [
"nautobot",
" nautobot-app",
" nautobot-plugin"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4dfeb21345e6b58321168d91d057a61811f181240aefdd3d4f5ad611c2b4365c",
"md5": "0cd143e9e8c9c6df87763425c4ec2c36",
"sha256": "1ebb45ba4aaacc43fa30717d9ef8792ed3b171106ab40383b09da63ad4910033"
},
"downloads": -1,
"filename": "nautobot_app_vpn-1.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0cd143e9e8c9c6df87763425c4ec2c36",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<3.13,>=3.11",
"size": 3688632,
"upload_time": "2025-08-01T12:41:38",
"upload_time_iso_8601": "2025-08-01T12:41:38.503349Z",
"url": "https://files.pythonhosted.org/packages/4d/fe/b21345e6b58321168d91d057a61811f181240aefdd3d4f5ad611c2b4365c/nautobot_app_vpn-1.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d8458aff492038ef8d5ca8c7da491d3cb2978b228e7782505c47727ef308aabb",
"md5": "92d6db549e779b7f77d9954ba988754b",
"sha256": "1c684a4d8bdcd992b589b1239e78813610fa447fb0ce65a0b4da88958093dc02"
},
"downloads": -1,
"filename": "nautobot_app_vpn-1.0.4.tar.gz",
"has_sig": false,
"md5_digest": "92d6db549e779b7f77d9954ba988754b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<3.13,>=3.11",
"size": 3610941,
"upload_time": "2025-08-01T12:41:40",
"upload_time_iso_8601": "2025-08-01T12:41:40.774683Z",
"url": "https://files.pythonhosted.org/packages/d8/45/8aff492038ef8d5ca8c7da491d3cb2978b228e7782505c47727ef308aabb/nautobot_app_vpn-1.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-01 12:41:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "iss-world",
"github_project": "nautobot-app-vpn?tab=readme-ov-file#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "nautobot-app-vpn"
}