All Projects → cmur2 → openvpn-status-web

cmur2 / openvpn-status-web

Licence: Apache-2.0 license
Small Rack (Ruby) application serving OpenVPN status file

Programming Languages

ruby
36898 projects - #4 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to openvpn-status-web

vpnman
A web-based frontend for OpenVPN server management
Stars: ✭ 32 (+128.57%)
Mutual labels:  openvpn, openvpn-status
Shields
Concise, consistent, and legible badges in SVG and raster format
Stars: ✭ 15,716 (+112157.14%)
Mutual labels:  status
Wp Statuses
WordPress plugin to ease Custom Post Statuses integration
Stars: ✭ 125 (+792.86%)
Mutual labels:  status
Staytus
💡 An open source solution for publishing the status of your services
Stars: ✭ 2,032 (+14414.29%)
Mutual labels:  status
Hot
Hot is macOS menu bar application that displays the CPU speed limit due to thermal issues.
Stars: ✭ 131 (+835.71%)
Mutual labels:  status
Tmux Gitbar
Git in your tmux status bar
Stars: ✭ 167 (+1092.86%)
Mutual labels:  status
Deployments
❗️GitHub Action for working painlessly with deployment statuses
Stars: ✭ 115 (+721.43%)
Mutual labels:  status
upptime
⬆️ Free uptime monitor and status page powered by GitHub
Stars: ✭ 12,995 (+92721.43%)
Mutual labels:  status
Telegram Rat
Windows Remote Administration Tool via Telegram. Written in Python
Stars: ✭ 201 (+1335.71%)
Mutual labels:  status
Yii2 Workflow
A simple workflow engine for Yii2
Stars: ✭ 157 (+1021.43%)
Mutual labels:  status
Chinese Lunar Calendar For Mac
Chinese Lunar Calendar for Mac
Stars: ✭ 150 (+971.43%)
Mutual labels:  status
Bartinter
Dynamically changes status bar style depending on content behind it
Stars: ✭ 1,687 (+11950%)
Mutual labels:  status
Minestat
📈 A Minecraft server status checker
Stars: ✭ 168 (+1100%)
Mutual labels:  status
Vue Toastify
🔥 Simple, extendable, dependency free notification plugin. 🔥
Stars: ✭ 126 (+800%)
Mutual labels:  status
Simulator
📱 Navigate to your app folders quickly
Stars: ✭ 216 (+1442.86%)
Mutual labels:  status
Refocus
The Go-To Platform for Visualizing Service Health
Stars: ✭ 117 (+735.71%)
Mutual labels:  status
Servermonitor
💓 Laravel package to periodically monitor the health of your server and application.
Stars: ✭ 148 (+957.14%)
Mutual labels:  status
Nginx Error Pages
Cute Error Pages for your nginx web server
Stars: ✭ 166 (+1085.71%)
Mutual labels:  status
ceil
Helmut Hoffer von Ankershoffen experimenting with auto-provisioned RPi cluster running K8S on bare-metal
Stars: ✭ 42 (+200%)
Mutual labels:  openvpn
Human Signals
Human-friendly process signals
Stars: ✭ 223 (+1492.86%)
Mutual labels:  status

openvpn-status-web

ci Depfu

Description

Small (another word for naive in this case, it's simple and serves my needs) Rack application providing the information an OpenVPN server collects in it's status file especially including a list of currently connected clients (common name, remote address, traffic, ...).

It lacks:

  • caching (parses file on each request, page does auto-refresh every minute as OpenVPN updates the status file these often by default)
  • management interface support
  • possibly more...

Usage

Install the gem:

gem install openvpn-status-web

Create a configuration file in YAML format somewhere:

# listen address and port
host: "0.0.0.0"
port: "8080"
# optional: drop priviliges in case you want to but you should give this user at least read access on the log files
user: "nobody"
group: "nogroup"
# logfile is optional, logs to STDOUT else
logfile: "openvpn-status-web.log"
# hash with each VPNs display name for humans as key and further config as value
vpns:
  My Small VPN:
    # the status file path and status file format version are required
    version: 1
    status_file: "/var/log/openvpn-status.log"
  My Other VPN:
    version: 3
    status_file: "/var/log/other-openvpn-status.log"

Your OpenVPN configuration should contain something like this:

# ...snip...
status /var/log/openvpn-status.log
status-version 1
# ...snip...

For more information about OpenVPN status file and version, see their man page. openvpn-status-web is able to parse all versions from 1 to 3.

Advanced topics

Authentication

If the information exposed is important to you serve it via the VPN or use a webserver as a proxy to handle SSL and/or HTTP authentication.

Startup

There is a Dockerfile that can be used to build a Docker image for running openvpn-status-web.

This can for example be used with docker-compose via:

version: "2.4"
services:
  openvpn-status-web:
    image: your-selfbuilt-docker-image
    user: root  # needed since the default status files are chmod 600
    volumes:
    - /path/to/host/config.yml:/etc/openvpn-status-web/config.yml:ro
    - /run/openvpn-server:/run/openvpn-server
    ports:
    - "8080:8080"

The /path/to/host/config.yml could be:

host: "0.0.0.0"
port: "8080"
vpns:
  my-cool-vpn:  # the following depends on your setup
    version: 2
    status_file: "/run/openvpn-server/status-my-cool-vpn.log"

License

openvpn-status-web is licensed under the Apache License, Version 2.0. See LICENSE for more information.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].