Skip to main content

Full-featured SSH tunnel & Cloudflare DNS management library and CLI

Project description

tunnelmate

🚀 A robust SSH tunnel and automatic Cloudflare DNS management library & CLI

Easily create, manage, and auto-reconnect SSH tunnels—with automatic SSH key generation and seamless Cloudflare CNAME linking. Use as a Python library or a lightning-fast CLI tool.


Installation

pip install .

CLI Usage

tunnelmate \
  --tunnel localhost:3000:my-app.example.com \
  --cf-zone-id <ZONE_ID> \
  --cf-api-token <API_TOKEN>

The tool will generate an SSH key if not already present and prints the public key to add to your destination server.


Library Usage

from tunnelmate.core import SSHTunnel

tunnels = [
    {"local_host": "localhost", "local_port": 3000, "subdomain": "my-app.example.com"},
]

t = SSHTunnel(
    tunnels=tunnels,
    key_path="/root/.ssh/id_ed25519"
)
t.run_tunnel()

Features

  • Autogenerates SSH keys if not found, and prints your public key.
  • Automatic reconnection if the tunnel closes.
  • Accepts all configuration—ports, hosts, Cloudflare API and DNS details—from CLI, environment, or YAML.
  • Live logs and easy-to-use interface for managing as many tunnels as you want.
  • CLI and Python API both supported.
  • Clean, maintainable code—ready to extend or integrate.

Cloudflare CNAME Update Example (Python):

from tunnelmate.cloudflare import update_cname

resp = update_cname(
    zone_id="yourZoneId",
    api_token="yourToken",
    subdomain="my-app.example.com",
    content="target.example.com"
)
print(resp)

Folder structure

ssh_tunneler/
  core.py         # Tunnel and key handling core logic
  cli.py          # Command-line interface (entrypoint)
  config.py       # Loading config from yaml/env
  cloudflare.py   # Cloudflare DNS API routines
  ssh_utils.py    # SSH key/tool helpers
  __init__.py
setup.py
README.md

Developed by Parsa Lakzian
Architected by Tara AI

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

tunnelmate-1.0.4.tar.gz (5.7 kB view details)

Uploaded Source

Built Distribution

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

tunnelmate-1.0.4-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file tunnelmate-1.0.4.tar.gz.

File metadata

  • Download URL: tunnelmate-1.0.4.tar.gz
  • Upload date:
  • Size: 5.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tunnelmate-1.0.4.tar.gz
Algorithm Hash digest
SHA256 5c116ec370f0afd6ba95f46243a35cc872379e47eca25f89d0b383c75df9e7a2
MD5 81c7827eecdf6cd6f2c05d5fc2a9b17d
BLAKE2b-256 be03529866d9560377a4082f49bd31c54e8307a1776f8f4053df95292baac4e5

See more details on using hashes here.

File details

Details for the file tunnelmate-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: tunnelmate-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for tunnelmate-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5ac4dc33fa7b22ae57f6f1becdf8293c5d67d378f941174527d65f8d36c34a3c
MD5 414930655b6f4cb5bbac35e274a4f903
BLAKE2b-256 2d7c44ade8d4524e10507b94f77ffa668eefcb71669400aae7ee6ec0f2fdc7a6

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