Skip to main content

No project description provided

Project description

OUTLINE-VPN-API-CLIENT

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.1.0.tar.gz (7.9 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.1.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: outline_vpn_api_client-1.1.0.tar.gz
  • Upload date:
  • Size: 7.9 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.1.0.tar.gz
Algorithm Hash digest
SHA256 cbe18756fd3d8f944ffe375f2ec9b7911569be3e24be64da118aa5c4b40f0d03
MD5 0087bc02c5b57241f24d6f712eaa33e8
BLAKE2b-256 94d811d443a1d915494aa0ed2f2ee6ba8eb2f8603b4bfb8e47f634e98f5064bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for outline_vpn_api_client-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 911f087c3ebaf0d5da0475b4b30917f613d7fd27ce46ef90e269eadbcb49ebc6
MD5 beea1d2789db17dca3b4b8ea5703ac1e
BLAKE2b-256 297a9b1624fb2c80a73178cdd393ff88cc900c2385bfca89c8938ddaa8f94238

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