Berikan kontrol terbatas kepada pengguna lain atas server web Raspberry Pi Anda untuk menjalankan tugas rutin.
Jika Anda menjalankan Raspberry Pi sebagai server rumah, kemungkinan teman dan keluarga juga mengakses layanannya. Kadang-kadang, mereka harus menjalankan beberapa tugas rutin yang memerlukan kontrol server yang terbatas.
OliveTin adalah aplikasi yang dihosting sendiri yang dapat mereka akses melalui browser web untuk menjalankan perintah dan skrip yang telah ditentukan sebelumnya yang Anda tentukan.
Mengapa Menggunakan OliveTin di Raspberry Pi?
Seri Raspberry Pi dari komputer papan tunggal menghasilkan server rumah ringan yang luar biasa, dan relatif mudah menyiapkan server web Raspberry Pi.
Selain menghosting situs web dan blog, Anda Raspberry Pi dapat menjadi tuan rumah galeri foto, buku masak, dan suite kantor online. Kamu bisa streaming film dan acara ke TV Anda dengan Jellyfin, atau menghosting sendiri perpustakaan buku audio dengan Audiobookshelf.
Anda juga tidak terbatas pada jumlah pengguna yang Anda miliki, jadi kecuali Anda tinggal sendiri, Anda mungkin berbagi akses ke layanan Raspberry Pi Anda dengan anggota rumah tangga lainnya.
Server, seperti jenis komputer lainnya, membutuhkan pemeliharaan sesekali. Pengguna Anda mungkin perlu memulai atau menghentikan layanan tertentu, terhubung ke VPN, mencadangkan file di Raspberry Pi, atau memeriksa masalah jaringan.
Jika keluarga dan teman serumah Anda akrab dengan baris perintah Linux, dan Anda memercayai mereka untuk tidak merusak sistem Anda secara sengaja atau tidak sengaja, Anda dapat mempertimbangkan untuk memberikan kredensial SSH mereka sendiri bersama dengan keanggotaan grup sudo, sehingga mereka dapat melakukan tugas ini tanpa mengganggu Anda.
Itu adalah proposisi yang menggoda tetapi berbahaya, dan jika terjadi kesalahan, Andalah yang harus memperbaikinya. Dengan OliveTin, Anda dapat menentukan perintah rutin yang mungkin perlu dijalankan oleh pengguna server lain secara teratur. Mereka kemudian dapat membuka browser web, dan menekan tombol yang akan menjalankan perintah pada Pi Anda—tanpa perlu menyentuh baris perintah.
Cara Memasang OliveTin di Raspberry Pi
Cara termudah untuk menginstal OliveTin menggunakan Docker Compose. Jika Anda belum menginstal Docker dan Docker Compose di Raspberry Pi Anda, lihat panduan penting kami di cara menginstal Docker dan Docker Compose di Linux.
Hubungkan ke server Raspberry Pi Anda menggunakan Shell Aman (SSH):
ssh pi@milikmu-alamat-pi-ip-lokal
Buat direktori baru untuk OliveTin, dan gunakan CD perintah untuk pindah ke dalamnya:
mkdir olivetin && CD olivetin
Gunakan editor teks nano untuk membuat file Docker Compose baru:
nanokomposisi buruh pelabuhan.yml
Salin dan tempel di berikut ini:
Versi: kapan: "3.5"
jasa:
zaitun:
container_name: olivetin
gambar: jamesread/olivetin
pengguna: akar
volume:
- ~/olivetin:/config
- /var/jalankan/docker.sock:/var/jalankan/docker.sock
port:
- "1337:1337"
restart: kecuali-dihentikan
jaringan:
web:
bagian:
luar: BENAR
Sekarang simpan dan keluar dari nano dengan Ctrl + O Kemudian Ctrl + X.
Sebelum Anda menjalankan OliveTin untuk pertama kalinya, Anda perlu membuat file konfigurasi. Di sinilah Anda akan menentukan perintah untuk dijalankan pengguna. Untuk saat ini, masukkan:
menyentuhconfig.yaml
Gunakan OliveTin untuk Memberikan Kontrol Server Terbatas kepada Pengguna Anda
Di terminal Anda, masukkan:
docker-compose up -d
Perintah ini akan memunculkan Docker Compose dalam mode terpisah. Docker Compose akan mengunduh image untuk OliveTin dan menyiapkan container. Proses ini mungkin memakan waktu. Saat Anda kembali ke prompt perintah, periksa semuanya berjalan dengan benar dengan:
docker-compose ps
Buka browser, dan arahkan ke alamat-pi-lokal-ip Anda: 1337. Anda akan melihat halaman web berwarna abu-abu dengan footer OliveTin. Anda sekarang siap untuk mulai menentukan perintah untuk pengguna Anda.
Kembali ke terminal, gunakan nano untuk mengedit file konfigurasi yang Anda buat sebelumnya:
nanoconfig.yaml
Sintaksnya sederhana, dan Anda dapat menentukan nama layanan dan tindakan yang akan dilakukan seperti contoh berikut:
tindakan:
- judul: "Boot ulang server"
cangkang: reboot- judul: "Ping Netflix"
kerang: pingnetflix.com
- judul: Mulai ulang Apache
ikon: "🏁"
shell: sudo service apache2 restart
title field adalah judul yang dapat dilihat pengguna, sedangkan perintah berikut kerang: adalah perintah yang benar-benar akan dijalankan pada Raspberry Pi Anda.
OliveTin mendukung ikon unicode, dan Anda dapat menentukan kode HTML ini di ikon bagian. Atau, Anda dapat mengatur URL lengkap dari gambar yang ingin Anda gunakan. Contohnya:
ikon: '<imgsrc = " https://www.makeuseof.com/public/build/images/muo-logo-full-colored-light.svg"lebar = "81px"/>'
Sementara konfigurasi kami memberikan contoh yang akan memulai ulang Raspberry Pi, memulai ulang Apache, dan melakukan ping ke Netflix, sebenarnya tidak ada batasan untuk perintah apa yang dapat Anda tentukan. Anda dapat memberi pengguna tombol yang akan menyalin film dari satu direktori ke direktori lain, menghapus dengan cepat dan timpa direktori tertentu, atau buat tombol pemutus yang akan mengenkripsi perangkat penyimpanan Anda dengan a kunci acak.
Saat Anda puas dengan konfigurasi Anda, simpan file dan keluar dari nano dengan menekan Ctrl + O Kemudian Ctrl + X.
Setiap stdout yang dihasilkan sebagai hasil dari penekanan tombol dicatat. Anda dapat melihat log dengan menekan Log tombol di kanan atas. Dengan OliveTin, Anda juga dapat mengizinkan pengguna memberikan perintah, yang dikenal sebagai argumen, melalui antarmuka web—baik dengan kotak teks, atau dengan pilihan drop-down.
Karena bahaya yang terkait dengan membiarkan pengguna yang tidak berpengalaman mengeluarkan perintah arbitrer istimewa langsung ke server Raspberry Pi Anda, Anda dapat membatasi jenis argumen yang akan diterima OliveTin.
Untuk referensi cepat, jenisnya adalah:
Jenis |
Nilai yang diterima |
---|---|
very_dangerous_raw_string |
Seperti namanya, pengguna akan dapat memasukkan teks atau perintah apa pun dan menjalankannya |
int |
Bilangan bulat positif apa pun |
ascii |
Karakter atau angka apa pun, tetapi tanpa spasi atau tanda baca |
ascii_identifier |
Untuk DNS dan sejenisnya |
ascii_sentence |
a-z, 0-9, dengan spasi, |
url |
Alamat web |
Definisi kotak teks di config.yaml file diformat seperti di bawah ini:
tindakan:
- judul: Gema sesuatu ke baris perintah
ikon: "⛔"
kerang: gema {{ pesan }}
argumen:
- nama: pesan
jenis: very_dangerous_raw_string
Kotak teks akan muncul ketika seseorang menekan tombol yang sesuai, dan akan memungkinkan setiap pengguna di jaringan lokal Anda untuk mengeksekusi kode arbitrer melalui browser. Itu sama sekali bukan ide yang bagus.
OliveTin Memudahkan Pengguna untuk Melakukan Tugas Dasar di Server Raspberry Pi Anda
Raspberry Pi adalah platform server rumah yang sempurna untuk layanan hosting untuk digunakan keluarga Anda, dan OliveTin memudahkan mereka untuk melakukan pemeliharaan sederhana tanpa mengganggu Anda.
Ada ribuan proyek yang dihosting sendiri yang dapat Anda jalankan di Raspberry Pi yang akan menguntungkan rumah tangga Anda. Lakukan riset dan cari tahu layanan apa yang Anda bayar yang bisa Anda host sendiri!