Nếu bạn đang chạy Raspberry Pi với tư cách là máy chủ gia đình, thì có khả năng bạn bè và gia đình cũng truy cập dịch vụ của nó. Đôi khi, họ sẽ cần chạy một số tác vụ thông thường yêu cầu quyền kiểm soát hạn chế đối với máy chủ.
OliveTin là một ứng dụng tự lưu trữ mà họ có thể truy cập thông qua trình duyệt web để thực thi các lệnh và tập lệnh được xác định trước do bạn xác định.
Tại sao nên sử dụng OliveTin trên Raspberry Pi?
Dòng máy tính bảng đơn Raspberry Pi tạo ra các máy chủ gia đình nhẹ tuyệt vời và việc thiết lập máy chủ web Raspberry Pi tương đối dễ dàng.
Ngoài việc lưu trữ các trang web và blog, Raspberry Pi của bạn có thể lưu trữ các thư viện ảnh, sách dạy nấu ăn và bộ ứng dụng văn phòng trực tuyến. Bạn có thể truyền trực tuyến phim và chương trình tới TV của mình bằng Jellyfin hoặc tự lưu trữ thư viện sách nói với Audiobookshelf.
Bạn không bị giới hạn số lượng người dùng mà bạn có thể có, vì vậy trừ khi bạn sống một mình, bạn có thể chia sẻ quyền truy cập vào các dịch vụ Raspberry Pi của mình với các thành viên khác trong gia đình.
Máy chủ, giống như bất kỳ loại máy tính nào khác, cần được bảo trì thường xuyên. Người dùng của bạn có thể cần bắt đầu hoặc dừng các dịch vụ cụ thể, kết nối với VPN, sao lưu tệp trên Raspberry Pi hoặc kiểm tra các sự cố mạng.
Nếu gia đình và bạn cùng nhà của bạn quen thuộc với dòng lệnh Linux và bạn tin tưởng họ sẽ không vô tình hay cố ý làm hỏng hệ thống của bạn, bạn có thể cân nhắc cấp cho họ thông tin đăng nhập SSH của riêng họ cùng với tư cách thành viên nhóm sudo để họ có thể thực hiện các tác vụ này mà không cần bận tâm Bạn.
Đó là một đề xuất hấp dẫn nhưng nguy hiểm, và nếu có gì sai sót, bạn sẽ là người phải sửa chữa nó. Với OliveTin, bạn có thể xác định các lệnh thông thường mà những người dùng máy chủ khác có thể cần thực hiện thường xuyên. Sau đó, họ có thể mở trình duyệt web và nhấn nút sẽ chạy lệnh trên Pi của bạn—mà không cần chạm vào dòng lệnh.
Cách cài đặt OliveTin trên Raspberry Pi
Cách dễ nhất để cài đặt OliveTin là sử dụng Docker Compose. Nếu bạn chưa cài đặt Docker và Docker Compose trên Raspberry Pi, hãy xem hướng dẫn cần thiết của chúng ta về cách cài đặt Docker và Docker Compose trên Linux.
Kết nối với máy chủ Raspberry Pi của bạn bằng Secure Shell (SSH):
ssh pi@your-local-pi-ip-address
Tạo một thư mục mới cho OliveTin và sử dụng đĩa CD lệnh để di chuyển vào nó:
mkdir olivetin && cd olivetin
Sử dụng trình soạn thảo văn bản nano để tạo tệp Docker Compose mới:
nano docker-compose.yml
Sao chép và dán vào như sau:
version: "3.5"
services:
olivetin:
container_name: olivetin
image: jamesread/olivetin
user: root
volumes:
- ~/olivetin:/config
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "1337:1337"
restart: unless-stoppednetworks:
web:
section:
external: true
Bây giờ hãy lưu và thoát khỏi nano với Ctrl + O sau đó Ctrl + X.
Trước khi chạy OliveTin lần đầu tiên, bạn cần tạo một tệp cấu hình. Đây là nơi bạn sẽ xác định các lệnh để người dùng chạy. Hiện tại, hãy nhập:
touch config.yaml
Sử dụng OliveTin để cung cấp cho người dùng của bạn quyền kiểm soát máy chủ hạn chế
Trong thiết bị đầu cuối của bạn, nhập:
docker-compose up -d
Lệnh này sẽ hiển thị Docker Compose ở chế độ tách rời. Docker Compose sẽ tải xuống hình ảnh cho OliveTin và thiết lập vùng chứa. Quá trình này có thể mất một thời gian. Khi bạn quay lại dấu nhắc lệnh, hãy kiểm tra xem mọi thứ có chạy đúng không bằng:
docker-compose ps
Mở trình duyệt và điều hướng đến your-pi-local-ip-adress:1337. Bạn sẽ thấy một trang web màu xám với chân trang OliveTin. Bây giờ bạn đã sẵn sàng để bắt đầu xác định các lệnh cho người dùng của mình.
Quay lại thiết bị đầu cuối, sử dụng nano để chỉnh sửa tệp cấu hình bạn đã tạo trước đó:
nano config.yaml
Cú pháp rất đơn giản và bạn có thể xác định tên của các dịch vụ và các hành động sẽ được thực hiện tương tự như ví dụ sau:
actions:
- title: "Reboot server"
shell: reboot - title: "Ping Netflix"
shell: ping netflix.com
- title: Restart Apache
icon: "🏁"
shell: sudo service apache2 restart
các tnó trường là tiêu đề mà người dùng có thể nhìn thấy, trong khi lệnh theo sau vỏ bọc: là lệnh thực sự sẽ được thực hiện trên Raspberry Pi của bạn.
OliveTin hỗ trợ các biểu tượng unicode và bạn có thể chỉ định mã HTML của các biểu tượng này trong biểu tượng phần. Ngoài ra, bạn có thể đặt URL đầy đủ của hình ảnh bạn muốn sử dụng. Ví dụ:
icon: '<img src = "https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg" width = "81px"/>'
Mặc dù cấu hình của chúng ta đưa ra các ví dụ sẽ khởi động lại Raspberry Pi, khởi động lại Apache và ping Netflix, thực sự không có giới hạn đối với các lệnh bạn có thể chỉ định. Bạn có thể cung cấp cho người dùng một nút để sao chép phim từ thư mục này sang thư mục khác, nhanh chóng xóa và ghi đè lên một số thư mục nhất định hoặc xây dựng khóa chuyển đổi sẽ mã hóa thiết bị lưu trữ của bạn bằng một khóa ngẫu nhiên.
Khi bạn hài lòng với cấu hình của mình, hãy lưu tệp và thoát nano bằng cách nhấn Ctrl + O sau đó Ctrl + X.
Bất kỳ thiết bị xuất chuẩn nào được tạo ra do nhấn nút đều được ghi lại. Bạn có thể xem nhật ký bằng cách nhấn nút Nhật ký nút ở trên cùng bên phải. Với OliveTin, bạn cũng có thể cho phép người dùng đưa ra các lệnh, được gọi là đối số, thông qua giao diện web—bằng hộp văn bản hoặc bằng các lựa chọn thả xuống.
Do mối nguy hiểm liên quan đến việc cho phép người dùng thiếu kinh nghiệm đưa ra các lệnh tùy ý có đặc quyền trực tiếp đến máy chủ Raspberry Pi của bạn, bạn có thể hạn chế loại đối số mà OliveTin sẽ chấp nhận.
Để tham khảo nhanh, các loại là:
Kiểu |
Giá trị được chấp nhận |
---|---|
very_dangerous_raw_string |
Như tên cho thấy, người dùng sẽ có thể nhập bất kỳ văn bản hoặc lệnh nào và thực hiện nó |
int |
Mọi số nguyên dương |
ascii |
Bất kỳ ký tự hoặc số nào nhưng không có dấu cách hoặc dấu chấm câu |
ascii_identifier |
Đối với DNS và tương tự |
ascii_sentence |
az , 0-9, có dấu cách, |
url |
Một địa chỉ web |
Một định nghĩa hộp văn bản trong của bạn config.yaml tập tin được định dạng như sau:
actions:
- title: Echo something to command line
icon: "⛔"
shell: echo {{ message }}
arguments:
- name: message
type: very_dangerous_raw_string
Hộp văn bản sẽ xuất hiện khi ai đó nhấn nút thích hợp và sẽ cho phép bất kỳ người dùng nào trên mạng cục bộ của bạn thực thi mã tùy ý thông qua trình duyệt. Nó không hoàn toàn là một ý tưởng tốt.
OliveTin giúp người dùng dễ dàng thực hiện các tác vụ cơ bản trên máy chủ Raspberry Pi của bạn
Raspberry Pi là nền tảng máy chủ gia đình hoàn hảo để lưu trữ các dịch vụ cho gia đình bạn sử dụng và OliveTin giúp họ dễ dàng thực hiện bảo trì đơn giản mà không làm phiền bạn.
Có hàng nghìn dự án tự lưu trữ mà bạn có thể chạy trên Raspberry Pi, điều này sẽ mang lại lợi ích cho gia đình bạn. Thực hiện một số nghiên cứu và tìm hiểu xem bạn đang trả tiền cho những dịch vụ nào mà bạn có thể tự tổ chức thay thế!