th ແມ່ນຫຍັງ
th ແມ່ນ command line ຂອງ ThailandHosting ມັນເອີ້ນ API ດຽວກັນກັບ Console ໂດຍເຮັດວຽກໃນນາມບັນຊີຂອງທ່ານ (ຫຼັງ th auth login) ຫຼື ໃນນາມ API Key (ໃນ CI) ຄຳສັ່ງຈັດເປັນກຸ່ມຕາມບໍລິການ: th <group> <command> [arguments] [parameters]
th auth login
th container deploy api --source .
th static-site deploy docs ./dist
th object-storage cp -r ./backups th://my-bucket/backups
th database connect app-db
th queue tail jobsth help ສະແດງທຸກຄຳສັ່ງ ເພີ່ມ --help ໃສ່ຄຳສັ່ງໃດກໍໄດ້ (ຫຼື ຣັນ th help container deploy) ເພື່ອເບິ່ງພາຣາມິເຕີຂອງຄຳສັ່ງນັ້ນ ຖ້າພິມພຽງຊື່ກຸ່ມ ເຊັ່ນ th container ຈະສະແດງຄຳສັ່ງໃນກຸ່ມນັ້ນ
ພາຣາມິເຕີ ແລະ ອາກິວເມັນວາງລຳດັບໃດກໍໄດ້: th container deploy api --port 3000 ແລະ th container deploy --port 3000 api ໃຫ້ຜົນຄືກັນ ແຟລັກທີ່ເປີດໄວ້ຕັ້ງແຕ່ຕົ້ນປິດໄດ້ດ້ວຍ --no- ເຊັ່ນ --no-ack
ຕິດຕັ້ງ
ສະຄຣິບຕິດຕັ້ງດາວໂຫຼດ release ລ່າສຸດຈາກ GitHub ແລະ ກວດກັບ SHA256SUMS ຂອງ release ນັ້ນກ່ອນຕິດຕັ້ງ
# Linux, macOS
curl -fsSL https://raw.githubusercontent.com/mrzack99s/thailandhosting-cli/main/install.sh | sh
# Windows (PowerShell)
irm https://raw.githubusercontent.com/mrzack99s/thailandhosting-cli/main/install.ps1 | iex| ລະບົບ | th ຖືກຕິດຕັ້ງໄວ້ໃສ | ຕົວເລືອກ |
|---|---|---|
| Linux, macOS | /usr/local/bin ຫຼື ~/.local/bin ເມື່ອຂຽນໂຟນເດີທຳອິດບໍ່ໄດ້ | TH_VERSION=0.1.0 ເລືອກເວີຊັນ TH_INSTALL_DIR ເລືອກໂຟນເດີ |
| Windows | %LOCALAPPDATA%\Programs\th ແລະ ເພີ່ມເຂົ້າ PATH ຂອງຜູ້ໃຊ້ (ເປີດ terminal ໃໝ່ຫຼັງຕິດຕັ້ງ) | $env:TH_VERSION ເລືອກເວີຊັນ |
ດາວໂຫຼດໄຟລ໌ archive ສຳລັບລະບົບຂອງທ່ານຈາກ GitHub Releases ກໍໄດ້ ຫຼື build ເອງດ້ວຍ Go 1.23 ຂຶ້ນໄປ:
go install github.com/mrzack99s/thailandhosting-cli/cmd/th@latestກວດເວີຊັນທີ່ຕິດຕັ້ງດ້ວຍ th version
ເຂົ້າສູ່ລະບົບ
- ຣັນ
th auth loginCLI ຈະພິມລິ້ງ ແລະ ລະຫັດ ແລ້ວເປີດ Console ໃນບຣາວເຊີ (ຖ້າໃສ່--no-browserຈະພິມລິ້ງຢ່າງດຽວ ສຳລັບເຊີບເວີທີ່ບໍ່ມີໜ້າຈໍ desktop) - ໃນ Console ກວດວ່າລະຫັດກົງກັບໃນ terminal ແລ້ວກົດ Approve
- terminal ຈະບອກວ່າທ່ານເຂົ້າສູ່ລະບົບໃນນາມໃຜ ຖ້າຍັງບໍ່ໄດ້ຕັ້ງ Project Project ທຳອິດຂອງທ່ານຈະກາຍເປັນ Project ທີ່ໃຊ້ງານ
ການເຂົ້າສູ່ລະບົບໃຊ້ໄດ້ 90 ມື້ ແລະ ຖືກບັນທຶກໄວ້ໃນໄຟລ໌ຕັ້ງຄ່າຂອງ th (th/config.json ໃນໂຟນເດີ config ຂອງຜູ້ໃຊ້ ອ່ານໄດ້ສະເພາະທ່ານ) ແລະ ສະແດງໃນ Console ທີ່ ບັນຊີ → Sessions ເຊິ່ງທ່ານສັ່ງອອກຈາກລະບົບໄດ້ຈາກທຸກບ່ອນ
th auth status # CLI ເຮັດວຽກໃນນາມໃຜ (ຫຼື th whoami)
th auth logout # ອອກຈາກລະບົບ token ນີ້ ແລະ ລຶບອອກຈາກໄຟລ໌ຕັ້ງຄ່າໃນ CI ບໍ່ຕ້ອງເຂົ້າສູ່ລະບົບ: ໃຫ້ຕັ້ງ API Key ໃນ TH_API_KEY ແທນ (ເບິ່ງ ໃຊ້ໃນ CI) ເມື່ອຕັ້ງ TH_API_KEY ໄວ້ ມັນຈະຖືກໃຊ້ກ່ອນການເຂົ້າສູ່ລະບົບທີ່ບັນທຶກໄວ້
ເລືອກ Project ແລະ Region
ຄຳສັ່ງສ່ວນໃຫຍ່ເຮັດວຽກກັບ Project ດຽວ ບໍລິການໃໝ່ຕ້ອງມີ Region ນຳ ຕັ້ງຄັ້ງດຽວດ້ວຍ th config ຫຼື ໃສ່ໃນແຕ່ລະຄຳສັ່ງ:
th projects list
th config set project acme # ID ຫຼື slug
th regions list
th config set region bkk
th config listແຕ່ລະຄ່າຖືກເອົາມາຈາກບ່ອນທຳອິດທີ່ມີ:
- ພາຣາມິເຕີໃນ command line:
--project,--region,--endpoint - ຕົວແປສະພາບແວດລ້ອມ:
TH_PROJECT,TH_REGION,TH_ENDPOINT - ໄຟລ໌ຕັ້ງຄ່າ ທີ່ຕັ້ງດ້ວຍ
th config set
ຖ້າບໍ່ໄດ້ຕັ້ງ Region ຄຳສັ່ງທີ່ສ້າງບໍລິການຈະໃຊ້ Region ເລີ່ມຕົ້ນຂອງລະບົບ ແລະ ບອກໃຫ້ຮູ້ API Key ຜູກກັບ Project ດຽວ ສະນັ້ນເມື່ອໃຊ້ TH_API_KEY Project ຈະມາຈາກ Key
ພາຣາມິເຕີທົ່ວໄປ
ທຸກຄຳສັ່ງຮັບພາຣາມິເຕີເຫຼົ່ານີ້ ນອກຈາກພາຣາມິເຕີຂອງຕົວເອງ
| ຊື່ | ປະເພດ | ຄຳອະທິບາຍ |
|---|---|---|
--project | ຂໍ້ຄວາມ | Project ID or slug (default: config / TH_PROJECT) |
--region | ຂໍ້ຄວາມ | Region ID (default: config / TH_REGION) |
--endpoint | ຂໍ້ຄວາມ | API endpoint (default: config / TH_ENDPOINT, else https://cloud.thailandhosting.com) |
--format | ຂໍ້ຄວາມ | Output format: text or json |
--quiet | ແຟລັກ | Do not prompt; assume yes |
--help (ຫຼື -h) ພິມວິທີໃຊ້ ແລະ ພາຣາມິເຕີຂອງຄຳສັ່ງແທນການຣັນ
ຮູບແບບຜົນລັບ
ຕາມປົກກະຕິຄຳສັ່ງພິມຂໍ້ຄວາມໃຫ້ຄົນອ່ານ: ຕາຕະລາງທີ່ມີແຖວຫົວ ຫຼື ປະໂຫຍກສັ້ນໆບອກວ່າເຮັດຫຍັງໄປແລ້ວ ຖ້າໃສ່ --format json ຈະພິມ JSON ຂອງ API ແທນ ສຳລັບສະຄຣິບ ແລະ ເຄື່ອງມື ເຊັ່ນ jq
th container services list
th container services list --format json | jq -r '.[].name'- Standard output ມີແຕ່ຜົນລັບ: ຕາຕະລາງ JSON ໄຟລ໌ທີ່ທ່ານຂໍ (
th object-storage cat) ຫຼື ຂໍ້ຄວາມ (th queue receive) - Standard error ມີຄວາມຄືບໜ້າ ແລະ ຄຳແນະນຳ: “Packing sources…”, log ຂອງ build, ຄວາມຄືບໜ້າການອັບໂຫຼດ, ການຖາມ ແລະ error ສະນັ້ນການສົ່ງ standard output ລົງໄຟລ໌ຈະໄດ້ຂໍ້ມູນທີ່ສະອາດ
- Error ມີຮູບແບບ
ERROR: (th.container.deploy) …ບອກຊື່ຄຳສັ່ງທີ່ລົ້ມເຫຼວ
ຄຳສັ່ງທີ່ລຶບ ຫຼື ແທນທີ່ບາງຢ່າງຈະຖາມ Do you want to continue (Y/n)? ກ່ອນ --quiet ຕອບ yes ໃຫ້ ຖ້າບໍ່ໃສ່ ແລະ ຄຳສັ່ງຖາມບໍ່ໄດ້ (standard input ບໍ່ແມ່ນ terminal) ຄຳສັ່ງຈະຢຸດພ້ອມ error ແທນການເດົາ
ຕົວແປສະພາບແວດລ້ອມ
| ຕົວແປ | ໃຊ້ເຮັດຫຍັງ |
|---|---|
TH_API_KEY | API Key ຈາກ Console (Integrations → API keys) ໃຊ້ແທນການເຂົ້າສູ່ລະບົບທີ່ບັນທຶກໄວ້ ສິດ (scope) ຂອງ Key ກຳນົດວ່າ th ເຮັດຫຍັງໄດ້ |
TH_TOKEN | token ທີ່ສົ່ງແທນການເຂົ້າສູ່ລະບົບທີ່ບັນທຶກໄວ້ (ຄ່າທີ່ຂຶ້ນຕົ້ນດ້ວຍ thk_ ຖືວ່າເປັນ API Key) th auth print-access-token ສະແດງ token ທີ່ກຳລັງໃຊ້ |
TH_ENDPOINT | ທີ່ຢູ່ API ທີ່ CLI ເອີ້ນ ຄ່າເລີ່ມຕົ້ນ: https://cloud.thailandhosting.com |
TH_PROJECT | Project ເປັນ ID ຫຼື slug |
TH_REGION | Region ສຳລັບບໍລິການໃໝ່ |
TH_OBJECT_STORAGE_KEY_ID, TH_OBJECT_STORAGE_SECRET | Access key ຂອງ Object Storage ສຳລັບຄຳສັ່ງໄຟລ໌ຂອງ th object-storage ຕັ້ງທັງສອງ ຫຼື ບໍ່ຕັ້ງທັງສອງ |
TH_QUEUE_KEY_ID, TH_QUEUE_SECRET | Access key ຂອງ Queue Service ສຳລັບສົ່ງ ຮັບ ແລະ ຄຳສັ່ງຂໍ້ຄວາມອື່ນໆ ຕັ້ງທັງສອງ ຫຼື ບໍ່ຕັ້ງທັງສອງ |
Object Storage ແລະ Queue Service ໃຊ້ Access key ຂອງຕົວເອງ ບໍ່ແມ່ນການເຂົ້າສູ່ລະບົບຂອງ CLI ເມື່ອເຂົ້າສູ່ລະບົບໃນເຄື່ອງຂອງທ່ານເອງ ບໍ່ຕ້ອງສ້າງ Key: th ຈະຂໍ Key ຊົ່ວຄາວຂອງ Project ຈາກ Console (ໃຊ້ໄດ້ 12 ຊົ່ວໂມງ ຕາມສິດຂອງທ່ານ) ແລະ ເກັບໄວ້ຂ້າງໄຟລ໌ຕັ້ງຄ່າຈົນໃກ້ໝົດອາຍຸ ເມື່ອໃຊ້ TH_API_KEY ຫຼື ຕ້ອງການໃຊ້ Key ສະເພາະ ໃຫ້ຕັ້ງຕົວແປຂ້າງເທິງ
ໃຊ້ໃນ CI
ສ້າງ Key ໃນ Console ເກັບເປັນ secret ໃນ CI ແລ້ວສົ່ງຜ່ານຕົວແປສະພາບແວດລ້ອມ ໃຊ້ --quiet ເພື່ອບໍ່ໃຫ້ມີຫຍັງລໍຖ້າຄຳຕອບ
| ເພື່ອ | Key | ຕົວແປ |
|---|---|---|
| Deploy Container | API Key ທີ່ມີ Containers: deploy (run:write) | TH_API_KEY |
| Deploy Static Web | API Key ທີ່ມີ Static Web: deploy (static:write) | TH_API_KEY |
| ອ່ານ Container ຫຼື Static Web ຢ່າງດຽວ | API Key ທີ່ມີ run:read ຫຼື static:read | TH_API_KEY |
| Object Storage | Access key ຂອງ Object Storage | TH_OBJECT_STORAGE_KEY_ID, TH_OBJECT_STORAGE_SECRET |
| Queue Service | Access key ຂອງ Queue Service | TH_QUEUE_KEY_ID, TH_QUEUE_SECRET |
API Key ໃຊ້ໄດ້ສະເພາະກັບ Project ຂອງມັນ ຕົວຢ່າງ GitHub Actions:
# .github/workflows/deploy.yml
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
curl -fsSL https://raw.githubusercontent.com/mrzack99s/thailandhosting-cli/main/install.sh | TH_INSTALL_DIR="$HOME/.local/bin" sh
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
- run: th container deploy api --source . --quiet
env:
TH_API_KEY: ${{ secrets.TH_API_KEY }}ໃຫ້ແຕ່ລະ pipeline ມີ Key ຂອງຕົວເອງ ທີ່ມີສະເພາະສິດທີ່ຈຳເປັນ ຖ້າ Key ໃດຫຼຸດ ໃຫ້ຍົກເລີກສະເພາະ Key ນັ້ນ
Exit code
| Code | ຄວາມໝາຍ |
|---|---|
0 | ຄຳສັ່ງສຳເລັດ (ລວມທັງ --help ແລະ th queue tail ທີ່ຢຸດດ້ວຍ Ctrl+C) |
1 | ເກີດ error ຫຼື ທ່ານຕອບ no ຕອນຖາມຢືນຢັນ (“Aborted.”) ເຫດຜົນຢູ່ໃນ standard error |
130 | ທ່ານກົດ Ctrl+C ຂະນະທີ່ th ກຳລັງຕິດຕາມ log ຂອງ build (th container deploy --source, th builds log --follow, th static-site builds log --follow) build ຍັງເຮັດຕໍ່ຢູ່ເທິງເຊີບເວີ ຕິດຕາມອີກຄັ້ງດ້ວຍຄຳສັ່ງທີ່ th ພິມໃຫ້ |
| ອື່ນໆ | th database connect ແລະ th cache connect ຈົບດ້ວຍ exit code ຂອງ client ທີ່ມັນເປີດ (psql, mysql, redis-cli ແລະ ອື່ນໆ) |
ກຸ່ມຄຳສັ່ງ
| ຄຳສັ່ງ | ຄຳອະທິບາຍ |
|---|---|
th auth | ເຂົ້າ ແລະ ອອກຈາກລະບົບ CLI ເບິ່ງວ່າມັນເຮັດວຽກໃນນາມໃຜ ແລະ ໃຫ້ Docker ເຂົ້າສູ່ Container Registry ຂອງ Project (5) |
th config | ຕັ້ງ Project, Region ແລະ endpoint ຂອງ Console ທີ່ CLI ໃຊ້ ເບິ່ງລາຍການ Project ແລະ Region ແລະ ພິມເວີຊັນຂອງ CLI (7) |
th container | Deploy Container ຈາກໂຟນເດີ ຫຼື image ຍ້ອນກັບໄປ Revision ກ່ອນໜ້າ ອ່ານ log ແລະ ຈັດ Registry ຂອງ Project ໃຫ້ເປັນລະບຽບ (13) |
th registry | ສ້າງ Registry ຕິດ tag ສຳເນົາ ແລະ ລຶບ image ໃຫ້ docker ແລະ CI ເຂົ້າສູ່ລະບົບດ້ວຍ Access token ແລະ ຄຸມພື້ນທີ່ດ້ວຍ Cleanup policy (13) |
th functions | Deploy Function ພາສາ Python, Node.js (TypeScript) ແລະ Go ຈາກໂຟນເດີ ດຶງໂຄ້ດທີ່ແກ້ໃນ Console ລົງເຄື່ອງ ແລະ ເອີ້ນໃຊ້ງານ (10) |
th triggers | ເອີ້ນ Container ຫຼື Function ຕາມເວລາ (Cron) ຫຼື ທຸກຂໍ້ຄວາມທີ່ເຂົ້າ Queue (7) |
th static-site | Deploy ໂຟນເດີທີ່ build ແລ້ວເປັນເວັບໄຊ Static Web ຍ້ອນກັບໄປ Release ກ່ອນໜ້າ ເຊື່ອມໂດເມນຂອງທ່ານ ແລະ ຕິດຕາມ Git build (13) |
th object-storage | ສ້າງ Bucket ສຳເນົາ ແລະ sync ໄຟລ໌ດ້ວຍ path th:// ເປີດໂຟນເດີເປັນ Public ແລະ ແບ່ງປັນໄຟລ໌ດຽວດ້ວຍລິ້ງທີ່ໝົດອາຍຸເອງ (12) |
th database | ສ້າງ Database PostgreSQL, MySQL ແລະ MariaDB ເຊື່ອມຕໍ່ຈາກເຄື່ອງຂອງທ່ານດ້ວຍຄຳສັ່ງດຽວ Backup ແລະ ກູ້ຄືນ ແລະ ເພີ່ມ read replica (20) |
th cache | ສ້າງ Cache ແບບ ThailandHosting Cache (ໃຊ້ກັບ Redis client ໄດ້) ແລະ Valkey ເຊື່ອມຕໍ່ດ້ວຍ redis-cli ຫຼື valkey-cli ປ່ຽນຂະໜາດ ແລະ ຈັດການ Backup (17) |
th queue | ສ້າງ Queue ສົ່ງຂໍ້ຄວາມ ຮັບ ແລະ ack ຂໍ້ຄວາມ ແລະ tail Queue ເປັນ consumer ແບບງ່າຍ (11) |