Hướng dẫn cài Cloud Commander
Giới thiệu
Cloud Commander là trình quản lý file cho Linux Server trên nền web. Nó bao gồm một bảng điều khiển dòng lệnh và một trình soạn thảo văn bản. Cloud Commander giúp bạn quản lý Server của mình và làm việc với các file, folder và chương trình trong trình duyệt web từ máy tính, di động hoặc máy tính bảng.
Yêu cầu hệ thống
- Ubuntu Server
- Nginx (làm Reverse Proxy)
- Node.JS
Cài đặt
Quá trình cài đặt rất đơn giản, thông qua npm
sudo npm i cloudcmd -g
Nếu có lỗi xảy ra thì cài bằng cách này
sudo npm i cloudcmd -g --force
Cấu hình để sử dụng
Để khởi chạy Cloud Commander, sử dụng lệnh
cloudcmd
Để bắt đầu sử dụng ứng dụng web, hãy truy cập URL này trong trình duyệt:
http://localhost:8000
Tuy nhiên, đến đây chúng ta mới chỉ có thể sử dụng trên máy này, giờ chúng ta sẽ thực hiện một số cấu hình để chạy Cloud Commander qua web và bảo mật cho ứng dụng.
Tạo file cấu hình
Để tạo file cấu hình cho Cloud Commander, sử dụng lệnh
sudo nano ~/.cloudcmd.json
Và nhập nội dung sau
{
"name" : "tên Server - tùy chọn",
"auth" : true,
"username" : "tên đăng nhập",
"password" : "mật khẩu">
"algo" : "sha512WithRSAEncryption",
"editor" : "edward",
"port" : 8588
}
Update 24/05/17
Ở phiên bản mới nếu không sử dụng dropbox thì cần tắt đi trong cấu hình ở cloudcmd.json, file cấu hình sẽ như thế này
{
"name" : "tên Server - tùy chọn",
"auth" : true,
"username" : "tên đăng nhập",
"password" : "mật khẩu">
"algo" : "sha512WithRSAEncryption",
"editor" : "edward",
"port" : 8588,
"dropbox" : false
}
Trong đó "tên đăng nhập" bạn có thể tùy chọn, "mật khẩu" buộc phải là mật khẩu sha512 với mã hóa RSA. Có thể vào trang https://sha512.online/ để tạo.
Ngoài ra có thể sử dụng chính Cloud Commander để tạo mật khẩu bằng lệnh
cloudcmd --username name --password password --auth --save --no-server
Phần "port" nên chọn khác 8000 tránh xung đột với ứng dụng khác (ví dụ như Seafile). Lưu file cấu hình này lại.
Tự động khởi động Cloud Commander với hệ thống bằng systemd
Đầu tiên tìm đường dẫn để chạy Cloud Commander
which cloudcmd
thường là /usr/bin/cloudcmd, tiếp theo đó tạo file dịch vụ
sudo nano /etc/systemd/system/cloudcmd.service
và nhập vào nội dung sau
[Unit]
Description = Cloud Commander
[Service]
TimeoutStartSec = 0
Restart = always
ExecStart = /usr/bin/cloudcmd
User = tên-đăng-nhập-của-server
[Install]
WantedBy = multi-user.target
trong đó ExecStart là nhập vào kết quả của lệnh *which cloudcmd đã chạy bên trên. Lưu file lại, bật và chạy dịch vụ này.
sudo systemctl enable --now cloudcmd
sudo systemctl start cloudcmd
Kiểm tra xem đã chạy chưa, sử dụng lệnh
Kết quả hiện như hình là đã chạy rồi đó, trong đó port 8588 là cổng mình sử dụng cho Cloud Commander.
Cấu hình Virtual Host cho Nginx làm Reverse Proxy
Giả sử mình có domain cloud-commander.com (bạn thay bằng domain của bạn), đã được lấy chứng chỉ SSL từ Let's Encrypt trước. Tạo file Virtual Host cho Nginx:
sudo nano /etc/nginx/site-available/cloud-commander.com
và nhập vào nội dung sau
#cloud-commander.com
server {
listen 80;
server_name cloud-commander.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
ssl_certificate /etc/letsencrypt/live/cloud-commander.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/cloud-commander.com/privkey.pem;
server_name cloud-commander.com;
location / {
proxy_pass http://localhost:8588;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_read_timeout 1200s;
proxy_set_header X-Forwarded-Proto https;
client_max_body_size 10G;
access_log /var/log/nginx/io.cloudcmd.io.access.log;
}
}
Lưu file lại, ánh xạ để bật cấu hình lên
sudo ln -s /etc/nginx/site-available/cloud-commander.com /etc/nginx/site-enable/cloud-commander.com
Kiểm tra không lỗi thì khởi động lại Nginx để cấu hình có tác dụng
sudo nginx -t
sudo systemctl restart nginx
Giờ bạn có thể truy cập thông qua trang web cloud-commander.com rồi đó. Chúc các bạn thành công.
Cập nhập phiên bản mới
Để cập nhập, chỉ cần ngừng phiên bản hiện tại và cài phiên bản mới và khởi chạy lại là được
sudo systemctl stop cloudcmd
sudo npm i cloudcmd -g
sudo systemctl start cloudcmd