{"id":20198359,"url":"https://github.com/tieutantan/ttcp","last_synced_at":"2026-04-11T09:01:10.051Z","repository":{"id":65087948,"uuid":"380744993","full_name":"tieutantan/ttcp","owner":"tieutantan","description":"The Free Simple Control Panel For The Server With Multiple Apps And Domains. https://cp.tantn.com","archived":false,"fork":false,"pushed_at":"2025-11-22T19:43:16.000Z","size":59,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-11-22T21:08:45.749Z","etag":null,"topics":["control-panel","domain-operations","hosting-deployment","multiple","nodejs","webserver"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tieutantan.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-06-27T13:20:19.000Z","updated_at":"2025-11-22T19:43:19.000Z","dependencies_parsed_at":"2023-12-02T21:22:09.496Z","dependency_job_id":"eb67f387-194e-48a8-a469-ed7bb848e6ee","html_url":"https://github.com/tieutantan/ttcp","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/tieutantan/ttcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tieutantan%2Fttcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tieutantan%2Fttcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tieutantan%2Fttcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tieutantan%2Fttcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tieutantan","download_url":"https://codeload.github.com/tieutantan/ttcp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tieutantan%2Fttcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28650635,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["control-panel","domain-operations","hosting-deployment","multiple","nodejs","webserver"],"created_at":"2024-11-14T04:30:38.207Z","updated_at":"2026-01-22T02:04:29.088Z","avatar_url":"https://github.com/tieutantan.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TTCP\n\n*The Free Simple Control Panel For The Server With Multiple Apps And Domains*\n\nThis tool is ideal for individuals who want **a straightforward manner**.\n\n- Run multiple apps with multiple ports and dockerized Nginx.\n- With domains on a single server + SSL from CDN.\n- A convenient way to create, list, and remove Nginx `.conf` for each domain.\n- Easy to run and manage the commands on server boot and multiple SSH keys.\n\n## | [Setup](#setup-ttcp) | [Menu](#main-menu) |\n\n## Setup TTCP\n\n### 1. Clone this and go to directory ttcp\n```shell\ngit clone https://github.com/tieutantan/ttcp.git \u0026\u0026 cd ttcp\n```\n\n### 2. Install Docker on Ubuntu 22, 24\n\nNewest Version\n```shell\n./setup/docker.sh\n```\n\nDefault v22 (optional)\n```shell\n./setup/nodejs.sh\n```\n\nCustom Version (optional) 23, 20, 18, 16, 14, 12\n```shell\n./setup/nodejs.sh 16\n```\n\n### 3. Run script whenever server reboot (optional)\nYou can put (ex: start services, clear cache, schedule...) to `startup.sh` example:\n```shell\n#!/bin/bash\nnodemon /path/to/server.js\ncd /home/www/domain.com/app \u0026\u0026 npm run production\npm2 startOrReload /path/other/ecosystem.config.js\n```\n----\n\n## Main Menu\n\n```commandline\n./menu.sh\n```\n\nSelect the desired option by entering the corresponding number and pressing Enter.\n\n```shell\nubuntu@aws:~/ttcp$ ./menu.sh\n---------------\n|| TTCP MENU ||\n---------------\n[1] Add Domain\n[2] List Domain\n[3] Remove Domain\n---------------\n[4] Add SSH Key\n[5] List SSH Keys\n---------------\n[6] List Clone Commands\n[7] Reload Nginx\n[8] Enable Auto-Run on Startup\n[9] Disable Auto-Run on Startup\n---------------\n[98] Start TTCP\n[99] Update TTCP\n---------------\n[0] Exit / Ctrl+C\nEnter your choice: 99 (ex: Update TTCP)\n```\n\n### [1] Add Domain\n- Enter a domain with the app's local port.\n- The `.conf` files will be created in `/ttcp/config/` directory.\n- File Created: `/ttcp/config/tantn.com-1111.conf`\n```shell\nserver {\n    client_max_body_size 200M;\n    server_name tantn.com;\n    location / {\n        proxy_pass http://host.docker.internal:1111;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\n        access_log off;\n    }\n}\n```\n\n### [2] List Domains | with the app's local port.\n```shell\n---------------------------\n1 \u003e ./github.com-39\n2 \u003e ./example.com-79\n3 \u003e ./tantn.com-68\nTTCP: List 3 Domains.\n---------------------------\n```\n\n### [4] Add SSH Key | Create Multiple SSH Keys For Each Repository\n\n```shell\nroot@tt:~/ttcp#\n------------------------------------------------------\nTTCP: CMD To Clone:\ngit clone git@repo-name:user-name/repo-name.git\n------------------------------------------------------\nTTCP: Your SSH Public Key:\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDxlYdqAchLoP2fFUBYIE/8gyZaf4vBC9\nNFSPZduTGZdbkZXmW2FCEKJWpHx7h2NarSR61OFvcfpJNuFztYrsAXOFKbhTzZSHwilDhq\nmci5BCRd3GbafkkwQMixJEqQHW+qSD root@nw.azure.cloud\n```\n\n### [5] List SSH Keys\n- All keys inside `~/.ssh/ttcp_ssh_key/`\n```shell\n/home/ubuntu/.ssh/ttcp_ssh_key/Laraker.pub\n/home/ubuntu/.ssh/ttcp_ssh_key/ttcp.pub\n/home/ubuntu/.ssh/ttcp_ssh_key/wxt.pub\n```\n\n### [6] List Clone Commands\n\n```shell\ngit clone git@ttcp:tieutantan/ttcp.git\ngit clone git@vue:vuejs/vue.git\ngit clone git@kotlin:JetBrains/kotlin.git\n```\n\n### Misc\n\n```shell\ngit push -f origin master\n```\n\nCheck using ports\n```shell\nsudo lsof -i -P -n\n```\n\n----\n\nIf you run into a bug or want to work with me to improve it, \nplease consider submitting a pull request. \nYour help will be much appreciated by the entire community. Thank you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftieutantan%2Fttcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftieutantan%2Fttcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftieutantan%2Fttcp/lists"}