Replace environment variable-based configuration with a proper CLI interface using subcommands and flags.
Commands
openvpn-install <command> [options]
Commands:
install Install and configure OpenVPN server
uninstall Remove OpenVPN server
client Manage client certificates (add/list/revoke/renew)
server Server management (status/renew)
interactive Launch interactive menu
Highlights
No args → help: Running without arguments shows help instead of interactive menu
JSON output: client list and server status support --format json
25+ install flags: Network, DNS, security, and client options
Interactive mode preserved: install --interactive or interactive command
Breaking Changes
Environment variables (AUTO_INSTALL, MENU_OPTION, CLIENT, etc.) are no longer supported. Use CLI flags instead.
# BeforeMENU_OPTION=1CLIENT=foo PASS=1 ./openvpn-install.sh
# After
./openvpn-install.sh client add foo
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/angristan/openvpn-install/pull/1398
Author: @angristan
Created: 12/14/2025
Status: ✅ Merged
Merged: 12/14/2025
Merged by: @angristan
Base:
master← Head:feat/cli-interface📝 Commits (10+)
75db665feat: add CLI interface with subcommandse2d5f9etest: update tests to use new CLI interface905761afix: use array for install command to fix shellcheck SC2086f3ba3bastyle: fix shfmt formatting and markdown lint errors5bedfd4fix: address PR review comments - JSON escaping, validation99b5ca7fix: address PR review comments1111a94docs: document all default values in README99f7b87fix: hide interactive prompts when values provided via CLI9b8bf00chore: reduce noise by making OS detection a debug message34d39f2docs: reorganize README to lead with interactive mode📊 Changes
7 files changed (+1650 additions, -298 deletions)
View changed files
📝
.github/workflows/do-test.yml(+1 -1)📝
.github/workflows/docker-test.yml(+5 -5)📝
FAQ.md(+27 -25)📝
README.md(+250 -115)📝
openvpn-install.sh(+1259 -107)📝
test/Dockerfile.server(+5 -5)📝
test/server-entrypoint.sh(+103 -40)📄 Description
Replace environment variable-based configuration with a proper CLI interface using subcommands and flags.
Commands
Highlights
client listandserver statussupport--format jsoninstall --interactiveorinteractivecommandBreaking Changes
Environment variables (
AUTO_INSTALL,MENU_OPTION,CLIENT, etc.) are no longer supported. Use CLI flags instead.Closes https://github.com/angristan/openvpn-install/issues/1202
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.