Tài liệu

Bắt đầu nhanh + mô tả chức năng của từng phần, từng thiết bị (đang tiếp tục cập nhật)

Cài đặt và gỡ cài đặt

Bài viết này trình bày chi tiết cách cài đặt, nâng cấp và gỡ cài đặt bảng điều khiển SSH Everywhere, tập trung làm rõ「đã đổi thư mục cài đặt thì gỡ thế nào」cùng các chi tiết định dạng trong lệnh (khoảng trắng, dấu ngoặc kép).

1. Cài đặt (một dòng lệnh)

Chạy trên một máy chủ Linux có IP công cộng:

curl -fsSL https://ssheverywhere.com/install.sh | bash

Script sẽ tự động hoàn tất: nhận diện hệ thống → cài phụ thuộc (Python3 / venv / pip / git / curl) → tải mã nguồn → tạo môi trường ảo → cài phụ thuộc Python → đăng ký và khởi động dịch vụ systemd.

Hỗ trợ Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (khi không có systemd sẽ tự động chuyển sang chạy nền).

Tham số cài đặt

Tham sốMô tảVí dụ
--lang <mã>Ngôn ngữ gợi ý + ngôn ngữ mặc định của bảng điều khiển (mặc định tự nhận theo locale của hệ thống; cũng chấp nhận số từ 1-16)--lang ja
--dir <thư mục>Thư mục cài đặt (mặc định /opt/ssh-everywhere; nếu không ghi được sẽ tự động chuyển sang ~/ssh-everywhere và ghi rõ trong kết quả)--dir /opt/my-panel
--port <cổng>Cổng của bảng điều khiển (mặc định 5501)--port 8080
--asciiBuộc xuất ký hiệu ASCII thuần ([ok] / [..] / [!] / [x]), không bị lỗi hiển thị trên bất kỳ terminal nào--ascii
--unicodeBuộc xuất ký hiệu Unicode (✓ ⟳ ⚠️ ❌); trong môi trường UTF-8 đây vốn là mặc định--unicode
--yes / -yTự động xác nhận khi nâng cấp, không cần tương tác--yes

Mã ngôn ngữ được hỗ trợ (16)

MãNgôn ngữMãNgôn ngữMãNgôn ngữMãNgôn ngữ
zh中文enEnglishja日本語ko한국어
esEspañolfrFrançaisdeDeutschruРусский
ptPortuguêsitItalianoarالعربيةtrTürkçe
viTiếng ViệtthไทยidBahasa Indonesiahiहिन्दी

Khi không truyền --lang, ngôn ngữ được tự nhận theo locale của hệ thống (ví dụ LANG=ja_JP.UTF-8 → gợi ý tiếng Nhật). Khi locale của máy chủ hoặc terminal không phải UTF-8 (LANG=C thường gặp ở các image rút gọn của nhà cung cấp cloud lớn), script sẽ tự động chuyển sang ký hiệu ASCII thuần [ok]; nếu chưa chỉ định ngôn ngữ rõ ràng thì còn đưa phần chữ gợi ý về tiếng Anh và giải thích lý do ngay từ đầu — tất cả là để tránh mọi lỗi hiển thị. Muốn buộc hiển thị ngôn ngữ của bạn, dùng: --lang xx --unicode.

Khi truyền tham số qua đường ống (pipe) phải thêm bash -s --:

# Gợi ý tiếng Nhật + bảng điều khiển tiếng Nhật
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja

# Gợi ý tiếng Nga + thư mục và cổng tùy chỉnh
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080

# Terminal cũ / terminal GBK sợ lỗi hiển thị: xuất ASCII thuần (gợi ý tiếng Trung + ký hiệu [ok])
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii

# Tiếng Ả Rập (giao diện RTL)
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar

Cũng có thể tải về trước rồi chạy (tương tác, sẽ hỏi lần lượt ngôn ngữ, thư mục và xác nhận nâng cấp):

curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh

> Các cloud lớn (Tencent Cloud / Alibaba Cloud) mặc định tắt đăng nhập root. --dir được truyền rõ ràng sẽ được ưu tiên tôn trọng; chỉ khi người dùng hiện tại không có quyền ghi vào thư mục đó thì script mới tự động đổi sang thư mục HOME của bạn (~/ssh-everywhere) và thông báo rõ trong kết quả «bạn đã truyền thư mục nào, vì sao bị đổi, và muốn cài vào đó thì phải chạy bằng root».

2. Nâng cấp

Chạy lại lệnh cài đặt là được, script có sẵn kiểm tra phiên bản, phát hiện phiên bản mới sẽ nhắc nâng cấp (giữ nguyên dữ liệu, hoàn toàn tự động):

curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes

--yes nghĩa là tự động xác nhận khi nâng cấp, không cần tương tác.

3. Gỡ cài đặt

Gỡ cài đặt ở thư mục mặc định (tương tác, khuyến nghị)

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh

Script sẽ liệt kê nội dung sắp gỡ và hỏi xác nhận trước, nhập yes mới thực thi.

Gỡ cài đặt không tương tác / dạng script

Thêm --yes để bỏ qua xác nhận (vẫn giữ kiểm tra an toàn):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes

Tham số gỡ cài đặt

Tham sốMô tả
--dir <thư-mục>Thư mục cài đặt (mặc định /opt/ssh-everywhere, bắt buộc chỉ định nếu đã đổi thư mục)
--keep-dataTrước khi gỡ, sao lưu data (cấu hình máy chủ / cơ sở dữ liệu) thành gói tar
--yesXác nhận gỡ cài đặt ở chế độ không tương tác

4. Đã đổi thư mục cài đặt thì gỡ thế nào? (trọng tâm)

Khi cài đặt nếu đã dùng --dir để đổi thư mục thì khi gỡ bắt buộc phải chỉ định bằng đúng --dir đó, nếu không script không tìm thấy thư mục cài đặt sẽ tự động dừng (đây là bảo vệ an toàn, phòng xóa nhầm).

Đường dẫn thư mục không chứa khoảng trắng

curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel

Dạng pipe (--dir đặt sau bash -s --):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes

Đường dẫn thư mục chứa khoảng trắng

Nếu tên thư mục có khoảng trắng, bắt buộc dùng dấu ngoặc kép bọc toàn bộ đường dẫn, nếu không shell sẽ tách đường dẫn thành hai đoạn và script không tìm thấy thư mục:

bash uninstall.sh --dir "/opt/my panel"

Dạng pipe tương tự (ngoặc kép bọc cả đường dẫn, đừng chỉ bọc một nửa):

curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes

Muốn giữ dữ liệu rồi gỡ cài đặt

bash uninstall.sh --dir /opt/my-panel --keep-data

data (cấu hình máy chủ / cơ sở dữ liệu) sẽ được sao lưu vào <thư-mục-cài-đặt>-data-backup-<dấu-thời-gian>.tar.gz, sau khi gỡ vẫn tìm lại được.

> 💡 Gợi ý: khi cài đặt hãy tránh dùng khoảng trắng trong tên thư mục, chuyển sang dấu gạch ngang hoặc gạch dưới (như my-panel, my_panel), sẽ bớt được phiền phức do dấu ngoặc kép gây ra.

5. Ghi chú an toàn

Script gỡ cài đặt tích hợp ba lớp bảo vệ, phòng xóa nhầm:

1. Kiểm tra đường dẫn tuyệt đối —— từ chối đường dẫn tương đối.

2. Danh sách đen thư mục quan trọng của hệ thống —— từ chối /, /root, /etc, /usr, /var...

3. Kiểm tra dấu vân tay thư mục cài đặt —— phải đồng thời tồn tại VERSION và app.py mới xóa, nếu không sẽ dừng.

> Gỡ cài đặt chỉ xóa bản thân bảng điều khiển, Agent trên máy chủ / thiết bị đích không bị ảnh hưởng (sau khi xóa bảng điều khiển, chúng sẽ hiển thị ngoại tuyến).