Compare commits

...

5 Commits
v1.0.3 ... main

Author SHA1 Message Date
b662d82ae3 🐛 use echo, lib log not loaded 2024-09-12 20:12:08 +02:00
bad40c1d1a 💄 use alert boxes for notes 2024-09-07 13:25:07 +02:00
bd099af12f 🥅 catch file disappearing right before reading 2024-09-02 21:53:44 +02:00
c794049d19 🐛 fix regex precedence (fix #1)
All checks were successful
Release / Build and publish Docker images (push) Successful in 1m8s
Release / Create Gitea release (push) Successful in 6s
2024-08-27 22:39:12 +02:00
061225e9e3 🐛 fix "Failed to stat CRL file"
All checks were successful
Release / Build and publish Docker images (push) Successful in 1m6s
Release / Create Gitea release (push) Successful in 6s
2024-08-27 20:45:04 +02:00
3 changed files with 11 additions and 7 deletions

View File

@ -25,7 +25,8 @@ services:
$ docker compose up -d
```
> ▶️ For both variants, persistent config and key files will be stored in the `./data` directory. Feel free to change this to your needs.
> [!TIP]
> For both variants, persistent config and key files will be stored in the `./data` directory. Feel free to change this to your needs.
## Client Management
Generate new client keys and output its config:
@ -43,4 +44,5 @@ Revoke a client's keys:
$ docker compose exec main clientmgmt revoke
```
> ▶️ If you are using docker run, replace `docker compose exec main` with `docker exec -it openvpn`.
> [!NOTE]
> If you are using docker run, replace `docker compose exec main` with `docker exec -it openvpn`.

View File

@ -96,14 +96,14 @@ clientmgmt_add(){
# ask whether auto-detection should be used
local answer="x"
local first=0
until [[ -z "$answer" || "$answer" =~ ^Y|y|N|n$ ]]; do
until [[ -z "$answer" || "$answer" =~ ^(Y|y|N|n)$ ]]; do
[[ "$first" -le 0 ]] && first=1 || echo "Invalid answer '$answer'"
read -ep "Auto-detect public IP-Address using icanhazip.com? [Y/n]: " answer
done
# maybe do auto-detection
local public_ip=""
if [[ ! "$answer" =~ ^N|n$ ]]; then
if [[ ! "$answer" =~ ^(N|n)$ ]]; then
local exit=0
local icanhazip
icanhazip=$(wget -O - -q icanhazip.com) || exit=$?
@ -307,7 +307,7 @@ clientmgmt_askname(){
## VALIDATE ##
# check for reserved names
if [[ "$answer" =~ ^ca|server$ ]]; then
if [[ "$answer" =~ ^(ca|server)$ ]]; then
log_error "Name is reserved for internal use: '$answer'"
fi

View File

@ -19,7 +19,7 @@ trap_exit(){
q=$(( q + 1 ))
snore 1
if [[ "$q" -ge 15 ]]; then
log_warn "Sending kill to OpenVPN"
echo "Sending kill to OpenVPN" 1>&2
kill -s KILL -- $openvpn_pid 2> /dev/null || true
break
fi
@ -53,7 +53,8 @@ proc_running(){
# try reading state
local state_path="/proc/$1/stat"
[[ ! -f "$state_path" ]] && return 1
local state=$(cat "$state_path" | cut -d ' ' -f3)
local state
state=$(cat "$state_path" 2> /dev/null | cut -d ' ' -f3) || return 1
# parse state
case "$state" in
@ -103,6 +104,7 @@ easyrsa_server_keys_create(){
# new pki
/usr/bin/easyrsa --batch init-pki
chmod 755 pki
# create ca
/usr/bin/easyrsa --batch --days=7300 build-ca nopass