Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 

Repository files navigation

script-tools

Collection of utility scripts and tools.

Install Docker

sudo bash scripts/install-docker.sh

Or from a remote clone:

curl -fsSL https://raw.githubusercontent.com/vthang87/script-tools/main/scripts/install-docker.sh | sudo bash

Install Coolify

Coolify is a self-hosting platform. The script installs Docker first if it is missing, then runs the official Coolify installer.

Requirements:

  • Linux server (Ubuntu 22.04 / 24.04 LTS recommended)
  • Root or sudo
  • Ports 80, 443, and 8000 open
sudo bash scripts/install-coolify.sh

Or from a remote clone:

curl -fsSL https://raw.githubusercontent.com/vthang87/script-tools/main/scripts/install-coolify.sh | sudo bash

After install, open http://YOUR_SERVER_IP:8000.

Optional root user env vars (passed through to Coolify):

sudo ROOT_USERNAME=admin \
  ROOT_USER_EMAIL=admin@example.com \
  ROOT_USER_PASSWORD='your-password' \
  bash scripts/install-coolify.sh

Install private deploy scripts

Public installer shared across private projects. It prompts for GitHub credentials and repo info, downloads the private deploy/ folder onto the server, and optionally runs bootstrap.sh.

Convention: each private project keeps deploy scripts under deploy/ (or another path you choose).

curl -fsSL https://raw.githubusercontent.com/vthang87/script-tools/main/scripts/install-private-deploy.sh | bash

Or locally:

bash scripts/install-private-deploy.sh

Interactive prompts:

Input Default
GitHub username (required)
GitHub PAT (required, secret)
Repo (owner/name) (required)
Branch/tag main
Path in repo deploy
Install directory /opt/<project-name>
Run bootstrap.sh? y if present
Bootstrap arguments optional (e.g. uat)

Tạo GitHub token (PAT)

Script cần PAT để đọc repo private. Nên tạo token chỉ đọc, giới hạn repo cần deploy, và đặt expiry ngắn (30–90 ngày).

Cách 1 — Classic PAT (khuyến nghị nếu cần pull image GHCR)

  1. Đăng nhập GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. Generate new token (classic)
  3. Điền:
    • Note: ví dụ deploy-server-readonly
    • Expiration: 30 hoặc 90 ngày
  4. Chọn scopes (roles):
Scope Bắt buộc? Mục đích
repo Có (repo private) Đọc nội dung repo / tải tarball deploy/
read:packages Có nếu image private trên GHCR docker login ghcr.io + docker pull
  1. Generate token → copy chuỗi ghp_... (chỉ hiện một lần)
  2. Nếu org bật SSO: bấm Configure SSO / Authorize bên cạnh token cho org sở hữu repo

Classic PAT không tách được “chỉ Contents read” khỏi repo; scope repo gồm cả quyền ghi. Chỉ dùng token này trên server tin cậy, không commit vào git.

Cách 2 — Fine-grained PAT (ít quyền hơn, chỉ tải script)

  1. Settings → Developer settings → Personal access tokens → Fine-grained tokens
  2. Generate new token
  3. Điền:
    • Token name: ví dụ deploy-scripts-readonly
    • Expiration: 30 hoặc 90 ngày
    • Resource owner: user hoặc org chứa repo
    • Repository access: Only select repositories → chọn đúng project cần deploy
  4. Permissions (Repository permissions):
Permission Access Mục đích
Contents Read-only Tải thư mục deploy/ (tarball / API)
Metadata Read-only Tự bật khi chọn Contents; bắt buộc để API thấy repo
Packages Read-only Chỉ khi bootstrap pull image private từ GHCR
  1. Generate token → copy chuỗi github_pat_...
  2. Org có thể yêu cầu admin approve fine-grained token trước khi dùng

Token cần gì cho từng bước

Việc Classic PAT Fine-grained PAT
install-private-deploy.sh tải deploy/ repo Contents: Read
bootstrap / docker pull GHCR private thêm read:packages thêm Packages: Read
Push code / ghi repo Không cần Không cấp

Dùng token khi chạy script

Interactive (script sẽ hỏi username + token):

curl -fsSL https://raw.githubusercontent.com/vthang87/script-tools/main/scripts/install-private-deploy.sh | bash

Non-interactive:

NON_INTERACTIVE=1 \
  GITHUB_USER=your-github-username \
  GITHUB_TOKEN=ghp_xxx \
  DEPLOY_REPO=owner/project \
  DEPLOY_REF=main \
  DEPLOY_HOME=/opt/project \
  RUN_BOOTSTRAP=1 \
  BOOTSTRAP_ARGS=uat \
  bash scripts/install-private-deploy.sh

Lưu ý bảo mật

  • Không commit token vào repo, .env public, hoặc chat log
  • Trên server có thể export tạm: export GITHUB_TOKEN=... rồi xóa sau khi cài (unset GITHUB_TOKEN)
  • Revoke token cũ tại tokens settings khi hết dùng hoặc nghi lộ
  • Account GitHub phải có quyền read trên repo private (collaborator / org member với role tối thiểu Read)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages