Skip to content
Thanks

Built on the work of others

nextrmnl would not exist without these projects, as a building block, a font or a counterpart. Each is named and linked here. The exact versions are in the repository, in requirements.txt and package.json.

The model

PuTTY comes first. How selecting copies, how a right click pastes, how an unknown host key is reported: PuTTY got that right twenty-five years ago, and nextrmnl copies it because every Windows admin has it in their fingers. Then WinSCP, for the idea that the files belong next to the terminal.

Counterparts

nextrmnl talks to your machines, it replaces none. Without these agreements and programs there would be nothing to connect to.

ProjectWhat for
OpenSSHThe SSH server on almost every machine nextrmnl talks to, and the format of the keys in the vault
SSH and SFTPThe two protocols everything runs over. Any machine that speaks them works.
authentik, Keycloak, Authelia, Pocket IDSign-in through OpenID Connect; for authentik there is the button that sets everything up
7-ZipOpens the encrypted backups without nextrmnl

On the server

ProjectWhat forLicence
PythonThe language of the serverPSF
AsyncSSHSpeaks SSH and SFTP to your machines, checks host keys, reads and writes keysEPL-2.0 or GPL-2.0
FastAPIThe framework of the API, including the WebSocket to the terminalMIT
UvicornThe server that delivers everythingBSD-3-Clause
SQLAlchemyThe way to the databaseMIT
SQLiteThe database itself, one file, including the backup interfacepublic domain
PydanticChecks every incoming and outgoing value, reads the environment variablesMIT
argon2-cffiHashes the passwords with Argon2id and derives the key to the vault from themMIT
cryptographyAES-256-GCM for the vault and the server-side secretsApache-2.0 or BSD-3-Clause
bcryptOpens OpenSSH keys with a passphraseApache-2.0
httpxTalks to the OIDC provider and to authentik during setupBSD-3-Clause
PyJWTChecks the id tokens of the OIDC providerMIT
segnoThe QR code for the authenticator appBSD-3-Clause
pyzipperThe encrypted backupMIT
python-multipartReceives uploaded filesApache-2.0

In the browser

ProjectWhat forLicence
xterm.jsThe terminal itself, with the addon that fits it to the windowMIT
ReactThe interfaceMIT
React RouterThe pages within itMIT
i18nextGerman and EnglishMIT
Tailwind CSSThe looksMIT
ViteBuilds the interfaceMIT
TypeScriptThe language of the interfaceApache-2.0
VitestThe tests of the interfaceMIT

The fonts of this site

This site ships its fonts with it instead of loading them: a project that holds the access to your machines should not advertise with a page that contacts a foreign server when opened. Shipping them means the licence travels along, and that is why it is listed here. All three under the SIL Open Font License 1.1.

FontWhat forLicence
IBM Plex SansBody textOFL-1.1
Space GroteskHeadings and the wordmarkOFL-1.1
JetBrains MonoAddresses and codeOFL-1.1
FontsourcePackages the three as npm packagesMIT

And around it

ProjectWhat for
DockerOne container, and it runs
GitHubSource, bug reports and the finished images
PlaywrightDrives this site and the application through a real browser before every release
nextrmnl as a whole is licensed under the AGPL-3.0. The licences of the building blocks are in the packages themselves; the obligation of the AGPL runs in one direction only: whoever runs a modified version of nextrmnl as a network service has to offer its source.