Skip to main content

CLI toolkit for managing network tunnels and services with a web UI

Project description

๐Ÿš€ Shifter Toolkit

Version Python License

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 systemd and iptables
  • ๐Ÿ 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_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

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shifter_toolkit-0.1.2.tar.gz (30.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shifter_toolkit-0.1.2-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

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

Hashes for shifter_toolkit-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f87188e5c9a70f787605bd84d8bfdf71f9a819a8596d9b5576de48fd6092631c
MD5 13d2e946e530fe1342050f127c565756
BLAKE2b-256 b8220e2eab68765cedd6d0f6f9adec62fd87d8be24b933a59f484ac0a2421ead

See more details on using hashes here.

File details

Details for the file shifter_toolkit-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for shifter_toolkit-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 50d1808205f671b3a7b7548f7a7e1ace82f6c48ecdf7f9e838222a3f241789ce
MD5 8987b780e8ec840631e1b97e74cc3eb7
BLAKE2b-256 59a940f9e35be2613f38626868872e62de8aeb3b4dfcefb31a0e4651cb61f02f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page