Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nixos/ttyd: init #68604

Merged
merged 1 commit into from Nov 14, 2019
Merged

nixos/ttyd: init #68604

merged 1 commit into from Nov 14, 2019

Conversation

atopuzov
Copy link
Contributor

Motivation for this change

I have been using shellinabox but the terminal implementation leaves something to be desired. And since ttyd is already in nixpkgs i decided to give it a go and write a module for it.
TLDR:
ttyd enables you (like shellinabox) to expose a shell over a websocket.

Tested out on nixos 19.03 by including this module and adding ttyd to pkgs in override.

Sample service configuration:

  services.ttyd = {
    enable = true;
    clientOptions = {
      "fontFamily" = "Fira Code";
      "fontSize" = "16";
    };
  };

Relevant part of the nginx configuration

services.nginx = {
  virtualHosts."mydomain.tld" = {
    locations = {
      "/console" = {
        proxyPass = "http://localhost:7681/";
        proxyWebsockets = true;
        extraConfig = ''
          if ($scheme = 'http') {
              rewrite ^ https://$http_host$request_uri? permanent;
          };
        '';
      };
    };
  };
};
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.
Notify maintainers

cc @

nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
@atopuzov atopuzov force-pushed the ttyd-service branch 4 times, most recently from 0742675 to 903bb3b Compare November 11, 2019 19:01
Copy link
Member

@infinisil infinisil left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hope you don't mind, but I found one more security-sensitive thing to address. Once that's addressed I think this can be merged

nixos/modules/services/web-servers/ttyd.nix Outdated Show resolved Hide resolved
@atopuzov
Copy link
Contributor Author

It's all good, good to learn and make NixOs better.

@infinisil infinisil merged commit b4b2253 into NixOS:master Nov 14, 2019
@infinisil
Copy link
Member

Looking good :)

@atopuzov atopuzov deleted the ttyd-service branch November 14, 2019 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants