Open-source platform for secure remote infrastructure operations
Quick Start • Documentation • API Reference • Security Notes
Infram (infra-manager) provides a central control plane for day-to-day infrastructure access and operations across distributed Linux and mixed-protocol environments. It combines remote access, identity-aware authentication, automation, and auditability in one operational surface.
- Remote access over SSH, RDP, VNC, and Telnet
- Integrated remote file operations over SSH sessions
- Multi-tenant isolation with organizations, folders, and scoped identities
- Authentication options: local users, LDAP, OIDC/SSO, TOTP, and passkeys
- Scripts and snippets for repeatable operations and runbooks
- Session lifecycle visibility, audit events, and status-checking features
Image: swissmakers/infram
- Create persistent storage:
mkdir -p /opt/podman-infra-manager- Generate a 64-character hex encryption key:
openssl rand -hex 32- Start Infram:
podman run -d \
--name infram \
--network host \
--restart always \
-e ENCRYPTION_KEY="<replace-with-generated-key>" \
-e TRUST_PROXY=1 \
-v /opt/podman-infra-manager:/app/data:Z \
swissmakers/infram:latest- Open
http://<host>:6989.
Tip
ENCRYPTION_KEY can also be supplied as a runtime secret file (/run/secrets/encryption_key), which is auto-loaded as ENCRYPTION_KEY.
- Installation
- Reverse Proxy
- SSL/HTTPS
- LDAP
- OIDC / SSO
- Custom Sources
- Scripts & Snippets
- Scripting Variables & Directives
- API Reference
- Screenshots
- Licensing
- Contributing
Core runtime variables:
ENCRYPTION_KEY(required): 64-char hex key used for credential encryptionSERVER_PORT(default6989): HTTP listenerHTTPS_PORT(default5878): optional HTTPS listener when cert files existTRUST_PROXY(defaultfalse): Express proxy trust policy (true,false, count, CIDR/IP list)STRICT_TLS(defaulttrue): strict certificate validation for outbound TLS integrationsENABLE_SOURCE_SYNC(defaultfalse): enables/disables custom source sync workerENABLE_VERSION_CHECK(defaulttrue): enables/disables release check endpointVITE_ENABLE_EXTERNAL_LINKS(defaultfalse): client-side external URL opening policy
Prerequisites:
- Node.js 18+
- Yarn
- Podman or Docker (optional, for local container testing)
git clone https://github.com/swissmakers/infra-manager.git
cd infra-manager
yarn install
cd client && yarn install && cd ..
yarn devUseful docs commands:
yarn docs:dev
yarn docs:build- Keep Infram behind a reverse proxy, VPN, or private network boundary
- Set
TRUST_PROXYcorrectly to preserve accurate client IP attribution - Keep
STRICT_TLS=truefor production unless explicitly troubleshooting - Store and rotate
ENCRYPTION_KEYusing your secrets management standard - Back up
/app/databefore upgrades
Security pipeline helpers:
make security-update
make security-audit
make security-all
make security-sbomContribution workflow, coding conventions, and validation steps are documented in docs/contributing.md.
This repository is distributed under GNU GPL v3.0. See LICENSE and NOTICE for terms and third-party attribution.
Infram is maintained by Swissmakers GmbH and based on the original Nexterm project by Mathias Wagner. Upstream and third-party attribution is preserved in LICENSE and NOTICE.