NginxWebUI Manager
Manage NginxWebUI via its built-in REST API. All API calls are made via docker exec into the running nginxwebui container (requires Docker socket access).
How it works
- Authenticates via
POST /token/getTokenwith username/password - Stores token in
NGINXWEBUI_TOKENenv var (auto-refreshed via--mode login) - All subsequent calls use the token in the
tokenheader
Usage
Authentication
# First time — get token and save to .env
python3 {{SKILL_DIR}}/scripts/manage.py --mode login
Nginx operations
# Check nginx status
python3 {{SKILL_DIR}}/scripts/manage.py --mode status
# Validate config
python3 {{SKILL_DIR}}/scripts/manage.py --mode check
# Reload nginx
python3 {{SKILL_DIR}}/scripts/manage.py --mode reload
Server (reverse proxy) management
# List all servers
python3 {{SKILL_DIR}}/scripts/manage.py --mode list-servers
# Add a new reverse proxy
python3 {{SKILL_DIR}}/scripts/manage.py --mode add-server \
--name "app.example.com" --listen 443 --ssl \
--pem /path/to/cert.pem --key /path/to/key.pem \
--descr "My app"
# Delete a server by ID prefix
python3 {{SKILL_DIR}}/scripts/manage.py --mode delete-server --id 12345abc
Location (reverse proxy rule) management
# List locations for a server
python3 {{SKILL_DIR}}/scripts/manage.py --mode list-locations --server-id 12345abc
# Add a location (path → target)
python3 {{SKILL_DIR}}/scripts/manage.py --mode add-location \
--server-id 12345abc \
--path /api/ \
--target http://10.0.0.5:3000 \
--descr "API backend"
# Add with websocket support
python3 {{SKILL_DIR}}/scripts/manage.py --mode add-location \
--server-id 12345abc \
--path /ws \
--target http://10.0.0.5:3000 \
--websocket
# Delete a location
python3 {{SKILL_DIR}}/scripts/manage.py --mode delete-location --id 67890def
Upstream (load balancer) management
# List upstreams
python3 {{SKILL_DIR}}/scripts/manage.py --mode list-upstreams
Environment variables
NGINXWEBUI_USER— requiredNGINXWEBUI_PASS— requiredNGINXWEBUI_TOKEN— auto-managed, stored in.env
Requirements
- Docker socket accessible from the calling environment
- Running nginxwebui container (name:
nginxwebui) - Valid NginxWebUI admin credentials with API access enabled
