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

Tham khảo