ShadowsocksUriGenerator 4.3.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package ShadowsocksUriGenerator --version 4.3.0                
NuGet\Install-Package ShadowsocksUriGenerator -Version 4.3.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ShadowsocksUriGenerator" Version="4.3.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ShadowsocksUriGenerator --version 4.3.0                
#r "nuget: ShadowsocksUriGenerator, 4.3.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install ShadowsocksUriGenerator as a Cake Addin
#addin nuget:?package=ShadowsocksUriGenerator&version=4.3.0

// Install ShadowsocksUriGenerator as a Cake Tool
#tool nuget:?package=ShadowsocksUriGenerator&version=4.3.0                

🌐 Shadowsocks URI Generator

Build Release

<a href="https://aur.archlinux.org/packages/ss-uri-gen-git/"> <img alt="AUR badge for ss-uri-gen-git" src="https://img.shields.io/aur/version/ss-uri-gen-git?label=AUR%20ss-uri-gen-git" /> </a> <a href="https://aur.archlinux.org/packages/ss-uri-gen-chatbot-telegram-git/"> <img alt="AUR badge for ss-uri-gen-chatbot-telegram-git" src="https://img.shields.io/aur/version/ss-uri-gen-chatbot-telegram-git?label=AUR%20ss-uri-gen-chatbot-telegram-git" /> </a> <a href="https://aur.archlinux.org/packages/ss-uri-gen-rescue-git/"> <img alt="AUR badge for ss-uri-gen-rescue-git" src="https://img.shields.io/aur/version/ss-uri-gen-rescue-git?label=AUR%20ss-uri-gen-rescue-git" /> </a>

A light-weight command line automation tool for managing federated Shadowsocks servers. Automate deployments of Outline servers. Deliver configurations to users with Open Online Config (OOC).

Features

  • Manage users, nodes, and groups with intuitive commands.
  • Deploy and manage Outline servers.
  • Retrieve user credentials automatically from Outline servers, or add credentials manually in plaintext or base64url.
  • Gather data usage statistics from Outline servers.
  • Generate data usage report and export as CSV.
  • Manage data usage limit on users and groups. Enforce data limit on Outline servers.
  • Generate SIP002 ss:// URLs for users.
  • Support for SIP003 plugins.
  • Generate Open Online Config (OOC) v1 files and delivery URLs.
  • Run as a service to execute scheduled tasks.
  • Easy user interactions via Telegram bots.

Build

Prerequisites: .NET 5 SDK

Note for packagers: The application by default uses executable directory as config directory. To use user's config directory, define the constant PACKAGED when building.

# Build with Release configuration
$ dotnet build -c Release

# Publish as framework-dependent
$ dotnet publish ShadowsocksUriGenerator -c Release

# Publish as self-contained for Linux x64
$ dotnet publish ShadowsocksUriGenerator -c Release \
    -p:PublishReadyToRun=true \
    -p:PublishSingleFile=true \
    -p:PublishTrimmed=true \
    -p:TrimMode=link \
    -p:DebuggerSupport=false \
    -p:EnableUnsafeBinaryFormatterSerialization=false \
    -p:EnableUnsafeUTF7Encoding=false \
    -p:InvariantGlobalization=true \
    -r linux-x64 --self-contained

# Publish as self-contained for packaging on Linux x64
$ dotnet publish ShadowsocksUriGenerator -c Release \
    -p:DefineConstants=PACKAGED \
    -p:PublishReadyToRun=true \
    -p:PublishSingleFile=true \
    -p:PublishTrimmed=true \
    -p:TrimMode=link \
    -p:DebuggerSupport=false \
    -p:EnableUnsafeBinaryFormatterSerialization=false \
    -p:EnableUnsafeUTF7Encoding=false \
    -p:InvariantGlobalization=true \
    -r linux-x64 --self-contained

Usage

# See usage guide.
$ ss-uri-gen --help

# Enter interactive mode (REPL).
$ ss-uri-gen interactive

# Run as a service to execute scheduled tasks.
$ ss-uri-gen service --interval 3600 --pull-outline-server --generate-online-config

# Add users.
$ ss-uri-gen user add MyUserA MyUserB

# Add groups.
$ ss-uri-gen group add MyGroupA MyGroupB

# Add a new node.
$ ss-uri-gen node add MyGroupA MyNodeA 1.1.1.1 853

# Add a new node with v2ray-plugin.
$ ss-uri-gen node add MyGroupB MyNodeB 1.1.1.1 853 --plugin v2ray-plugin --plugin-opts "tls;host=cloudflare-dns.com"

# Deactivate a node to exclude it from delivery.
$ ss-uri-gen node deactivate MyGroupB MyNodeB

# Join a group.
$ ss-uri-gen user join MyUserB MyGroupB

# Add multiple users to a group.
$ ss-uri-gen group add-user MyGroupA MyUserA MyUserB

# Add a credential associating MyGroupA with MyUserA.
$ ss-uri-gen user add-credential MyUserA MyGroupA --method aes-256-gcm --password MyPassword

# Add a credential in base64url.
$ ss-uri-gen user add-credential MyUserB MyGroupA --userinfo-base64url eGNoYWNoYTIwLWlldGYtcG9seTEzMDU6TXlQYXNzd29yZA

# Print a user's ss:// links.
$ ss-uri-gen user get-ss-links MyUserA

# Get a user's data usage metrics.
$ ss-uri-gen user get-data-usage MyUserA

# Get a group's data usage metrics.
$ ss-uri-gen group get-data-usage MyGroupA

# Generate Open Online Config (OOC) v1 files.
$ ss-uri-gen online-config generate

# Print all users' Open Online Config (OOC) v1 delivery URLs.
$ ss-uri-gen online-config get-links

# Associate a group with an Outline server.
$ ss-uri-gen outline-server add MyGroupA '{"apiUrl":"https://localhost/example","certSha256":"EXAMPLE"}'

# Change Outline server settings.
$ ss-uri-gen outline-server set MyGroupA --name MyOutlineA --hostname github.com --metrics true

# Pull updates from Outline server.
$ ss-uri-gen outline-server pull MyGroupA

# Deploy local configuration to Outline server.
$ ss-uri-gen outline-server deploy MyGroupA

# Generate data usage report and export as CSV to current directory.
$ ss-uri-gen report --csv-outdir .

# Set default user for Outline server's access key id 0.
$ ss-uri-gen settings set --outline-server-global-default-user MyUserA

# Settings: change the online configuration generation output directory to 'sip008'.
$ ss-uri-gen settings set --online-config-output-directory sip008

# Telegram bot: set bot token.
$ ss-uri-gen-chatbot-telegram config set --bot-token "1234567:4TT8bAc8GHUspu3ERYn-KGcvsvGB9u_n4ddy"

# Telegram bot: run as a service.
$ ss-uri-gen-chatbot-telegram

# Rescue tool: rebuild database from generated online config.
$ ss-uri-gen-rescue --online-config-dir /path/to/online/config

License

© 2021 database64128

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
5.2.0 333 12/22/2021
5.1.0 399 8/4/2021
5.0.0 340 7/16/2021
4.3.0 334 7/5/2021