{"id":54147,"date":"2025-11-24T13:48:27","date_gmt":"2025-11-24T13:48:27","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=54147"},"modified":"2025-12-02T09:49:32","modified_gmt":"2025-12-02T09:49:32","slug":"wetty-how-to-install-access-wetty-web-based-ssh-on-aws-ec2-using-docker","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/wetty-how-to-install-access-wetty-web-based-ssh-on-aws-ec2-using-docker\/","title":{"rendered":"Wetty &#8211; How to Install &amp; Access Wetty (Web-based SSH) on AWS EC2  linux to access using browser"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 <strong>1. Install Docker (if not installed)<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">sudo<\/span> <span class=\"hljs-selector-tag\">apt<\/span> <span class=\"hljs-selector-tag\">update<\/span>\n<span class=\"hljs-selector-tag\">sudo<\/span> <span class=\"hljs-selector-tag\">apt<\/span> <span class=\"hljs-selector-tag\">install<\/span> <span class=\"hljs-selector-tag\">-y<\/span> <span class=\"hljs-selector-tag\">docker<\/span><span class=\"hljs-selector-class\">.io<\/span>\n<span class=\"hljs-selector-tag\">sudo<\/span> <span class=\"hljs-selector-tag\">systemctl<\/span> <span class=\"hljs-selector-tag\">enable<\/span> <span class=\"hljs-selector-tag\">--now<\/span> <span class=\"hljs-selector-tag\">docker<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 <strong>2. Start Wetty using Docker (recommended + stable)<\/strong><\/h2>\n\n\n\n<p>This avoids all Node\/gc-stats errors you faced earlier.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Run Wetty in container:<\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">sudo docker run -d \\\n  --name wetty \\\n  -p 80:3000 \\\n  wettyoss\/wetty \\\n  --ssh-host=127.0.0.1\n<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\">What this means:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Docker runs Wetty internally on <strong>port 3000<\/strong><\/li>\n\n\n\n<li>EC2 instance listens on <strong>port 80<\/strong><\/li>\n\n\n\n<li>No need for Node.js \/ npm on host<\/li>\n\n\n\n<li>No gc-stats errors<\/li>\n\n\n\n<li>Very stable<\/li>\n<\/ul>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Run Wetty in container BUT access the HOST Machine\n\nsudo docker run -d \\\n  --name wetty \\\n  -p 80:3000 \\\n  wettyoss\/wetty \\\n  --force-ssh \\\n  --ssh-host=172.31.47.185 \\\n  --ssh-port=22 \\\n  --ssh-user=ubuntu<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 <strong>3. Access Wetty in your browser<\/strong><\/h2>\n\n\n\n<p>Use either:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">http:<span class=\"hljs-comment\">\/\/13.200.229.28\/wetty<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>or<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">http:<span class=\"hljs-comment\">\/\/ec2-13-200-229-28.ap-south-1.compute.amazonaws.com\/wetty<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>\u26a0\ufe0f <strong>Wetty does NOT load on <code>\/<\/code><\/strong> \u2192 You must add <code>\/wetty<\/code><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 <strong>4. Verify Container is Running<\/strong><\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">docker ps\n<\/code><\/span><\/pre>\n\n\n<p>Should show:<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">PORTS\n0.0.0.0:80-&gt;3000\/tcp\n<\/code><\/span><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u2705 1. Install Docker (if not installed) \u2705 2. Start Wetty using Docker (recommended + stable) This avoids all Node\/gc-stats errors you faced earlier. Run Wetty in container: What this&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[11138],"tags":[],"class_list":["post-54147","post","type-post","status-publish","format-standard","hentry","category-best-tools"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/54147","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=54147"}],"version-history":[{"count":4,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/54147\/revisions"}],"predecessor-version":[{"id":54309,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/54147\/revisions\/54309"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=54147"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=54147"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=54147"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}