CLI toolkit for managing network tunnels and services with a web UI
Project description
๐ 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shifter_toolkit-0.1.2.tar.gz.
File metadata
- Download URL: shifter_toolkit-0.1.2.tar.gz
- Upload date:
- Size: 30.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f87188e5c9a70f787605bd84d8bfdf71f9a819a8596d9b5576de48fd6092631c
|
|
| MD5 |
13d2e946e530fe1342050f127c565756
|
|
| BLAKE2b-256 |
b8220e2eab68765cedd6d0f6f9adec62fd87d8be24b933a59f484ac0a2421ead
|
File details
Details for the file shifter_toolkit-0.1.2-py3-none-any.whl.
File metadata
- Download URL: shifter_toolkit-0.1.2-py3-none-any.whl
- Upload date:
- Size: 30.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
50d1808205f671b3a7b7548f7a7e1ace82f6c48ecdf7f9e838222a3f241789ce
|
|
| MD5 |
8987b780e8ec840631e1b97e74cc3eb7
|
|
| BLAKE2b-256 |
59a940f9e35be2613f38626868872e62de8aeb3b4dfcefb31a0e4651cb61f02f
|