Skip to main content

No project description provided

Project description

OUTLINE-VPN-API-CLIENT

PyPI - Version PyPI - Format GitHub Release GitHub Actions Workflow Status PyPI - Python Version GitHub License

DESCRIPTION

This library provides a convenient interface for managing an Outline VPN server in Python using the official Outline Management API. It simplifies server interaction by enabling you to:

  • Programmatically manage user keys, including creation, updates, and deletion.
  • Monitor server usage and retrieve detailed statistics.
  • Configure server settings such as bandwidth limits and access rules.
  • Automate routine maintenance and management tasks.

The library is suitable for both individual users and administrators of corporate VPN solutions, helping to streamline server management, save time, and improve operational efficiency.

It is designed with simplicity in mind and features cleanly implemented, well-documented methods.

INSTALLATION

Using pip

pip install outline-vpn-api-client

Using poetry

poetry add outline-vpn-api-client

USAGE

To get started with the library, you need to obtain the management_url for your Outline VPN server. Once you have the management_url, you can create an instance of the OutlineClient class to interact with the server.

Initializing the Client

from .client import OutlineClient

# Replace 'your.management.url' with your actual management URL
management_url = "your.management.url"

# Create an OutlineClient instance
client = OutlineClient(management_url=management_url)

Retrieving Server Information

import json

# Fetch server information and pretty-print it
print(json.dumps(client.get_information(), ensure_ascii=False, indent=4))

Creating Access Keys

Creating a Key Without Limits

# Replace 'name' with a meaningful identifier for the key
client.access_keys.create(name="Example Key")

Creating a Key With a Limit

# Replace 'name' with a meaningful identifier for the key
# Replace 'limit' with the desired bandwidth limit in bytes
client.access_keys.create(name="Example Key with Limit", limit=10**9)  # Example: 1 GB limit

Handling Errors

The library uses a custom exception, ResponseNotOkException, to handle server-side errors. This exception is raised whenever the API returns an unexpected response.

from outline_vpn_api_client import ResponseNotOkException

try:
    # Attempting to fetch server information
    info = client.get_information()
    print(info)
except ResponseNotOkException as e:
    print(e)

The error message provides details about the HTTP status code and the error message returned by the API. It follows this format:

def _get_error_message(status_code: int, error: str) -> str:
    return f"An error occurred: {status_code} - {error}"

For example, if the API returns a 404 error with the message "Not Found", the exception will produce the message:

outline_vpn_api_client.client.ResponseNotOkException: An error occured: 404 - {'code': 'NotFound', 'message': 'Access key "100" not found'}    

Console Version

The library also includes a command-line interface (CLI) for quick access. You can use the following command to interact with the server:

python3 -m outline_vpn_api_client management_url get_info

AUTHOR

Created by zeph1rr
Email: grianton535@gmail.com

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

outline_vpn_api_client-1.2.0.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

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

outline_vpn_api_client-1.2.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file outline_vpn_api_client-1.2.0.tar.gz.

File metadata

  • Download URL: outline_vpn_api_client-1.2.0.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.12.8 Linux/6.5.0-1025-azure

File hashes

Hashes for outline_vpn_api_client-1.2.0.tar.gz
Algorithm Hash digest
SHA256 e47a4cb7aff5334e969eef2606cbc563fde7732427a0f6d3a8c9fcd94efc4bee
MD5 c97b363af23f6961b1fb3a1f7eb67aaa
BLAKE2b-256 6268783493f884235a2226238df8a5bb1ea0e81cef7b93a096d722a3c1791e02

See more details on using hashes here.

File details

Details for the file outline_vpn_api_client-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for outline_vpn_api_client-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d9eaf9af0b6306f795d39b8e4d2f5481f1fd97e2c52b8d005133abb6a27c178e
MD5 ec58a7dbfe9574a939617413070e6438
BLAKE2b-256 0bfd2cad8e0044075013443c1f31ce7995b6717cadac8b80b33d25e5c3876076

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