Tabbed interface (better than Apache Guacamole layout)
Possible limitation:
Session drop during OS updates (RDP service restart)
Security Recommendations
❗ Do NOT expose directly via open port forwarding.
Recommended:
Reverse proxy
Encrypted tunnel
VPS-based tunnel system
Zero open home firewall ports
Possible stack:
VPS
Reverse proxy
Tunnel client on internal machine
Key Technical Details
Core Stack
Node.js 18
Docker CE
Docker Compose
Likely built on Apache Guacamole
Supports bridge or host networking
Encryption Key
Must be exactly 64 hex characters
Generated via:
openssl rand -hex 32
Default Container Port
6989
Host port customizable.
Platform Support
Desktop:
AppImage
DEB
RPM
Windows (.exe / .msi)
macOS (x64 + ARM)
Android
iOS (IPA – not App Store)
Pro Tips
✔ Use unless-stopped restart policy
Prevents unwanted auto-restart during maintenance.
✔ Use local volume mapping (./nextterm)
Keeps all data self-contained for backup.
✔ Enable Backups
Set:
Frequency (e.g., hourly)
Retention count
✔ Enable Monitoring per Host
It must be enabled:
Globally
Per server
✔ Configure OIDC Early
Use:
Authentik
Keycloak
Then disable local authentication.
✔ Organize with Folders
Supports drag-and-drop structure.
✔ Use Jump Hosts
Supports SSH jump configuration.
✔ Save SSH Identities
Prevents credential re-entry.
Potential Limitations / Warnings
⚠️ RDP Session Interruptions
System updates can kill RDP sessions.
⚠️ Right-Click to Add Server Not Obvious
No visible “Add Server” button.
⚠️ Monitoring Card Size Not Adjustable
UI customization limited.
⚠️ Encryption Key Length Confusion
openssl rand -hex 64 ≠ 64 characters
Use -hex 32.
⚠️ Do Not Expose Directly to Internet
Use reverse proxy + tunnel.
Recommended Follow-Up Resources
NextTerm GitHub repository
Docker documentation
OpenSSL documentation
OpenID Connect documentation
Authentik documentation
Keycloak documentation
Apache Guacamole documentation
Overall Technical Assessment
NextTerm is:
✔ Lightweight
✔ Docker-native
✔ Multi-protocol
✔ Multi-user
✔ Monitoring-capable
✔ Identity-provider compatible
✔ Suitable for homelab and small production use
It is approaching production readiness but still may have minor session stability quirks.
Here are 5 excellent books available on Amazon that will help you level up the skills most relevant to tasks like secure server infrastructure, Docker & Kubernetes deployment, networking, and security — all of which directly support what you’re doing with NextTerm, containerization, and secure remote access:
1. The Ultimate Docker Container Book
A highly-rated, practical guide covering Docker essentials — building, testing, shipping, and running containers. It’s great for sysadmins and DevOps practitioners who want real-world Docker skills in production.
2. Kubernetes in Action
One of the most well-regarded Kubernetes books around. It teaches Kubernetes fundamentals, cluster setup, deployment patterns, scaling, and best practices — ideal once you’re ready to orchestrate containers beyond basic Docker.
3. Kubernetes and Docker - An Enterprise Guide
A practical, enterprise-focused guide to containerization that introduces Docker and Kubernetes from the ground up and helps you integrate these technologies in real environments — a great bridge between beginner and advanced workflows.
4. Securing Docker: The Attack and Defense Way
Security-focused containerization guide that covers common threats to Docker ecosystems and how to mitigate them — perfect for understanding how to harden containers themselves and the hosts they run on.
5. Networking and Kubernetes
A focused look at Kubernetes networking — extremely helpful if you want to go deeper into container networking, service meshes, or secure connectivity across clusters and services.
Next Steps:
Below is a production-hardened, reproducible deployment path for NextTerm that covers:
1.3 Create NextTerm compose with hardened defaults
mkdir -p ~/docker/nextterm
cd ~/docker/nextterm
Generate encryption key (64 hex chars):
openssl rand -hex 32
Create compose.yaml:
---
services:
nextterm:
image: ghcr.io/nextterm/nextterm:latest
container_name: nextterm
restart: unless-stopped
# Bind only to localhost if you put a reverse proxy on the same box.
# If reverse proxy is on another box, bind to the LAN IP instead.
ports:
- "127.0.0.1:8082:6989"
environment:
# Must be 64 hex characters
NEXTTERM_ENCRYPTION_KEY: "REPLACE_WITH_64_HEX"
# Optional: set app base URL if supported by your version (check docs)
# NEXTTERM_BASE_URL: "https://nextterm.example.com"
volumes:
- ./nextterm:/app/data
# Minimal hardening (verify compatibility with your NextTerm image)
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
Host port: choose (example: 8082) but keep container port as 6989
Encryption key requirement:64 hex chars
Use openssl rand -hex 32
Recommended port bind:
127.0.0.1:8082:6989 (only local) + reverse proxy in front
Recommended access:
VPS reverse proxy + WireGuard tunnel
Pro Tips
Bind NextTerm only to localhost and always put it behind TLS.
Use OIDC SSO with enforced MFA at the IdP.
Put the reverse proxy on the VPS, not at home, and keep home inbound closed.
Keep a separate NextTerm instance per client if you do client work.
Keep your compose.yaml pinned to a known good tag instead of :latest once stable:
ghcr.io/nextterm/nextterm:<version>
Add log rotation if logs are chatty:
Use Docker logging options (max-size, max-file) if needed.
Potential Limitations/Warnings
Some container hardening flags (cap_drop: ALL, read_only: true) might break features if NextTerm needs to write outside /app/data or requires certain capabilities. Apply incrementally and verify.
OIDC redirect URI formats vary by app/version. If login loops, correct the redirect URI/scopes first.
If you proxy across WireGuard, ensure MTU issues don’t break websocket/streaming:
If you see flaky sessions, consider setting WireGuard MTU (e.g., 1420) on wg0.
Recommended Follow-Up Resources
NextTerm GitHub / docs (for exact env vars, OIDC redirect format, and image tags)
WireGuard documentation for site-to-site patterns
Caddy reverse proxy + TLS docs
Authentik or Keycloak OIDC client configuration docs