From 15e1fd215ebe0dc8313c672775bd57681b61080f Mon Sep 17 00:00:00 2001 From: Karmaa <88517757+LukeGus@users.noreply.github.com> Date: Thu, 12 Dec 2024 18:46:43 -0600 Subject: [PATCH] Release 1.0 (#3) * Nano and timeout error fix #1 * Nano and timeout error fix #2 * Nano and timeout error fix #3 * Nano and timeout error fix #4 * Nano and timeout error fix #5 * Nano and timeout error fix #6 * Nano and timeout error fix #7 (plus css changes for hide buttons) * Nano and timeout error fix #8 (zoom method) * Nano zoom fix #9 * Nano zoom fix #10 * Nano zoom fix #11 * Nano zoom fix #12 * Nano zoom fix #13 * Nano zoom fix #14 * Nano zoom fix #15 * Nano zoom fix #16 (ssh-2-promise) * Nano zoom fix #17 (ssh-2-promise port fix) * Full return back to old code with minor fixes * Terminal size fix #18 (rows & cols fix) * Test ntfy build notification system * Silent resize cmds & Auto resize terminal #1 * Silent resize cmds & Auto resize terminal #2 * Docker build update * Docker build update #2 * Docker build update #3 * Docker build update #4 (cache and cleanup) * Docker build update #5 (cache and cleanup) * Docker build update #6 (cache and cleanup) * Docker build update #7 (final) * Docker build update #8 (nevermind not finanl) * Docker build update #9 (nevermind not finanl) * Docker build update #10 * Docker build update #10 (I hope final) * Docker build update #10 (actual final) * Release 1.0!!!! * Repo clean-up * Remove files ignored by .gitignore * Change project name, create logo, change README.md to be soon updated. * Update README.md #1 (also added MIT License) * Update README.md #2 * Update README.md #3 * Update README.md #4 * Update README.md #5 * Update README.md #6 * Update README.md #7 * Update README.md * Add images * Update image name * Update README.md * Final changes to release-1.0 * Update README.md * Update name (need to fix logo) * Final updates (I hope for real this time) * Fix web-socket timeout. * Fix timeout on close. --- .bash_logout | 7 - .docker/buildx/.lock | 0 .docker/buildx/current | 1 - .github/workflows/docker-image.yml | 48 ++- .gitignore | 2 + .idea/.gitignore | 8 + .idea/.name | 1 + .idea/Termix.iml | 12 + .idea/icon.svg | 1 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + .idea/workspace.xml | 455 +++++++++++++++++++++++++++++ LICENSE | 21 ++ README.md | 50 +++- backend/package-lock.json | 73 +++-- backend/package.json | 4 +- backend/server.js | 159 +++++----- frontend/favicon.ico | Bin 0 -> 4286 bytes frontend/index.html | 6 +- frontend/package-lock.json | 73 +++-- frontend/package.json | 4 +- frontend/src/App.css | 3 +- frontend/src/App.jsx | 188 +++++++----- frontend/src/index.css | 2 +- frontend/src/logo.svg | 2 +- frontend/start.js | 12 + git_push.sh | 0 info.txt | 11 +- package-lock.json | 38 --- package.json | 5 - public/Octocat.png | Bin 2131769 -> 0 bytes public/favicon.ico | Bin 3870 -> 4286 bytes public/logo192.png | Bin 5347 -> 10570 bytes public/logo512.png | Bin 9664 -> 40273 bytes public/manifest.json | 4 +- repo-images/DemoImage1.png | Bin 0 -> 21876 bytes repo-images/TermixLogo.png | Bin 0 -> 19709 bytes 37 files changed, 926 insertions(+), 278 deletions(-) delete mode 100644 .bash_logout delete mode 100644 .docker/buildx/.lock delete mode 100644 .docker/buildx/current create mode 100644 .idea/.gitignore create mode 100644 .idea/.name create mode 100644 .idea/Termix.iml create mode 100644 .idea/icon.svg create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml create mode 100644 LICENSE create mode 100644 frontend/favicon.ico create mode 100644 frontend/start.js mode change 100755 => 100644 git_push.sh delete mode 100644 package-lock.json delete mode 100644 package.json delete mode 100644 public/Octocat.png create mode 100644 repo-images/DemoImage1.png create mode 100644 repo-images/TermixLogo.png diff --git a/.bash_logout b/.bash_logout deleted file mode 100644 index de4f5f75..00000000 --- a/.bash_logout +++ /dev/null @@ -1,7 +0,0 @@ -# ~/.bash_logout: executed by bash(1) when login shell exits. - -# when leaving the console clear the screen to increase privacy - -if [ "$SHLVL" = 1 ]; then - [ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q -fi diff --git a/.docker/buildx/.lock b/.docker/buildx/.lock deleted file mode 100644 index e69de29b..00000000 diff --git a/.docker/buildx/current b/.docker/buildx/current deleted file mode 100644 index f34f695d..00000000 --- a/.docker/buildx/current +++ /dev/null @@ -1 +0,0 @@ -{"Key":"unix:///var/run/docker.sock","Name":"","Global":false} \ No newline at end of file diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 7a44e9c1..05961696 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,4 +1,5 @@ name: Build and Push Docker Image + on: push: branches: @@ -8,7 +9,7 @@ on: tag_name: description: "Custom tag name for the Docker image" required: false - default: "development-latest" + default: "" jobs: build: @@ -16,49 +17,64 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v2 - + - name: Setup Node.js uses: actions/setup-node@v2 with: node-version: '18' - + - name: Install Dependencies and Build Frontend run: | cd frontend - npm install + npm ci npm run build - + - name: Setup Docker Buildx uses: docker/setup-buildx-action@v1 - + - name: Set up QEMU uses: docker/setup-qemu-action@v1 - + - name: Login to Docker Registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - + - name: Determine Docker image tag run: | echo "REPO_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV - if [ -n "${{ github.event.inputs.tag_name }}" ]; then - IMAGE_TAG="${{ github.event.inputs.tag_name }}" + if [ "${{ github.event.inputs.tag_name }}" == "" ]; then + IMAGE_TAG="${{ github.ref_name }}-development-latest" else - IMAGE_TAG="development-latest" + IMAGE_TAG="${{ github.event.inputs.tag_name }}" fi echo "IMAGE_TAG=$IMAGE_TAG" >> $GITHUB_ENV - + - name: Build and Push Docker Image uses: docker/build-push-action@v2 with: context: . file: ./docker/Dockerfile push: true - tags: ghcr.io/${{ env.REPO_OWNER }}/ssh-project:${{ env.IMAGE_TAG }} + tags: ghcr.io/${{ env.REPO_OWNER }}/termix:${{ env.IMAGE_TAG }} labels: org.opencontainers.image.source=https://github.com/${{ github.repository }} - - - name: Cleanup Docker Images - run: docker image prune -af \ No newline at end of file + + - name: Notify via ntfy + run: | + curl -d "Docker image build and push completed successfully for tag: ${{ env.IMAGE_TAG }}" \ + https://ntfy.karmaashomepage.online/termix-build + + - name: Delete all untagged image versions + uses: quartx-analytics/ghcr-cleaner@v1 + with: + owner-type: user + token: ${{ secrets.GHCR_TOKEN }} + repository-owner: ${{ github.repository_owner }} + delete-untagged: true + + - name: Cleanup Docker Images Locally + run: | + docker image prune -af + docker system prune -af --volumes \ No newline at end of file diff --git a/.gitignore b/.gitignore index 7b702ae0..563fa9a0 100644 --- a/.gitignore +++ b/.gitignore @@ -133,6 +133,8 @@ yarn-error.log* .sudo_as_admin_successful .wget-hsts .git-credentials +.docker/ +.bash_logout # VSCode Files .vscode-server/ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 00000000..f85d9ef2 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Termix \ No newline at end of file diff --git a/.idea/Termix.iml b/.idea/Termix.iml new file mode 100644 index 00000000..24643cc3 --- /dev/null +++ b/.idea/Termix.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/icon.svg b/.idea/icon.svg new file mode 100644 index 00000000..43d2b1c8 --- /dev/null +++ b/.idea/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..a12919a6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..78395fd8 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,455 @@ + + + + + + + + + + + { + "lastFilter": {} +} + + { + "customColor": "636378de", + "associatedIndex": 8 +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1733439468142 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..21146d9c --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 Luke Gustafson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 895bf2a4..678c711b 100644 --- a/README.md +++ b/README.md @@ -1 +1,49 @@ -SSH is silly \ No newline at end of file +# Repo Stats +![GitHub Repo stars](https://img.shields.io/github/stars/LukeGus/Termix?style=flat&label=Stars) +![GitHub forks](https://img.shields.io/github/forks/LukeGus/Termix?style=flat&label=Forks) +![GitHub Release](https://img.shields.io/github/v/release/LukeGus/Termix?style=flat&label=Release) +#### Top Technologies +[![React Badge](https://img.shields.io/badge/-React-61DBFB?style=flat-square&labelColor=black&logo=react&logoColor=61DBFB)](#) +[![Javascript Badge](https://img.shields.io/badge/-Javascript-F0DB4F?style=flat-square&labelColor=black&logo=javascript&logoColor=F0DB4F)](#) +[![Nodejs Badge](https://img.shields.io/badge/-Nodejs-3C873A?style=flat-square&labelColor=black&logo=node.js&logoColor=3C873A)](#) +[![HTML Badge](https://img.shields.io/badge/-HTML-E34F26?style=flat-square&labelColor=black&logo=html5&logoColor=E34F26)](#) +[![CSS Badge](https://img.shields.io/badge/-CSS-1572B6?style=flat-square&labelColor=black&logo=css3&logoColor=1572B6)](#) +[![Docker Badge](https://img.shields.io/badge/-Docker-2496ED?style=flat-square&labelColor=black&logo=docker&logoColor=2496ED)](#) + +
+

+ + Termimx Banner +

+ +# Description +Termix is an open-source forever free self-hosted SSH (other protocols planned, see [Planned Features](#planned-features)) management panel inspired by [Nexterm](https://github.com/gnmyt/Nexterm). Its purpose is to provide an all-in-one docker-hosted web solution to manage your servers in one easy place. I'm using this project to help me learn [React](https://github.com/facebook/react), [Vite](https://github.com/vitejs/vite-plugin-react), and [Docker](https://www.docker.com) but also because I could never settle on a server management software that I enjoyed to use. + +> [!WARNING] +> This app is in the VERY early stages of development. Expect bugs, data loss, and possibly even security issues! + +# Planned Features +- [x] SSH +- [ ] VNC +- [ ] RDP +- [ ] SMTP (build in file transfer) +- [ ] Split Screen & Tabs +- [ ] ChatGPT/Ollama Integration (for commands) +- [ ] Login Screen + +# How Termix is Different +Before developing Termix, I faced the issue of a server management panel that did not have every feature I liked. [Guacamole](https://guacamole.apache.org/) had poor copy/paste abilities and a poor UI. [Shellngn](https://shellngn.com/) was too expensive and all other alternatives had one major problem with them. I plan to develop the management panel of my dreams with even an AI integration for those pesky commands I always forget the syntax of. + +# Installation +View the Termix [Wiki](https://github.com/LukeGus/Termix/wiki) for information on how to install Termix. You can also use these links to go directly to guide. [Docker](https://github.com/LukeGus/Termix/wiki/Docker) or [Manual](https://github.com/LukeGus/Termix/wiki/Manual). + +# Known Bugs +### Please create an [Issue](https://github.com/LukeGus/Termix/issues) if you find any problems! +Start session button stays connected even if SSH fails to connect. + +# Show-off + +![Demo Image](repo-images/DemoImage1.png) + +# License +Distributed under the MIT license. See LICENSE for more information. diff --git a/backend/package-lock.json b/backend/package-lock.json index d77add2f..16cf5968 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -11,6 +11,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@xterm/addon-fit": "^0.10.0", + "@xterm/xterm": "^5.5.0", "express": "^4.21.1", "guacamole-common-js": "^1.5.0", "http-proxy-middleware": "^3.0.3", @@ -1501,6 +1503,19 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/@xterm/addon-fit": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz", + "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==", + "peerDependencies": { + "@xterm/xterm": "^5.0.0" + } + }, + "node_modules/@xterm/xterm": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz", + "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==" + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -2288,10 +2303,9 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "license": "MIT", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -2312,7 +2326,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -2327,6 +2341,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express/node_modules/debug": { @@ -3394,9 +3412,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -3404,6 +3422,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3539,10 +3558,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "license": "MIT" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "node_modules/pathe": { "version": "1.1.1", @@ -5774,6 +5792,17 @@ } } }, + "@xterm/addon-fit": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz", + "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==", + "requires": {} + }, + "@xterm/xterm": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz", + "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==" + }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -6320,9 +6349,9 @@ } }, "express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -6343,7 +6372,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -7096,9 +7125,9 @@ "optional": true }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true }, "negotiator": { @@ -7185,9 +7214,9 @@ "dev": true }, "path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "pathe": { "version": "1.1.1", diff --git a/backend/package.json b/backend/package.json index 576bf6c3..19a0692a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -6,6 +6,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@xterm/addon-fit": "^0.10.0", + "@xterm/xterm": "^5.5.0", "express": "^4.21.1", "guacamole-common-js": "^1.5.0", "http-proxy-middleware": "^3.0.3", @@ -55,4 +57,4 @@ "vite": "^4.5.5", "vitest": "^0.34.6" } -} \ No newline at end of file +} diff --git a/backend/server.js b/backend/server.js index 56bf24c8..e041c2b2 100644 --- a/backend/server.js +++ b/backend/server.js @@ -2,97 +2,104 @@ const WebSocket = require('ws'); const ssh2 = require('ssh2'); const http = require('http'); -// Create an HTTP server to serve WebSocket connections const server = http.createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('WebSocket server is running\n'); + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('WebSocket server is running\n'); }); -// Create a WebSocket server attached to the HTTP server const wss = new WebSocket.Server({ server }); -// WebSocket connection handling wss.on('connection', (ws) => { - console.log('WebSocket connection established'); + console.log('WebSocket connection established'); - let conn = null; // Declare SSH client outside to manage lifecycle + let conn = new ssh2.Client(); + let stream = null; + let currentCols = 80; + let currentRows = 24; + let interval = null; - ws.on('message', (message) => { - try { - const data = JSON.parse(message); // Try parsing the incoming message as JSON - - // Check if message contains SSH connection details - if (data.host && data.username && data.password) { - if (conn) { - conn.end(); // Close any previous connection before starting a new one + const resizeTerminal = (cols, rows) => { + if (stream && stream.setWindow) { + stream.setWindow(rows, cols, rows * 100, cols * 100); // Adjust terminal size + console.log(`Terminal resized successfully: cols=${cols}, rows=${rows}`); } + }; - conn = new ssh2.Client(); // Create a new SSH connection instance + ws.on('message', (message) => { + const messageStr = message.toString(); - // When the SSH connection is ready - conn.on('ready', () => { - console.log('SSH Connection established'); - - // Start an interactive shell session - conn.shell((err, stream) => { - if (err) { - console.log(`SSH Error: ${err}`); - ws.send(`Error: ${err}`); - return; + let data; + try { + if (messageStr.trim().startsWith('{')) { + data = JSON.parse(messageStr); + } else if (stream && stream.writable) { + stream.write(messageStr); + return; } - - // Handle data from SSH session - stream.on('data', (data) => { - console.log(`SSH Output: ${data}`); - ws.send(data.toString()); // Send the SSH output back to WebSocket client - }); - - // Handle stream close event - stream.on('close', () => { - console.log('SSH stream closed'); - conn.end(); - }); - - // When the WebSocket client sends a message (from terminal input), forward it to the SSH stream - ws.on('message', (message) => { - console.log(`Received message from WebSocket: ${message}`); - stream.write(message); // Write the message (input) to the SSH shell - }); - }); - }).on('error', (err) => { - console.log('SSH Connection Error: ', err); - ws.send(`SSH Error: ${err}`); - }).connect({ - host: data.host, // Host provided from the client - port: 22, // Default SSH port - username: data.username, // Username provided from the client - password: data.password, // Password provided from the client - }); - } - } catch (error) { - // If message is not valid JSON (i.e., terminal input), treat it as raw text and send it to SSH - console.log('Received non-JSON message, sending to SSH session:', message); - if (conn) { - const stream = conn._stream; // Access the SSH stream directly - if (stream && stream.writable) { - stream.write(message); // Write raw input message to SSH stream + } catch (error) { + console.error('Failed to process message:', error); + return; } - } else { - console.error('SSH connection is not established yet.'); - } - } - }); - // Handle WebSocket close event - ws.on('close', () => { - console.log('WebSocket closed'); - if (conn) { - conn.end(); // Close SSH connection when WebSocket client disconnects - } - }); + if (data?.host && data.port && data.username && data.password) { + conn.on('ready', () => { + console.log('SSH Connection established'); + + interval = setInterval(() => { + if (ws.readyState === WebSocket.OPEN) { + ws.ping(); + } else { + clearInterval(interval); + } + }, 15000); + + conn.shell({ term: 'xterm', cols: currentCols, rows: currentRows }, (error, newStream) => { + if (error) { + console.error(`SSH Shell Error: ${error}`); + ws.send(`Error: Could not establish a shell: ${error.message}`); + return; + } + + stream = newStream; + + stream.on('data', (chunk) => { + ws.send(chunk.toString()); + }); + + stream.on('close', () => { + console.log('SSH stream closed'); + conn.end(); + }); + }); + }).on('error', (err) => { + console.log('SSH Connection Error:', err); + ws.send(`SSH Connection Error: ${err.message}`); + }).connect({ + host: data.host, + port: data.port, + username: data.username, + password: data.password, + keepaliveInterval: 10000, + keepaliveCountMax: 5, + }); + } else if (data?.cols && data.rows) { + currentCols = data.cols; + currentRows = data.rows; + resizeTerminal(currentCols, currentRows); + } + }); + + ws.on('close', () => { + console.log('WebSocket closed'); + if (interval) { + clearInterval(interval); + } + if (conn) { + conn.end(); + } + }); }); -// Start the WebSocket server on port 8081 server.listen(8081, () => { - console.log('WebSocket server is listening on ws://localhost:8081'); + console.log('WebSocket server is listening on ws://localhost:8081'); }); \ No newline at end of file diff --git a/frontend/favicon.ico b/frontend/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9dfe8173ff4bc41901559aa383551647a5148801 GIT binary patch literal 4286 zcmc(jO>7%g5XWB$YHxfUxY7fuxX~j$6p9q6TJfm_2}+`te3is@i0ydSu7VsFq|yRH zO~nE6AyE?G*1(NhL}-8_(l(T+`B0Tpi_}Wtf`q8VV}7&y96MQW92}_|jrZ-mnfcF~ z_jYDB#%z)<%J|Xye$=uXE0R@cue*JvG__EpMCC2cW zLk3yVc~tIA*x2mld7c?A7LDjO%lLG5AoT|r{VzUij~-~Ty-)A6y-z(+O~PXi8D!Bx zS8O~yJW@2+tmi^b2*2BMne-gCUVmo)Dkj)*gkLg`4!UCFcd^xq&5e9eY~SB5aZ6`Y z$(2Og^YK`5euQ(_z!o-zw%77OvGLLOGnqu+UwzLV2;v)o(Iac@Zh5?l;6=to_}Idx z`VbL^aNWks=U>XE5-V}oV7!w~+0WiTWj}rIq!MFzk@)x@`haaPyu4p^9>AA9+BGD5 z)!!;HueBDjb#(ue_S>(g%UmXNp1cva?=BV%k3(SYQhN zW3msOgWa9~xb8Sj}IzBq_w&wVsroOku-cH+hu%%}H zXAT);sSW62qcWbHy)gewgG~;sm4DIw_|yrlar0NN+Mj=zvd0b|vJ>NH*VUhi@h@ya z=8!>_+KBEt{MGzhQf#fg(e(4&R)7`hhJ;A=f*x?k3V)+=a50R7JgWNu9xdi zQ2VKcQhz(DV&(9uuh_iu+pPWIm}kG6IA@na9(=~|n7cANtFq{P^6vWegW-98x&G3V z1~oX}Om9Gs;OY?gAHG$zmoLuPOEbSJU6?*^XMVX*es+9#%(-WD&@IPb_PwJ2psy~s z!;G~jlAd>M|26Q!LEUrqUFpcH)z6O4ea#%YdiDgHo=*Ev!I1M-)qlAdh#&Ny>8k!y zbbBNY|A#b=A$DB<=>nl~aQ$~Ov7)`;2KBh=-HMQ{xBss4LE<2Jxos$&o}*4_Unc8t z=OPvpIq?IX@cUy9TN>MnJ$HCfcjEA7spP)DM){V)5AsI2PjUXZyI?YhOvU%ts9-l^ z3!9t0L>C`czdtjX>1?w97WD#usGAUDcrtfW`l@L;LnHcr>$mIXzdzUdDS47U5xQSU zdnV6c{r+aGy$o}KjLNUI6ZLE-o2)g){%cI}Z(|<%)0lggjoATB8q+i)|2}YJ>b#sh U_ers_9NNP+7+`^Emv`9z0KJ2if&c&j literal 0 HcmV?d00001 diff --git a/frontend/index.html b/frontend/index.html index 6eb6d291..945c1192 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -2,12 +2,12 @@ - + - React App + Termix diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 795ad30d..5ca56465 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -11,6 +11,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@xterm/addon-fit": "^0.10.0", + "@xterm/xterm": "^5.5.0", "express": "^4.21.1", "guacamole-common-js": "^1.5.0", "http-proxy-middleware": "^3.0.3", @@ -1501,6 +1503,19 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", "dev": true }, + "node_modules/@xterm/addon-fit": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz", + "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==", + "peerDependencies": { + "@xterm/xterm": "^5.0.0" + } + }, + "node_modules/@xterm/xterm": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz", + "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==" + }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -2288,10 +2303,9 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", - "license": "MIT", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -2312,7 +2326,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -2327,6 +2341,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express/node_modules/debug": { @@ -3394,9 +3412,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -3404,6 +3422,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -3539,10 +3558,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", - "license": "MIT" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "node_modules/pathe": { "version": "1.1.1", @@ -5773,6 +5791,17 @@ } } }, + "@xterm/addon-fit": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/@xterm/addon-fit/-/addon-fit-0.10.0.tgz", + "integrity": "sha512-UFYkDm4HUahf2lnEyHvio51TNGiLK66mqP2JoATy7hRZeXaGMRDr00JiSF7m63vR5WKATF605yEggJKsw0JpMQ==", + "requires": {} + }, + "@xterm/xterm": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@xterm/xterm/-/xterm-5.5.0.tgz", + "integrity": "sha512-hqJHYaQb5OptNunnyAnkHyM8aCjZ1MEIDTQu1iIbbTD/xops91NB5yq1ZK/dC2JDbVWtF23zUtl9JE2NqwT87A==" + }, "abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -6319,9 +6348,9 @@ } }, "express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -6342,7 +6371,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -7095,9 +7124,9 @@ "optional": true }, "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true }, "negotiator": { @@ -7184,9 +7213,9 @@ "dev": true }, "path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "pathe": { "version": "1.1.1", diff --git a/frontend/package.json b/frontend/package.json index cbe8f407..d8441a0b 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -6,6 +6,8 @@ "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", + "@xterm/addon-fit": "^0.10.0", + "@xterm/xterm": "^5.5.0", "express": "^4.21.1", "guacamole-common-js": "^1.5.0", "http-proxy-middleware": "^3.0.3", @@ -24,7 +26,7 @@ }, "scripts": { "start-vite": "cross-env BROWSER=none WDS_SOCKET_PORT=0 vite --port 8080", - "start-server": "node 'D:/Programming Projects/SSH-Project/ssh-project/backend/server.js'", + "start-server": "node ./start.js", "start": "npm run start-vite && npm run start-server", "build": "vite build", "preview": "vite preview", diff --git a/frontend/src/App.css b/frontend/src/App.css index fe359acc..b51f4ea3 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -22,7 +22,6 @@ flex-direction: column; align-items: flex-start; justify-content: space-between; - border-radius: 5px; position: relative; } @@ -63,7 +62,7 @@ .hide-sidebar-button { position: fixed; bottom: 10px; - right: 10px; + right: 23px; background-color: rgb(108, 108, 108); color: white; border: none; diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 3b7bf407..3d1e6649 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -1,7 +1,7 @@ import React, { useEffect, useRef, useState } from 'react'; -import { Terminal } from 'xterm'; +import { Terminal } from '@xterm/xterm'; import 'xterm/css/xterm.css'; -import { FitAddon } from 'xterm-addon-fit'; +import { FitAddon } from '@xterm/addon-fit'; import './App.css'; const App = () => { @@ -10,13 +10,13 @@ const App = () => { const fitAddon = useRef(null); const socket = useRef(null); const [host, setHost] = useState(''); + const [port, setPort] = useState('22'); const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); const [isConnected, setIsConnected] = useState(false); const [isSideBarHidden, setIsSideBarHidden] = useState(false); useEffect(() => { - // Initialize the terminal and the fit addon terminal.current = new Terminal({ cursorBlink: true, theme: { @@ -25,23 +25,37 @@ const App = () => { }, macOptionIsMeta: true, allowProposedApi: true, - scrollback: 1000, // Allow scrollback so the terminal doesn't lose state + scrollback: 5000, }); - // Initialize and attach the fit addon to the terminal fitAddon.current = new FitAddon(); terminal.current.loadAddon(fitAddon.current); terminal.current.open(terminalRef.current); - - // Resize terminal to fit the container initially fitAddon.current.fit(); - // Adjust terminal size on window resize - const resizeListener = () => { + // Fit the terminal and send the size when needed + const fitAndNotifyResize = () => { fitAddon.current.fit(); + if (socket.current && socket.current.readyState === WebSocket.OPEN) { + socket.current.send(JSON.stringify({ + cols: terminal.current.cols, + rows: terminal.current.rows, + })); + } }; - window.addEventListener('resize', resizeListener); + window.addEventListener('resize', fitAndNotifyResize); + + terminal.current.onResize(({ cols, rows }) => { + console.log(`Terminal resized to cols:${cols}, rows:${rows}`); + fitAndNotifyResize(); + }); + + const handleConnectionEstablished = () => { + fitAndNotifyResize(); + }; + + window.addEventListener('connection-established', handleConnectionEstablished); // Monitor terminal data (activity) terminal.current.onData((data) => { @@ -50,50 +64,54 @@ const App = () => { } }); - // Add specific resize call for certain programs like nano or vim - const resizeTerminalOnStart = () => { - // Resize immediately after starting vim/nano or other programs - fitAddon.current.fit(); - terminal.current.clear(); - }; - - terminal.current.onData((data) => { - if (data.includes('nano') || data.includes('vim')) { - // Trigger resize immediately when these programs start - resizeTerminalOnStart(); - } - }); - - // Cleanup on component unmount return () => { terminal.current.dispose(); if (socket.current) { socket.current.close(); } - window.removeEventListener('resize', resizeListener); + window.removeEventListener('resize', fitAndNotifyResize); }; }, []); const handleConnect = () => { const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:'; const wsUrl = `${protocol}//${window.location.host}/ws/`; // Use current host and "/ws/" endpoint - - socket.current = new WebSocket(wsUrl); - + + if (!host || !username || !password) { + terminal.current.writeln('Please fill in all fields.'); + return; + } + + socket.current = new WebSocket("ws://localhost:8081"); + socket.current.onopen = () => { terminal.current.writeln(`Connected to WebSocket server at ${wsUrl}`); - socket.current.send(JSON.stringify({ host, username, password })); + socket.current.send( + JSON.stringify({ + host, + port, + username, + password, + rows: terminal.current.rows, + cols: terminal.current.cols + }) + ); + + // Dispatch a custom event when connection is open + const event = new Event('connection-established'); + window.dispatchEvent(event); + setIsConnected(true); }; - + socket.current.onmessage = (event) => { terminal.current.write(event.data); }; - + socket.current.onerror = (error) => { terminal.current.writeln(`WebSocket error: ${error.message}`); }; - + socket.current.onclose = () => { terminal.current.writeln('Disconnected from WebSocket server.'); setIsConnected(false); @@ -105,48 +123,80 @@ const App = () => { }; const handleSideBarHiding = () => { - setIsSideBarHidden((prevState) => !prevState); + setIsSideBarHidden((prevState) => { + const newState = !prevState; + if (newState) { + setTimeout(() => { + // Add a delay to ensure layout settles before resize action + fitAddon.current.fit(); + if (socket.current && socket.current.readyState === WebSocket.OPEN) { + socket.current.send(JSON.stringify({ + cols: terminal.current.cols, + rows: terminal.current.rows, + })); + } + }, 100); // Delay of 100 milliseconds + } else { + setTimeout(() => { + // Refit terminal when showing sidebar as well + fitAddon.current.fit(); + if (socket.current && socket.current.readyState === WebSocket.OPEN) { + socket.current.send(JSON.stringify({ + cols: terminal.current.cols, + rows: terminal.current.rows, + })); + } + }, 100); // Delay of 100 milliseconds + } + return newState; + }); }; return ( -
-
-
-

Connection Details

- handleInputChange(e, setHost)} - /> - handleInputChange(e, setUsername)} - /> - handleInputChange(e, setPassword)} - /> - +
+
+
+

Connection Details

+ handleInputChange(e, setHost)} + /> + handleInputChange(e, setPort)} + /> + handleInputChange(e, setUsername)} + /> + handleInputChange(e, setPassword)} + /> + +
+ +
-
+ {/* Hide button always positioned in the bottom-right corner */} +
- - {/* Hide button always positioned in the bottom-right corner */} - -
); }; diff --git a/frontend/src/index.css b/frontend/src/index.css index c0fac97b..565dd547 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -5,7 +5,7 @@ body { sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - overflow: hidden; /* Prevent scrolling */ + overflow: hidden; } code { diff --git a/frontend/src/logo.svg b/frontend/src/logo.svg index 9dfc1c05..60db3b65 100644 --- a/frontend/src/logo.svg +++ b/frontend/src/logo.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/frontend/start.js b/frontend/start.js new file mode 100644 index 00000000..3e619239 --- /dev/null +++ b/frontend/start.js @@ -0,0 +1,12 @@ +// start.js +const { spawn } = require('child_process'); + +const child = spawn('node', ["\"D:/Programming Projects/Termix/backend/server.js\""], { + stdio: 'inherit', // this is key for interactivity + shell: true, // use system shell +}); + +child.on('exit', function (code, signal) { + console.log('child process exited with ' + + `code ${code} and signal ${signal}`); +}); \ No newline at end of file diff --git a/git_push.sh b/git_push.sh old mode 100755 new mode 100644 diff --git a/info.txt b/info.txt index 17810552..4fba4450 100644 --- a/info.txt +++ b/info.txt @@ -1,11 +1,2 @@ Currently: -Fix issue after nano where the input no longer goes down to the bottom. -Fix issue where SSH randomly disconnects -Post inital build. - -Overall Features: -SSH/RDP(?)/VNC(?) -Split Screen & Tabs -ChatGPT/Ollama Stuff -SMTP(?) -Login Page \ No newline at end of file +Done for release! \ No newline at end of file diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 047d800b..00000000 --- a/package-lock.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "ssh-project", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "dependencies": { - "xterm-addon-fit": "^0.8.0" - } - }, - "node_modules/xterm": { - "version": "5.3.0", - "license": "MIT", - "peer": true - }, - "node_modules/xterm-addon-fit": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/xterm-addon-fit/-/xterm-addon-fit-0.8.0.tgz", - "integrity": "sha512-yj3Np7XlvxxhYF/EJ7p3KHaMt6OdwQ+HDu573Vx1lRXsVxOcnVJs51RgjZOouIZOczTsskaS+CpXspK81/DLqw==", - "deprecated": "This package is now deprecated. Move to @xterm/addon-fit instead.", - "peerDependencies": { - "xterm": "^5.0.0" - } - } - }, - "dependencies": { - "xterm": { - "version": "5.3.0", - "peer": true - }, - "xterm-addon-fit": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/xterm-addon-fit/-/xterm-addon-fit-0.8.0.tgz", - "integrity": "sha512-yj3Np7XlvxxhYF/EJ7p3KHaMt6OdwQ+HDu573Vx1lRXsVxOcnVJs51RgjZOouIZOczTsskaS+CpXspK81/DLqw==", - "requires": {} - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index d951c9b1..00000000 --- a/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "xterm-addon-fit": "^0.8.0" - } -} diff --git a/public/Octocat.png b/public/Octocat.png deleted file mode 100644 index 91057da49614551224149b182ae0fc2d843e9368..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2131769 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 diff --git a/public/favicon.ico b/public/favicon.ico index a11777cc471a4344702741ab1c8a588998b1311a..9dfe8173ff4bc41901559aa383551647a5148801 100644 GIT binary patch literal 4286 zcmc(jO>7%g5XWB$YHxfUxY7fuxX~j$6p9q6TJfm_2}+`te3is@i0ydSu7VsFq|yRH zO~nE6AyE?G*1(NhL}-8_(l(T+`B0Tpi_}Wtf`q8VV}7&y96MQW92}_|jrZ-mnfcF~ z_jYDB#%z)<%J|Xye$=uXE0R@cue*JvG__EpMCC2cW zLk3yVc~tIA*x2mld7c?A7LDjO%lLG5AoT|r{VzUij~-~Ty-)A6y-z(+O~PXi8D!Bx zS8O~yJW@2+tmi^b2*2BMne-gCUVmo)Dkj)*gkLg`4!UCFcd^xq&5e9eY~SB5aZ6`Y z$(2Og^YK`5euQ(_z!o-zw%77OvGLLOGnqu+UwzLV2;v)o(Iac@Zh5?l;6=to_}Idx z`VbL^aNWks=U>XE5-V}oV7!w~+0WiTWj}rIq!MFzk@)x@`haaPyu4p^9>AA9+BGD5 z)!!;HueBDjb#(ue_S>(g%UmXNp1cva?=BV%k3(SYQhN zW3msOgWa9~xb8Sj}IzBq_w&wVsroOku-cH+hu%%}H zXAT);sSW62qcWbHy)gewgG~;sm4DIw_|yrlar0NN+Mj=zvd0b|vJ>NH*VUhi@h@ya z=8!>_+KBEt{MGzhQf#fg(e(4&R)7`hhJ;A=f*x?k3V)+=a50R7JgWNu9xdi zQ2VKcQhz(DV&(9uuh_iu+pPWIm}kG6IA@na9(=~|n7cANtFq{P^6vWegW-98x&G3V z1~oX}Om9Gs;OY?gAHG$zmoLuPOEbSJU6?*^XMVX*es+9#%(-WD&@IPb_PwJ2psy~s z!;G~jlAd>M|26Q!LEUrqUFpcH)z6O4ea#%YdiDgHo=*Ev!I1M-)qlAdh#&Ny>8k!y zbbBNY|A#b=A$DB<=>nl~aQ$~Ov7)`;2KBh=-HMQ{xBss4LE<2Jxos$&o}*4_Unc8t z=OPvpIq?IX@cUy9TN>MnJ$HCfcjEA7spP)DM){V)5AsI2PjUXZyI?YhOvU%ts9-l^ z3!9t0L>C`czdtjX>1?w97WD#usGAUDcrtfW`l@L;LnHcr>$mIXzdzUdDS47U5xQSU zdnV6c{r+aGy$o}KjLNUI6ZLE-o2)g){%cI}Z(|<%)0lggjoATB8q+i)|2}YJ>b#sh U_ers_9NNP+7+`^Emv`9z0KJ2if&c&j literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ diff --git a/public/logo192.png b/public/logo192.png index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..229e95f0e7f3485068fd7a016de9a5833e0e9c1c 100644 GIT binary patch literal 10570 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 literal 5347 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%0DD^jJDB-(ZoBAbT?wpgb=< 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 Do57sO literal 9664 zcmYj%RZtvEu=T>?y0|+_a0zY+Zo%Dkae}+MySoIppb75o?vUW_?)>@g{U2`ERQIXV zeY$JrWnMZ$QC<=ii4X|@0H8`si75jB(ElJb00HAB%>SlLR{!zO|C9P3zxw_U8?1d8uRZ=({Ga4shyN}3 zAK}WA(ds|``G4jA)9}Bt2Hy0+f3rV1E6b|@?hpGA=PI&r8)ah|)I2s(P5Ic*Ndhn^ z*T&j@gbCTv7+8rpYbR^Ty}1AY)YH;p!m948r#%7x^Z@_-w{pDl|1S4`EM3n_PaXvK z1JF)E3qy$qTj5Xs{jU9k=y%SQ0>8E$;x?p9ayU0bZZeo{5Z@&FKX>}s!0+^>C^D#z z>xsCPvxD3Z=dP}TTOSJhNTPyVt14VCQ9MQFN`rn!c&_p?&4<5_PGm4a;WS&1(!qKE z_H$;dDdiPQ!F_gsN`2>`X}$I=B;={R8%L~`>RyKcS$72ai$!2>d(YkciA^J0@X%G4 z4cu!%Ps~2JuJ8ex`&;Fa0NQOq_nDZ&X;^A=oc1&f#3P1(!5il>6?uK4QpEG8z0Rhu zvBJ+A9RV?z%v?!$=(vcH?*;vRs*+PPbOQ3cdPr5=tOcLqmfx@#hOqX0iN)wTTO21jH<>jpmwRIAGw7`a|sl?9y9zRBh>(_%| zF?h|P7}~RKj?HR+q|4U`CjRmV-$mLW>MScKnNXiv{vD3&2@*u)-6P@h0A`eeZ7}71 zK(w%@R<4lLt`O7fs1E)$5iGb~fPfJ?WxhY7c3Q>T-w#wT&zW522pH-B%r5v#5y^CF zcC30Se|`D2mY$hAlIULL%-PNXgbbpRHgn<&X3N9W!@BUk@9g*P5mz-YnZBb*-$zMM z7Qq}ic0mR8n{^L|=+diODdV}Q!gwr?y+2m=3HWwMq4z)DqYVg0J~^}-%7rMR@S1;9 z7GFj6K}i32X;3*$SmzB&HW{PJ55kT+EI#SsZf}bD7nW^Haf}_gXciYKX{QBxIPSx2Ma? zHQqgzZq!_{&zg{yxqv3xq8YV+`S}F6A>Gtl39_m;K4dA{pP$BW0oIXJ>jEQ!2V3A2 zdpoTxG&V=(?^q?ZTj2ZUpDUdMb)T?E$}CI>r@}PFPWD9@*%V6;4Ag>D#h>!s)=$0R zRXvdkZ%|c}ubej`jl?cS$onl9Tw52rBKT)kgyw~Xy%z62Lr%V6Y=f?2)J|bZJ5(Wx zmji`O;_B+*X@qe-#~`HFP<{8$w@z4@&`q^Q-Zk8JG3>WalhnW1cvnoVw>*R@c&|o8 zZ%w!{Z+MHeZ*OE4v*otkZqz11*s!#s^Gq>+o`8Z5 z^i-qzJLJh9!W-;SmFkR8HEZJWiXk$40i6)7 zZpr=k2lp}SasbM*Nbn3j$sn0;rUI;%EDbi7T1ZI4qL6PNNM2Y%6{LMIKW+FY_yF3) zSKQ2QSujzNMSL2r&bYs`|i2Dnn z=>}c0>a}>|uT!IiMOA~pVT~R@bGlm}Edf}Kq0?*Af6#mW9f9!}RjW7om0c9Qlp;yK z)=XQs(|6GCadQbWIhYF=rf{Y)sj%^Id-ARO0=O^Ad;Ph+ z0?$eE1xhH?{T$QI>0JP75`r)U_$#%K1^BQ8z#uciKf(C701&RyLQWBUp*Q7eyn76} z6JHpC9}R$J#(R0cDCkXoFSp;j6{x{b&0yE@P7{;pCEpKjS(+1RQy38`=&Yxo%F=3y zCPeefABp34U-s?WmU#JJw23dcC{sPPFc2#J$ZgEN%zod}J~8dLm*fx9f6SpO zn^Ww3bt9-r0XaT2a@Wpw;C23XM}7_14#%QpubrIw5aZtP+CqIFmsG4`Cm6rfxl9n5 z7=r2C-+lM2AB9X0T_`?EW&Byv&K?HS4QLoylJ|OAF z`8atBNTzJ&AQ!>sOo$?^0xj~D(;kS$`9zbEGd>f6r`NC3X`tX)sWgWUUOQ7w=$TO&*j;=u%25ay-%>3@81tGe^_z*C7pb9y*Ed^H3t$BIKH2o+olp#$q;)_ zfpjCb_^VFg5fU~K)nf*d*r@BCC>UZ!0&b?AGk_jTPXaSnCuW110wjHPPe^9R^;jo3 zwvzTl)C`Zl5}O2}3lec=hZ*$JnkW#7enKKc)(pM${_$9Hc=Sr_A9Biwe*Y=T?~1CK z6eZ9uPICjy-sMGbZl$yQmpB&`ouS8v{58__t0$JP%i3R&%QR3ianbZqDs<2#5FdN@n5bCn^ZtH992~5k(eA|8|@G9u`wdn7bnpg|@{m z^d6Y`*$Zf2Xr&|g%sai#5}Syvv(>Jnx&EM7-|Jr7!M~zdAyjt*xl;OLhvW-a%H1m0 z*x5*nb=R5u><7lyVpNAR?q@1U59 zO+)QWwL8t zyip?u_nI+K$uh{y)~}qj?(w0&=SE^8`_WMM zTybjG=999h38Yes7}-4*LJ7H)UE8{mE(6;8voE+TYY%33A>S6`G_95^5QHNTo_;Ao ztIQIZ_}49%{8|=O;isBZ?=7kfdF8_@azfoTd+hEJKWE!)$)N%HIe2cplaK`ry#=pV z0q{9w-`i0h@!R8K3GC{ivt{70IWG`EP|(1g7i_Q<>aEAT{5(yD z=!O?kq61VegV+st@XCw475j6vS)_z@efuqQgHQR1T4;|-#OLZNQJPV4k$AX1Uk8Lm z{N*b*ia=I+MB}kWpupJ~>!C@xEN#Wa7V+7{m4j8c?)ChV=D?o~sjT?0C_AQ7B-vxqX30s0I_`2$in86#`mAsT-w?j{&AL@B3$;P z31G4(lV|b}uSDCIrjk+M1R!X7s4Aabn<)zpgT}#gE|mIvV38^ODy@<&yflpCwS#fRf9ZX3lPV_?8@C5)A;T zqmouFLFk;qIs4rA=hh=GL~sCFsXHsqO6_y~*AFt939UYVBSx1s(=Kb&5;j7cSowdE;7()CC2|-i9Zz+_BIw8#ll~-tyH?F3{%`QCsYa*b#s*9iCc`1P1oC26?`g<9))EJ3%xz+O!B3 zZ7$j~To)C@PquR>a1+Dh>-a%IvH_Y7^ys|4o?E%3`I&ADXfC8++hAdZfzIT#%C+Jz z1lU~K_vAm0m8Qk}K$F>|>RPK%<1SI0(G+8q~H zAsjezyP+u!Se4q3GW)`h`NPSRlMoBjCzNPesWJwVTY!o@G8=(6I%4XHGaSiS3MEBK zhgGFv6Jc>L$4jVE!I?TQuwvz_%CyO!bLh94nqK11C2W$*aa2ueGopG8DnBICVUORP zgytv#)49fVXDaR$SukloYC3u7#5H)}1K21=?DKj^U)8G;MS)&Op)g^zR2($<>C*zW z;X7`hLxiIO#J`ANdyAOJle4V%ppa*(+0i3w;8i*BA_;u8gOO6)MY`ueq7stBMJTB; z-a0R>hT*}>z|Gg}@^zDL1MrH+2hsR8 zHc}*9IvuQC^Ju)^#Y{fOr(96rQNPNhxc;mH@W*m206>Lo<*SaaH?~8zg&f&%YiOEG zGiz?*CP>Bci}!WiS=zj#K5I}>DtpregpP_tfZtPa(N<%vo^#WCQ5BTv0vr%Z{)0q+ z)RbfHktUm|lg&U3YM%lMUM(fu}i#kjX9h>GYctkx9Mt_8{@s%!K_EI zScgwy6%_fR?CGJQtmgNAj^h9B#zmaMDWgH55pGuY1Gv7D z;8Psm(vEPiwn#MgJYu4Ty9D|h!?Rj0ddE|&L3S{IP%H4^N!m`60ZwZw^;eg4sk6K{ ziA^`Sbl_4~f&Oo%n;8Ye(tiAdlZKI!Z=|j$5hS|D$bDJ}p{gh$KN&JZYLUjv4h{NY zBJ>X9z!xfDGY z+oh_Z&_e#Q(-}>ssZfm=j$D&4W4FNy&-kAO1~#3Im;F)Nwe{(*75(p=P^VI?X0GFakfh+X-px4a%Uw@fSbmp9hM1_~R>?Z8+ ziy|e9>8V*`OP}4x5JjdWp}7eX;lVxp5qS}0YZek;SNmm7tEeSF*-dI)6U-A%m6YvCgM(}_=k#a6o^%-K4{`B1+}O4x zztDT%hVb;v#?j`lTvlFQ3aV#zkX=7;YFLS$uIzb0E3lozs5`Xy zi~vF+%{z9uLjKvKPhP%x5f~7-Gj+%5N`%^=yk*Qn{`> z;xj&ROY6g`iy2a@{O)V(jk&8#hHACVDXey5a+KDod_Z&}kHM}xt7}Md@pil{2x7E~ zL$k^d2@Ec2XskjrN+IILw;#7((abu;OJii&v3?60x>d_Ma(onIPtcVnX@ELF0aL?T zSmWiL3(dOFkt!x=1O!_0n(cAzZW+3nHJ{2S>tgSK?~cFha^y(l@-Mr2W$%MN{#af8J;V*>hdq!gx=d0h$T7l}>91Wh07)9CTX zh2_ZdQCyFOQ)l(}gft0UZG`Sh2`x-w`5vC2UD}lZs*5 zG76$akzn}Xi))L3oGJ75#pcN=cX3!=57$Ha=hQ2^lwdyU#a}4JJOz6ddR%zae%#4& za)bFj)z=YQela(F#Y|Q#dp}PJghITwXouVaMq$BM?K%cXn9^Y@g43$=O)F&ZlOUom zJiad#dea;-eywBA@e&D6Pdso1?2^(pXiN91?jvcaUyYoKUmvl5G9e$W!okWe*@a<^ z8cQQ6cNSf+UPDx%?_G4aIiybZHHagF{;IcD(dPO!#=u zWfqLcPc^+7Uu#l(Bpxft{*4lv#*u7X9AOzDO z1D9?^jIo}?%iz(_dwLa{ex#T}76ZfN_Z-hwpus9y+4xaUu9cX}&P{XrZVWE{1^0yw zO;YhLEW!pJcbCt3L8~a7>jsaN{V3>tz6_7`&pi%GxZ=V3?3K^U+*ryLSb)8^IblJ0 zSRLNDvIxt)S}g30?s_3NX>F?NKIGrG_zB9@Z>uSW3k2es_H2kU;Rnn%j5qP)!XHKE zPB2mHP~tLCg4K_vH$xv`HbRsJwbZMUV(t=ez;Ec(vyHH)FbfLg`c61I$W_uBB>i^r z&{_P;369-&>23R%qNIULe=1~T$(DA`ev*EWZ6j(B$(te}x1WvmIll21zvygkS%vwG zzkR6Z#RKA2!z!C%M!O>!=Gr0(J0FP=-MN=5t-Ir)of50y10W}j`GtRCsXBakrKtG& zazmITDJMA0C51&BnLY)SY9r)NVTMs);1<=oosS9g31l{4ztjD3#+2H7u_|66b|_*O z;Qk6nalpqdHOjx|K&vUS_6ITgGll;TdaN*ta=M_YtyC)I9Tmr~VaPrH2qb6sd~=AcIxV+%z{E&0@y=DPArw zdV7z(G1hBx7hd{>(cr43^WF%4Y@PXZ?wPpj{OQ#tvc$pABJbvPGvdR`cAtHn)cSEV zrpu}1tJwQ3y!mSmH*uz*x0o|CS<^w%&KJzsj~DU0cLQUxk5B!hWE>aBkjJle8z~;s z-!A=($+}Jq_BTK5^B!`R>!MulZN)F=iXXeUd0w5lUsE5VP*H*oCy(;?S$p*TVvTxwAeWFB$jHyb0593)$zqalVlDX=GcCN1gU0 zlgU)I$LcXZ8Oyc2TZYTPu@-;7<4YYB-``Qa;IDcvydIA$%kHhJKV^m*-zxcvU4viy&Kr5GVM{IT>WRywKQ9;>SEiQD*NqplK-KK4YR`p0@JW)n_{TU3bt0 zim%;(m1=#v2}zTps=?fU5w^(*y)xT%1vtQH&}50ZF!9YxW=&7*W($2kgKyz1mUgfs zfV<*XVVIFnohW=|j+@Kfo!#liQR^x>2yQdrG;2o8WZR+XzU_nG=Ed2rK?ntA;K5B{ z>M8+*A4!Jm^Bg}aW?R?6;@QG@uQ8&oJ{hFixcfEnJ4QH?A4>P=q29oDGW;L;= z9-a0;g%c`C+Ai!UmK$NC*4#;Jp<1=TioL=t^YM)<<%u#hnnfSS`nq63QKGO1L8RzX z@MFDqs1z ztYmxDl@LU)5acvHk)~Z`RW7=aJ_nGD!mOSYD>5Odjn@TK#LY{jf?+piB5AM-CAoT_ z?S-*q7}wyLJzK>N%eMPuFgN)Q_otKP;aqy=D5f!7<=n(lNkYRXVpkB{TAYLYg{|(jtRqYmg$xH zjmq?B(RE4 zQx^~Pt}gxC2~l=K$$-sYy_r$CO(d=+b3H1MB*y_5g6WLaWTXn+TKQ|hNY^>Mp6k*$ zwkovomhu776vQATqT4blf~g;TY(MWCrf^^yfWJvSAB$p5l;jm@o#=!lqw+Lqfq>X= z$6~kxfm7`3q4zUEB;u4qa#BdJxO!;xGm)wwuisj{0y2x{R(IGMrsIzDY9LW>m!Y`= z04sx3IjnYvL<4JqxQ8f7qYd0s2Ig%`ytYPEMKI)s(LD}D@EY>x`VFtqvnADNBdeao zC96X+MxnwKmjpg{U&gP3HE}1=s!lv&D{6(g_lzyF3A`7Jn*&d_kL<;dAFx!UZ>hB8 z5A*%LsAn;VLp>3${0>M?PSQ)9s3}|h2e?TG4_F{}{Cs>#3Q*t$(CUc}M)I}8cPF6% z=+h(Kh^8)}gj(0}#e7O^FQ6`~fd1#8#!}LMuo3A0bN`o}PYsm!Y}sdOz$+Tegc=qT z8x`PH$7lvnhJp{kHWb22l;@7B7|4yL4UOOVM0MP_>P%S1Lnid)+k9{+3D+JFa#Pyf zhVc#&df87APl4W9X)F3pGS>@etfl=_E5tBcVoOfrD4hmVeTY-cj((pkn%n@EgN{0f zwb_^Rk0I#iZuHK!l*lN`ceJn(sI{$Fq6nN& zE<-=0_2WN}m+*ivmIOxB@#~Q-cZ>l136w{#TIJe478`KE7@=a{>SzPHsKLzYAyBQO zAtuuF$-JSDy_S@6GW0MOE~R)b;+0f%_NMrW(+V#c_d&U8Z9+ec4=HmOHw?gdjF(Lu zzra83M_BoO-1b3;9`%&DHfuUY)6YDV21P$C!Rc?mv&{lx#f8oc6?0?x zK08{WP65?#>(vPfA-c=MCY|%*1_<3D4NX zeVTi-JGl2uP_2@0F{G({pxQOXt_d{g_CV6b?jNpfUG9;8yle-^4KHRvZs-_2siata zt+d_T@U$&t*xaD22(fH(W1r$Mo?3dc%Tncm=C6{V9y{v&VT#^1L04vDrLM9qBoZ4@ z6DBN#m57hX7$C(=#$Y5$bJmwA$T8jKD8+6A!-IJwA{WOfs%s}yxUw^?MRZjF$n_KN z6`_bGXcmE#5e4Ym)aQJ)xg3Pg0@k`iGuHe?f(5LtuzSq=nS^5z>vqU0EuZ&75V%Z{ zYyhRLN^)$c6Ds{f7*FBpE;n5iglx5PkHfWrj3`x^j^t z7ntuV`g!9Xg#^3!x)l*}IW=(Tz3>Y5l4uGaB&lz{GDjm2D5S$CExLT`I1#n^lBH7Y zDgpMag@`iETKAI=p<5E#LTkwzVR@=yY|uBVI1HG|8h+d;G-qfuj}-ZR6fN>EfCCW z9~wRQoAPEa#aO?3h?x{YvV*d+NtPkf&4V0k4|L=uj!U{L+oLa(z#&iuhJr3-PjO3R z5s?=nn_5^*^Rawr>>Nr@K(jwkB#JK-=+HqwfdO<+P5byeim)wvqGlP-P|~Nse8=XF zz`?RYB|D6SwS}C+YQv+;}k6$-%D(@+t14BL@vM z2q%q?f6D-A5s$_WY3{^G0F131bbh|g!}#BKw=HQ7mx;Dzg4Z*bTLQSfo{ed{4}NZW zfrRm^Ca$rlE{Ue~uYv>R9{3smwATcdM_6+yWIO z*ZRH~uXE@#p$XTbCt5j7j2=86e{9>HIB6xDzV+vAo&B?KUiMP|ttOElepnl%|DPqL b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/public/manifest.json b/public/manifest.json index 080d6c77..4660c910 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -1,6 +1,6 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "short_name": "Termix", + "name": "Termix", "icons": [ { "src": "favicon.ico", diff --git a/repo-images/DemoImage1.png b/repo-images/DemoImage1.png new file mode 100644 index 0000000000000000000000000000000000000000..f1641293dd5e0cd917bca08c4cb512cd87d2f020 GIT binary patch literal 21876 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 literal 0 HcmV?d00001 diff --git a/repo-images/TermixLogo.png b/repo-images/TermixLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..48373054b424f1aa31e27cdfa21a89e13d47560f GIT binary patch literal 19709 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 UQ`cr1x&QzG07*qoM6N<$f<+Gj4*&oF literal 0 HcmV?d00001