🚀 Shifter Toolkit
A production-ready toolkit for provisioning and operating secure network tunnels on Linux hosts.
✨ Features
- 🎯 Unified Control Plane - Install, inspect, and remove tunnelling services
- 💻 CLI Interface - Colorful status output and command groups per service
- 🌐 Web Dashboard - AIOHTTP + Jinja2 powered dashboard
- 📦 Packaged Templates - Reproducible deployments without network fetches
- 📚 PyPI Ready - Complete packaging with entry points and documentation
📋 Requirements
- 🐧 Linux host with
systemdandiptables - 🐍 Python 3.9+ (CPython recommended)
- 🔐 Root/sudo privileges for system services and firewall rules
🚀 Installation
📦 Stable Release
pip install shifter-toolkit
🔧 From Source
git clone https://github.com/zZedix/Shifter.git
cd Shifter
pip install -e .
⚡ Quick Start
# 📋 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
sudo shifter-toolkit status
⚠️ Note: Each sub-command validates that it is executed with root privileges before touching the system.
📚 Command Reference
| 🎯 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.
🌐 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
- 🔑 Set
AIOHTTP_SECRET_KEYin the environment to supply a persistent key across restarts
📦 Packaged Templates
Installer commands render configuration templates that are bundled with the package:
- 🔧
gost.servicefor systemd - ⚙️
haproxy.cfgwith placeholder tokens - 📄
config.jsonbase configuration for Xray
Use importlib.resources helpers in shifter.services.config if you need custom automation that reuses these bundled files.
🛠️ Development
# 📦 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
We recommend developing inside a virtual environment to isolate dependencies.
📖 Documentation
Extended guides are available under docs/, covering deployment patterns, CLI details, and release workflows.
📄 License
Shifter Toolkit is released under the MIT License.
Made with ❤️ by zZedix
Metadata
Release files for shifter-toolkit 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| shifter_toolkit-0.1.2.tar.gz | 30.5 kB | Without provenance | Details for shifter_toolkit-0.1.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| shifter_toolkit-0.1.2-py3-none-any.whl | Python 3 | none | any | Details for shifter_toolkit-0.1.2-py3-none-any.whl |
Total release size: 61.2 kB
Release files / shifter_toolkit-0.1.2.tar.gz
| Download URL | shifter_toolkit-0.1.2.tar.gz |
|---|---|
| Size | 30.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f87188e5c9a70f787605bd84d8bfdf71f9a819a8596d9b5576de48fd6092631c
|
|
BLAKE2b-256 checksum How to use checksums |
b8220e2eab68765cedd6d0f6f9adec62fd87d8be24b933a59f484ac0a2421ead
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Release files / shifter_toolkit-0.1.2-py3-none-any.whl
| Download URL | shifter_toolkit-0.1.2-py3-none-any.whl |
|---|---|
| Size | 30.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
50d1808205f671b3a7b7548f7a7e1ace82f6c48ecdf7f9e838222a3f241789ce
|
|
BLAKE2b-256 checksum How to use checksums |
59a940f9e35be2613f38626868872e62de8aeb3b4dfcefb31a0e4651cb61f02f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.5
|
Security for shifter-toolkit 0.1.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.