Skip to main content

Download the official PDF manual

VPNdukevilla interface example

PRODUCT MANUAL

VPNdukevilla

Control plane for StrongSwan and WireGuard · User and operations guide

PublisherDukeVilla
Document version1.0.4
Release dateOctober 19, 2026
ClassificationProduct documentation

Operations document. It contains no passwords, PSKs, SNMP community strings, or private keys.

Document control​

FieldContents
PurposeProvide a reusable description of every menu, field, administrative workflow, execution mode, integration, diagnostic, backup, and maintenance function in VPNdukevilla 1.0.4.
Version1.0.4
StatusReady for release
PublisherDukeVilla
Intended audienceVPN administrators and operators
AudienceAdministrators and operators. Credentials and secrets are delivered through a separate secure channel.

Security notice​

IMPORTANTThis manual describes procedures and reference values, but deliberately omits passwords, PSKs, SNMP community strings, tokens, and keys. Do not copy secrets into tickets, email, or screenshots. Rotate any secret that may have been exposed.

Contents​

SectionTopic
1Description and scope
2Architecture and security
3Sign-in and roles
4Overview
5Tunnels
6Editing tunnels
7Configuration and Integrations
8Diagnostics
9Maintenance
10DRY RUN and LIVE modes
11Apply and rollback
12Backup and restore
13Updates
14Operations and escalation
15Appendices

Description and scope​

VPNdukevilla is a web control interface for inventorying, generating, applying, and verifying VPN configurations. In version 1.0.4, StrongSwan is operational and WireGuard is prepared for a later release. This version adds managed Docker application integrations and a signed updater with backup and transactional rollback.

CapabilityVersion 1.0.4
Tunnel inventoryYes
StrongSwan / IKEv2Yes
WireGuardInventory and preparation; activation in a later release
CHILD_SA statusYes, read from the host
Ping / tracerouteYes, through the host agent
Events / CSVYes
admin and view usersYes
Secret-free backupYes
Sanitized system radiographyYes
Checking for updatesSigned channel: download, deliberate installation, health check, and automatic rollback
Automatic updatesStaged download; deliberate activation by an administrator
Application integrationsLibreNMS, Facil IoT, and traDUKtor with automatic detection

Architecture and security​

ComponentPrivilegeFunction
Web containerNo Linux capabilitiesUI, API, users, inventory, and PSK encryption.
SQLite /dataPersistentUsers, tunnels, execution mode, and encrypted PSKs.
Host agentPrivileged and localDiagnostics, atomic writes, restart, verification, and rollback.
Unix socketLocal and authenticatedWeb-to-agent channel; it is not exposed on the network.
StrongSwanHostIKEv2/IPsec negotiation.
Protected loopbackHostMaintains 10.254.100.1/32 as the local management selector.
  • The PSK is encrypted before it is stored.

  • The API and listings never return the PSK.

  • The preview masks secrets.

  • The web container does not modify the host directly.

  • Each apply operation creates a backup and rolls back if validation fails.

  • Do not publish the .env file, database, or keys in Git or in the container image.

Sign-in and roles​

RolePermissions
adminCreate, edit, and delete tunnels; apply configurations; change mode; manage accounts; create backups and radiographies; install upgrades.
viewView Overview, Tunnels, events, previews, and diagnostics. Cannot modify the inventory or host.
  1. Open the URL provided by the administrator.

  2. Enter your username and password.

  3. Change the initial password under Configuration.

  4. Sign out when finished, especially on shared workstations.

IMPORTANTInitial credentials are not published in this manual. They are delivered through a separate secure channel and must be changed at first sign-in.

Overview​

VPNdukevilla interface example

Figure 1. Overview with operational summary, tunnel status, and events.

ItemInterpretation
Configured tunnelsNumber of connections stored in the inventory.
StrongSwan upInstalled CHILD_SAs / configured StrongSwan tunnels.
WireGuardInventoried WireGuard peers.
Execution modeDRY RUN or LIVE, together with API, database, and agent health.
Gateway tunnelsCompact summary with name, selectors, Remote ID, and status.
Event logStrongSwan events; initially collapsed, with Refresh and Export CSV controls.
IMPORTANTUp means that a CHILD_SA is installed. To confirm end-to-end service, also ping the protected IP address.

Tunnels​

VPNdukevilla interface example

Figure 2. Tunnel inventory.

Column / actionDescription
NameUnique administrative identifier.
EngineStrongSwan or WireGuard.
Local networkLocal protected selector.
Remote networkRemote protected selector.
Remote IDExpected IKE identity of the peer.
StatusUp, Down, or Not applied.
+ New tunnelOpens the new tunnel form.
EditAllows fields to be edited and the PSK to be changed if required.
DeleteDeletes the record from inventory; confirmation and Apply are required to update the host.

Creating a tunnel​

  1. Select + New tunnel.

  2. Complete every field according to the addressing plan.

  3. Enter a strong, unique PSK delivered through a secure channel.

  4. Select Save tunnel.

  5. Open Configuration → Preview and review the generated configuration.

  6. In LIVE mode, select Apply to materialize the inventory in StrongSwan.

  7. Restart or activate the remote IPsec connection if the peer does not renegotiate automatically.

  8. Confirm an Up state and run a ping to the protected address.

Editing tunnels​

VPNdukevilla interface example

Figure 3. StrongSwan connection edit form.

FieldRuleExample
NameUnique, stable, lowercase letters and hyphensipsec-remote03
EngineStrongSwan in production version 1.0.4StrongSwan
Local hostPublic IP or gateway listening addressAddress assigned to the server
Local networkLocal protected selector in CIDR notation10.254.100.1/32
Remote host%any for peers with dynamic IP addresses%any
Remote networkRemote protected network in CIDR notation192.0.2.10/32
Local IDIdentity presented by the gatewaygateway
Remote IDExact identity configured on the remote IPsec peerremoto03
PSKAt least 16 characters on a single lineSecret delivered through a separate secure channel

Saving changes​

  • Save changes updates the inventory.

  • Leaving the PSK field blank preserves the current PSK.

  • Entering a new PSK replaces the current value and stores it encrypted.

  • Saving is not the same as applying: review the preview and run Apply.

Configuration and Integrations​

ItemPurpose
StrongSwan PreviewDisplays ipsec.conf and ipsec.secrets with PSKs masked.
StrongSwan ApplySends inventory to the agent, validates, backs up, writes, restarts, verifies, and rolls back on failure.
WireGuard PreviewGenerates the proposed configuration.
WireGuard GenerateReserved for future WireGuard support.
Admin accountChanges the administrator username and password.
View accountEnables or disables the view account and sets its password.
LibreNMSEnables monitoring, polling, syslog, and availability tests across protected networks.
Facil IoTEnables access from detected Facil IoT containers to protected networks.
traDUKtorEnables access from detected traDUKtor containers to protected networks.
Detected / Not detectedIndicates whether VPNdukevilla found compatible containers for the integration.
Apply integrationsDiscovers containers and idempotently reconciles forwarding and source NAT rules.
IMPORTANTApply with no changes must be idempotent: it verifies state without changing the functional result. If an error appears, do not retry blindly; read the message and system radiography.

Diagnostics​

FieldPurpose
TargetIP address or hostname to test. For IPsec validation, use an address inside the protected remote network.
PingChecks reachability and latency.
TracerouteDisplays hops to the destination; traceroute must be installed on the host.
RunRequests the host agent to run the test and returns its output.

Interpretation​

  • Tunnel Up + successful ping: control plane and data plane are operational.

  • Tunnel Up + failed ping: check selectors, firewall rules, protected IP, and ICMP.

  • Tunnel Down + incoming IKE traffic: check IDs, PSK, proposals, and the CHILD_SA.

  • No IKE traffic: check the peer, public IP, intermediate firewall, and UDP ports 500 and 4500.

Maintenance​

VPNdukevilla interface example

Figure 4. Maintenance page with execution mode, version, system radiography, and backup.

ToolWhat it doesWhat it does not do
Execution modeSelects DRY RUN or LIVE and requires Apply modeDoes not automatically apply tunnel configurations.
Check latest versionQueries the official signed channel, compares versions, and allows a newer release to be downloaded and verified.Does not replace the running service until an administrator confirms Install update.
Install updateInstalls the previously downloaded signed package, creates a backup, recreates the console, and performs a health check.Is unavailable without a valid package; if the health check fails, it automatically restores the previous version.
System radiographyDownloads sanitized JSON containing service, network, resource, and tunnel healthDoes not include secrets.
Download backupExports the inventory as portable JSONDoes not include PSKs, passwords, tokens, or keys.
Load backupMerges a backup into the current inventoryDoes not generate PSKs; new tunnels remain disabled.

DRY RUN and LIVE modes​

ModeEffect
DRY RUNAllows inventory, previews, reports, and backups. Blocks diagnostics and actual host changes.
LIVEEnables diagnostics and actual changes through the host agent.
  1. Select the required mode.

  2. Review the on-screen explanation.

  3. Select Apply mode.

  4. Confirm on Overview that the mode and agent status are consistent.

IMPORTANTA new installation should remain in DRY RUN until it reaches its final location, receives its production addressing, and enters an approved migration window.

Apply and rollback​

Transactional workflow​

  1. The application validates fields and PSKs.

  2. The agent creates a backup of the active configuration.

  3. It generates temporary files with restrictive permissions.

  4. It validates the syntax.

  5. It atomically replaces the StrongSwan files.

  6. It restarts the service.

  7. It runs statusall and verifies that the inventory was loaded.

  8. If validation fails, it restores the backup and returns an explicit error.

MessageMeaningAction
Host agent is unavailableThe UI could not contact the socket or agentCheck the service, socket, and permissions.
Apply failed; backup was restoredValidation or verification failed and the change was rolled backDownload a radiography and inspect the agent and StrongSwan.
statusall returned non-zeroStrongSwan did not report a healthy stateCheck the service, plugins, and configuration before retrying.
Not appliedInventory not materialized or DRY RUN activeChange to LIVE only during an approved maintenance window, then apply.

Backup and restore​

Exporting a backup​

  1. Open Maintenance.

  2. Select Download backup.

  3. Store the JSON file in a secure repository with its date and version.

  4. Confirm that the file opens and contains no secrets.

Restoring a backup​

  1. Back up the current state.

  2. Select Load backup and choose the JSON file.

  3. Review the summary of created and updated records.

  4. Enter the PSKs for new connections.

  5. Review Preview.

  6. Apply in LIVE mode during an approved maintenance window.

IMPORTANTA secret-free backup does not replace an encrypted database backup. For a complete migration, the database and PSK_ENCRYPTION_KEY must remain consistent and must be safeguarded separately.

Updates​

Checking for updates​

  1. Select Check latest version.

  2. If the versions match, the application reports that it is current and makes no changes.

  3. If a newer version is available, review the proposed version and confirm the signed download.

  4. Wait for hash and signature validation. The version is staged and Install update becomes available.

  5. Download a backup and system radiography; during a maintenance window, select Install update and confirm.

  6. The console restarts briefly and verifies that the new version is healthy.

  7. Confirm the version, mode, agent, integrations, and tunnels. If the health check fails, the host restores the backup.

For the first field update, use a controlled maintenance window and retain administrative host access until verification is complete.

PrincipleRecommendation
VersioningUse immutable tags such as 1.0.4; do not use latest in production.
ImageDistribute the container image; source code does not need to be copied to the customer host.
DataKeep /data persistent and backed up.
RollbackRetain the previous image and a database backup.
Official channelhttps://vpn.duke-villa.com/api/releases/latest
AutomationCheck latest version downloads and verifies; Install update deliberately activates the release with backup, health check, and rollback.

Operations and escalation​

FrequencyActivity
DailyReview Overview, Down tunnels, and recent events.
When creating or editingSave → Preview → Apply → Up → ping.
WeeklyExport CSV if flapping occurs and review disk space and services.
MonthlyCreate a configuration backup and system radiography.
Before an upgradeConfirm the backup, radiography, version, and maintenance window.
After restartConfirm the container, agent, StrongSwan, protected loopback, and tunnels.

Minimum support information​

  • Installed version and execution mode.

  • Date, time, and affected tunnel.

  • Up, Down, or Not applied state.

  • Ping and traceroute results.

  • Relevant IKE event with no PSK or secret data.

  • Sanitized system radiography.

  • Most recent change and Apply result.

Appendices​

Standardized IPsec peer template​

ParameterBaseline value
RoleInitiator
Remote hostGateway public IP
Local networkLocal protected network in CIDR notation
Remote network10.10.0.0/24
Local IDUnique gateway identity
Remote IDUnique remote peer identity
IKEv2
Phase 1AES-256 / SHA2-256 / DH14
IKE lifetime3 hours
Phase 2AES-256 / SHA2-256 / PFS
ESP lifetime1 hour
DPD30 s / timeout 150 s / Restart

Provisioning checklist​

  • Unique ID and protected network.

  • Strong, unique PSK.

  • Inventory saved.

  • Preview verified.

  • Apply completed successfully.

  • CHILD_SA Up.

  • Protected-address ping successful.

  • Device added to LibreNMS.

  • Syslog received.

  • Documentation updated.