| Name | shifter-toolkit JSON |
| Version |
0.1.1
JSON |
| download |
| home_page | None |
| Summary | CLI toolkit for managing network tunnels and services with a web UI |
| upload_time | 2025-10-12 14:50:00 |
| maintainer | None |
| docs_url | None |
| author | zZedix |
| requires_python | >=3.9 |
| license | MIT License
Copyright (c) 2016 ginuerzh
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
|
| keywords |
networking
tunneling
cli
aiohttp
automation
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
click
requests
aiohttp
aiohttp_jinja2
jinja2
aiohttp-session
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# 🚀 Shifter Toolkit
<div align="center">




**A production-ready toolkit for provisioning and operating secure network tunnels on Linux hosts**
[](https://pypi.org/project/shifter-toolkit/)
[](https://github.com/zZedix/Shifter)
</div>
---
Shifter Toolkit combines a **click-powered** command-line interface with an **AIOHTTP web dashboard** so administrators can manage GOST, HAProxy, Xray, and IPTables configurations from a single, auditable workflow.
## ✨ Key Features
| Feature | Description |
|---------|-------------|
| 🎯 **Unified Control Plane** | Install, inspect, and remove tunnelling services from one place |
| 🖥️ **First-class CLI** | Colorful status output and command groups per service |
| 🌐 **Web Dashboard** | AIOHTTP + Jinja2 powered dashboard with session-based messaging |
| 📦 **Packaged Templates** | Reproducible deployments without network fetches |
| 📚 **PyPI Ready** | Complete packaging with entry points and documentation |
## 📋 Requirements
- 🐧 **Linux host** with `systemd` and `iptables`
- 🐍 **Python 3.9+** (CPython recommended)
- 🔐 **Root/sudo privileges** for system services and firewall rules
## 🚀 Installation
### 📦 Stable Release (Recommended)
```bash
pip install shifter-toolkit
```
### 🔧 From Source
```bash
git clone https://github.com/zZedix/Shifter.git
cd Shifter
pip install --upgrade pip
pip install -e .
```
> 💡 **Tip**: The editable install keeps the CLI and web assets in sync while you iterate on the project.
## ⚡ Quick Start
```bash
<<<<<<< HEAD
# 📋 Review available commands
sudo shifter-toolkit --help
# 🌐 Launch the web dashboard (http://127.0.0.1:2063 by default)
sudo shifter-toolkit serve --host 0.0.0.0 --port 2063
# 🔍 Inspect the health of all managed services
=======
# Review available commands
sudo shifter-toolkit --help
# Launch the web dashboard (http://127.0.0.1:2063 by default)
sudo shifter-toolkit serve --host 0.0.0.0 --port 2063
# Inspect the health of all managed services
>>>>>>> c11714f26ecb9c71bff0eb8c025a8e62b227b09c
sudo shifter-toolkit status
```
> ⚠️ **Security Note**: Each sub-command validates that it is executed with root privileges before touching the system.
## 📚 Command Reference
<<<<<<< HEAD
| 🎯 Group | 💻 Example | 📝 Description |
|----------|------------|----------------|
| `serve` | `sudo shifter-toolkit serve --host 0.0.0.0 --port 2063` | Launch the AIOHTTP dashboard |
| `status` | `sudo shifter-toolkit status haproxy` | Show active/enabled state plus parsed configuration details |
| `gost` | `sudo shifter-toolkit gost install --domain example.com --port 8080` | Manage GOST tunnel deployment and forwarding rules |
| `haproxy` | `sudo shifter-toolkit haproxy add --relay-port 8081 --main-server-ip 1.2.3.4 --main-server-port 443` | Configure HAProxy frontends/backends |
| `xray` | `sudo shifter-toolkit xray add --address example.com --port 8443` | Maintain Xray Dokodemo-door inbounds |
| `iptables` | `sudo shifter-toolkit iptables install --main-server-ip 203.0.113.10 --ports 80,443` | Persist and inspect port-forwarding firewall rules |
> 💡 **Pro Tip**: Run `sudo shifter-toolkit <group> --help` for all arguments on a specific command family.
=======
| Group | Example | Description |
| --- | --- | --- |
| `serve` | `sudo shifter-toolkit serve --host 0.0.0.0 --port 2063` | Launch the AIOHTTP dashboard. |
| `status` | `sudo shifter-toolkit status haproxy` | Show active/enabled state plus parsed configuration details. |
| `gost` | `sudo shifter-toolkit gost install --domain example.com --port 8080` | Manage GOST tunnel deployment and forwarding rules. |
| `haproxy` | `sudo shifter-toolkit haproxy add --relay-port 8081 --main-server-ip 1.2.3.4 --main-server-port 443` | Configure HAProxy frontends/backends. |
| `xray` | `sudo shifter-toolkit xray add --address example.com --port 8443` | Maintain Xray Dokodemo-door inbounds. |
| `iptables` | `sudo shifter-toolkit iptables install --main-server-ip 203.0.113.10 --ports 80,443` | Persist and inspect port-forwarding firewall rules. |
Run `sudo shifter-toolkit <group> --help` for all arguments on a specific command family.
>>>>>>> c11714f26ecb9c71bff0eb8c025a8e62b227b09c
## 🌐 Web Dashboard
Shifter ships with a **lightweight dashboard** that mirrors the CLI capabilities.
- 📁 **Templates** live inside the package (`shifter/web/templates`) so deployments don't rely on external assets
- 🔐 **Sessions** are backed by encrypted cookies
- 🔑 **Security**: Set `AIOHTTP_SECRET_KEY` in the environment to supply a persistent key across restarts
## 📦 Packaged Templates
Installer commands render **configuration templates** that are bundled with the package:
- 🔧 `gost.service` for systemd
- ⚙️ `haproxy.cfg` with placeholder tokens
- 📄 `config.json` base configuration for Xray
> 💡 **Developer Note**: Use `importlib.resources` helpers in `shifter.services.config` if you need custom automation that reuses these bundled files.
## 🛠️ Development
```bash
# 📦 Install runtime dependencies
pip install -r requirements.txt
# 🔧 Install the project in editable mode
pip install -e .
# 🚀 Optional: run the CLI locally
sudo python -m shifter status
```
> 🌟 **Recommendation**: Develop inside a virtual environment to isolate dependencies.
## 📖 Documentation
Extended guides are available under [`docs/`](docs/index.md), covering:
- 🚀 Deployment patterns
- 💻 CLI details
- 🔄 Release workflows
---
## 📄 License
Shifter Toolkit is released under the [MIT License](LICENSE).
---
<div align="center">
**Made with ❤️ by [zZedix](https://github.com/zZedix)**
[](https://pypi.org/project/shifter-toolkit/)
[](https://github.com/zZedix/Shifter)
</div>
Raw data
{
"_id": null,
"home_page": null,
"name": "shifter-toolkit",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "networking, tunneling, cli, aiohttp, automation",
"author": "zZedix",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/2f/fa/62e29a2cdf3e6f268d854c7f45327d792daa0ff923d20c5935c54fcb9e70/shifter_toolkit-0.1.1.tar.gz",
"platform": null,
"description": "# \ud83d\ude80 Shifter Toolkit\n\n<div align=\"center\">\n\n\n\n\n\n\n**A production-ready toolkit for provisioning and operating secure network tunnels on Linux hosts**\n\n[](https://pypi.org/project/shifter-toolkit/)\n[](https://github.com/zZedix/Shifter)\n\n</div>\n\n---\n\nShifter Toolkit combines a **click-powered** command-line interface with an **AIOHTTP web dashboard** so administrators can manage GOST, HAProxy, Xray, and IPTables configurations from a single, auditable workflow.\n\n## \u2728 Key Features\n\n| Feature | Description |\n|---------|-------------|\n| \ud83c\udfaf **Unified Control Plane** | Install, inspect, and remove tunnelling services from one place |\n| \ud83d\udda5\ufe0f **First-class CLI** | Colorful status output and command groups per service |\n| \ud83c\udf10 **Web Dashboard** | AIOHTTP + Jinja2 powered dashboard with session-based messaging |\n| \ud83d\udce6 **Packaged Templates** | Reproducible deployments without network fetches |\n| \ud83d\udcda **PyPI Ready** | Complete packaging with entry points and documentation |\n\n## \ud83d\udccb Requirements\n\n- \ud83d\udc27 **Linux host** with `systemd` and `iptables`\n- \ud83d\udc0d **Python 3.9+** (CPython recommended)\n- \ud83d\udd10 **Root/sudo privileges** for system services and firewall rules\n\n## \ud83d\ude80 Installation\n\n### \ud83d\udce6 Stable Release (Recommended)\n```bash\npip install shifter-toolkit\n```\n\n### \ud83d\udd27 From Source\n```bash\ngit clone https://github.com/zZedix/Shifter.git\ncd Shifter\npip install --upgrade pip\npip install -e .\n```\n\n> \ud83d\udca1 **Tip**: The editable install keeps the CLI and web assets in sync while you iterate on the project.\n\n## \u26a1 Quick Start\n\n```bash\n<<<<<<< HEAD\n# \ud83d\udccb Review available commands\nsudo shifter-toolkit --help\n\n# \ud83c\udf10 Launch the web dashboard (http://127.0.0.1:2063 by default)\nsudo shifter-toolkit serve --host 0.0.0.0 --port 2063\n\n# \ud83d\udd0d Inspect the health of all managed services\n=======\n# Review available commands\nsudo shifter-toolkit --help\n\n# Launch the web dashboard (http://127.0.0.1:2063 by default)\nsudo shifter-toolkit serve --host 0.0.0.0 --port 2063\n\n# Inspect the health of all managed services\n>>>>>>> c11714f26ecb9c71bff0eb8c025a8e62b227b09c\nsudo shifter-toolkit status\n```\n\n> \u26a0\ufe0f **Security Note**: Each sub-command validates that it is executed with root privileges before touching the system.\n\n## \ud83d\udcda Command Reference\n\n<<<<<<< HEAD\n| \ud83c\udfaf Group | \ud83d\udcbb Example | \ud83d\udcdd Description |\n|----------|------------|----------------|\n| `serve` | `sudo shifter-toolkit serve --host 0.0.0.0 --port 2063` | Launch the AIOHTTP dashboard |\n| `status` | `sudo shifter-toolkit status haproxy` | Show active/enabled state plus parsed configuration details |\n| `gost` | `sudo shifter-toolkit gost install --domain example.com --port 8080` | Manage GOST tunnel deployment and forwarding rules |\n| `haproxy` | `sudo shifter-toolkit haproxy add --relay-port 8081 --main-server-ip 1.2.3.4 --main-server-port 443` | Configure HAProxy frontends/backends |\n| `xray` | `sudo shifter-toolkit xray add --address example.com --port 8443` | Maintain Xray Dokodemo-door inbounds |\n| `iptables` | `sudo shifter-toolkit iptables install --main-server-ip 203.0.113.10 --ports 80,443` | Persist and inspect port-forwarding firewall rules |\n\n> \ud83d\udca1 **Pro Tip**: Run `sudo shifter-toolkit <group> --help` for all arguments on a specific command family.\n=======\n| Group | Example | Description |\n| --- | --- | --- |\n| `serve` | `sudo shifter-toolkit serve --host 0.0.0.0 --port 2063` | Launch the AIOHTTP dashboard. |\n| `status` | `sudo shifter-toolkit status haproxy` | Show active/enabled state plus parsed configuration details. |\n| `gost` | `sudo shifter-toolkit gost install --domain example.com --port 8080` | Manage GOST tunnel deployment and forwarding rules. |\n| `haproxy` | `sudo shifter-toolkit haproxy add --relay-port 8081 --main-server-ip 1.2.3.4 --main-server-port 443` | Configure HAProxy frontends/backends. |\n| `xray` | `sudo shifter-toolkit xray add --address example.com --port 8443` | Maintain Xray Dokodemo-door inbounds. |\n| `iptables` | `sudo shifter-toolkit iptables install --main-server-ip 203.0.113.10 --ports 80,443` | Persist and inspect port-forwarding firewall rules. |\n\nRun `sudo shifter-toolkit <group> --help` for all arguments on a specific command family.\n>>>>>>> c11714f26ecb9c71bff0eb8c025a8e62b227b09c\n\n## \ud83c\udf10 Web Dashboard\n\nShifter ships with a **lightweight dashboard** that mirrors the CLI capabilities.\n\n- \ud83d\udcc1 **Templates** live inside the package (`shifter/web/templates`) so deployments don't rely on external assets\n- \ud83d\udd10 **Sessions** are backed by encrypted cookies\n- \ud83d\udd11 **Security**: Set `AIOHTTP_SECRET_KEY` in the environment to supply a persistent key across restarts\n\n## \ud83d\udce6 Packaged Templates\n\nInstaller commands render **configuration templates** that are bundled with the package:\n\n- \ud83d\udd27 `gost.service` for systemd\n- \u2699\ufe0f `haproxy.cfg` with placeholder tokens \n- \ud83d\udcc4 `config.json` base configuration for Xray\n\n> \ud83d\udca1 **Developer Note**: Use `importlib.resources` helpers in `shifter.services.config` if you need custom automation that reuses these bundled files.\n\n## \ud83d\udee0\ufe0f Development\n\n```bash\n# \ud83d\udce6 Install runtime dependencies\npip install -r requirements.txt\n\n# \ud83d\udd27 Install the project in editable mode\npip install -e .\n\n# \ud83d\ude80 Optional: run the CLI locally\nsudo python -m shifter status\n```\n\n> \ud83c\udf1f **Recommendation**: Develop inside a virtual environment to isolate dependencies.\n\n## \ud83d\udcd6 Documentation\n\nExtended guides are available under [`docs/`](docs/index.md), covering:\n\n- \ud83d\ude80 Deployment patterns\n- \ud83d\udcbb CLI details \n- \ud83d\udd04 Release workflows\n\n---\n\n## \ud83d\udcc4 License\n\nShifter Toolkit is released under the [MIT License](LICENSE).\n\n---\n\n<div align=\"center\">\n\n**Made with \u2764\ufe0f by [zZedix](https://github.com/zZedix)**\n\n[](https://pypi.org/project/shifter-toolkit/)\n[](https://github.com/zZedix/Shifter)\n\n</div>\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2016 ginuerzh\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n ",
"summary": "CLI toolkit for managing network tunnels and services with a web UI",
"version": "0.1.1",
"project_urls": {
"Documentation": "https://github.com/zZedix/Shifter#readme",
"Homepage": "https://github.com/zZedix/Shifter",
"Issues": "https://github.com/zZedix/Shifter/issues",
"Source": "https://github.com/zZedix/Shifter"
},
"split_keywords": [
"networking",
" tunneling",
" cli",
" aiohttp",
" automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "5d99aea6dd1e847624f1d3ddbd9f3adaf616d81e92e307d9e9f8f2ec51ad438e",
"md5": "1d17a89e3c56f47960d38ce2050e4bb7",
"sha256": "f318b1686dde4afae228d211008b37bcdcfa2b57e31a45285f472036acb55436"
},
"downloads": -1,
"filename": "shifter_toolkit-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1d17a89e3c56f47960d38ce2050e4bb7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 31231,
"upload_time": "2025-10-12T14:49:59",
"upload_time_iso_8601": "2025-10-12T14:49:59.109584Z",
"url": "https://files.pythonhosted.org/packages/5d/99/aea6dd1e847624f1d3ddbd9f3adaf616d81e92e307d9e9f8f2ec51ad438e/shifter_toolkit-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2ffa62e29a2cdf3e6f268d854c7f45327d792daa0ff923d20c5935c54fcb9e70",
"md5": "eec75a272d4a0eeb5b4bcada7f3c941a",
"sha256": "c04e5a292a67a28a3db63cab98aa16371a40e30f0787813dfa17c45b04b6dcf5"
},
"downloads": -1,
"filename": "shifter_toolkit-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "eec75a272d4a0eeb5b4bcada7f3c941a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 31453,
"upload_time": "2025-10-12T14:50:00",
"upload_time_iso_8601": "2025-10-12T14:50:00.927799Z",
"url": "https://files.pythonhosted.org/packages/2f/fa/62e29a2cdf3e6f268d854c7f45327d792daa0ff923d20c5935c54fcb9e70/shifter_toolkit-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-12 14:50:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zZedix",
"github_project": "Shifter#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "click",
"specs": []
},
{
"name": "requests",
"specs": []
},
{
"name": "aiohttp",
"specs": []
},
{
"name": "aiohttp_jinja2",
"specs": []
},
{
"name": "jinja2",
"specs": []
},
{
"name": "aiohttp-session",
"specs": []
}
],
"lcname": "shifter-toolkit"
}