Skip to main content

o2switch-cli

CLI interactif pour gerer domaines, sous-domaines cPanel et enregistrements DNS sur un hebergement o2switch/cPanel.

Version actuelle: 0.1.0

Installation

./install.sh

The installer:

  • Creates a local virtual environment
  • Installs the CLI and dependencies
  • Prompts for cPanel credentials (stored in ~/.config/o2switch-cli/.env)
  • Publishes o2switch-cli to ~/.local/bin
  • Installs bash completion

After install, reload your shell:

source ~/.bashrc && hash -r

Non-interactive install

./install.sh --cpanel-host saule.o2switch.net --cpanel-user myuser --cpanel-token mytoken

Development install

./install.sh --dev

Skip setup wizard

./install.sh --skip-setup
o2switch-cli config init  # configure later

Uninstall

./uninstall.sh
./uninstall.sh --purge-venv --purge-config --purge-state

Configuration

Credentials are stored globally in ~/.config/o2switch-cli/.env and loaded automatically.

# Show current config and where it's loaded from
o2switch-cli config show

# Show config file paths (active, global, local)
o2switch-cli config path

# Re-run setup wizard
o2switch-cli config init

# Test API access
o2switch-cli config test

Config file locations

  1. Local .env in current directory (takes precedence)
  2. Global ~/.config/o2switch-cli/.env (default)

Environment variables

You can also set credentials via environment variables:

export O2SWITCH_CLI_CPANEL_HOST=saule.o2switch.net
export O2SWITCH_CLI_CPANEL_USER=myuser
export O2SWITCH_CLI_CPANEL_TOKEN=mytoken

Getting a cPanel API token

  1. Log into cPanel
  2. Go to Security > Manage API Tokens
  3. Create a new token with appropriate permissions
  4. Copy the token (it's only shown once)

Usage

o2switch-cli              # Interactive mode (if TTY)
o2switch-cli --help       # Show all commands

DNS Records

# Point a hostname to an IP (create or update A record)
o2switch-cli dns upsert --host staging.example.com --ip 203.0.113.25

# With explicit zone and custom TTL
o2switch-cli dns upsert --zone example.com --host staging --ip 203.0.113.25 --ttl 600

# Search DNS records
o2switch-cli dns search example

# Delete an A record
o2switch-cli dns delete --host staging.example.com

# Verify DNS resolution
o2switch-cli dns verify --host staging.example.com --ip 203.0.113.25

# Dry run (show what would change without applying)
o2switch-cli dns upsert --host staging.example.com --ip 203.0.113.25 --dry-run

Domains

o2switch-cli domains list
o2switch-cli domains list --page 2 --page-size 10

Subdomains

o2switch-cli subdomains create --root example.com --label staging --ip 203.0.113.25
o2switch-cli subdomains list
o2switch-cli subdomains delete --fqdn staging.example.com

Output formats

o2switch-cli domains list --json
o2switch-cli config show --json

Interactive mode includes loading spinners, real-time search suggestions, and paginated navigation.

Versioning

o2switch-cli suit Semantic Versioning.

  • format: MAJOR.MINOR.PATCH
  • version actuelle: 0.1.0
  • tags de release: vMAJOR.MINOR.PATCH
  • changelog: CHANGELOG.md
  • politique detaillee: VERSIONING.md

Regles de bump:

  • MAJOR: rupture de compatibilite sur la CLI, la sortie JSON stable, les comportements de mutation, ou les variables/configs publiques
  • MINOR: nouvelles commandes, nouvelles options retro-compatibles, nouveaux workflows ou nouveaux champs JSON optionnels
  • PATCH: corrections retro-compatibles, docs, tests, durcissement interne sans rupture contractuelle

Tant que le projet reste en 0.x, un bump MINOR peut encore embarquer des changements cassants. Les correctifs PATCH doivent rester retro-compatibles.

Source de verite:

Avant une release, mettre a jour le changelog, verifier o2switch-cli --version, puis tagger le commit avec vX.Y.Z.

Development

.venv/bin/ruff check .
.venv/bin/ruff format .
.venv/bin/pytest

Specs

Le pack de specifications projet est dans docs/specs/README.md.

Metadata

Release files for o2switch-cli 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for o2switch-cli 0.1.4
File Size Uploaded
o2switch_cli-0.1.4.tar.gz 46.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for o2switch-cli 0.1.4
File Interpreter ABI Platform
o2switch_cli-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 91.5 kB

Release files / o2switch_cli-0.1.4.tar.gz

Download URL o2switch_cli-0.1.4.tar.gz
Size 46.2 kB
Tags Source
SHA-256 checksum
How to use checksums
c911a3202d9bd163fa61dccb6a54850e7c365c6a82649bbfead48eeef4f8d0de
BLAKE2b-256 checksum
How to use checksums
99cd2fd5c675352f27eaff5cb4a7ab76a9dcb085465e0dc28c859f9f00a45955
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release files / o2switch_cli-0.1.4-py3-none-any.whl

Download URL o2switch_cli-0.1.4-py3-none-any.whl
Size 45.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7b50678cf22d974f96b5bf889e219ca8706c6aec3abf38f897f68e94cf81ff9d
BLAKE2b-256 checksum
How to use checksums
ea3cc6057c9c021160fd65beee23114e3832c4b16d818c71b7f7932e2a4c1c0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page