AirSonic adalah pelayan streaming media sumber terbuka dan terbuka. Dalam tutorial ini, saya akan memandu anda melalui proses menggunakan contoh pelayan AirSonic dari awal pada contoh pelayan Ubuntu 18.04 LTS.
Prasyarat
- Satu contoh server Vultr Ubuntu 18.04 yang baru digunakan dengan memori sekurang-kurangnya 2GB. Katakan ia mempunyai alamat IPv4
203.0.113.1
.
- Pengguna sudo .
- Domain
airsonic.example.com
yang ditunjukkan ke contoh pelayan yang disebutkan di atas.
Langkah 1: Konfigurasi sistem asas
Buat fail swap
Untuk mendapatkan prestasi sistem yang lebih baik, disyorkan untuk membuat file swap 2GB (2048M) pada mesin dengan memori 2GB:
sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
free -m
Nota: Jika anda menggunakan saiz server yang berbeza, saiz swap yang sesuai mungkin berbeza-beza.
Persediaan nama hos mesin dan nama domain yang memenuhi syarat (FQDN)
Betul menubuhkan nama hos dan FQDN untuk mesin diperlukan untuk membolehkan keselamatan HTTPS dengan Let's Encrypt Sertifikat SSL.
Perintah berikut akan menetapkan nama hos airsonic
dan FQDN airsonic.example.com
untuk mesin:
sudo hostnamectl set-hostname airsonic
sudo sed -i 's/^127.0.1.1.*$/127.0.1.1 airsonic.example.com airsonic/g' /etc/hosts
Keputusan boleh disahkan dengan yang berikut:
hostname
hostname -f
Mengubah suai peraturan firewall untuk membenarkan masuk SSH
, HTTP
dan HTTPS
lalu lintas
Persediaan peraturan firewall UFW untuk menjalankan pelayan AirSonic:
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
Apabila anda melihat arahan Command may disrupt existing ssh connections. Proceed with operation (y|n)?
, masukkan y
dan kemudian tekan ENTER.
Kemas kini sistem
Untuk tujuan keselamatan dan prestasi, perlu mengemas kini sistem Ubuntu 18.04 LTS ke status terkini:
sudo apt update
sudo apt upgrade -y && sudo shutdown -r now
Semasa peningkatan, anda mungkin diberitahu bahawa versi fail konfigurasi grub yang telah dipasang sekarang telah diubah suai secara tempatan. Oleh kerana kami sebenarnya tidak bertanggungjawab untuk pengubahsuaian, gunakan UPanak panah untuk menyorot install the package maintainer's version
pilihan, dan kemudian tekan ENTER.
Setelah sistem dihidupkan semula, log masuk kembali sebagai pengguna sudo yang sama untuk meneruskannya.
Langkah 2: Pasang OpenJDK Java Runtime Environment (JRE) 8
Pasang OpenJDK JRE 8 dan kemudian sahkan hasilnya:
sudo apt install -y openjdk-8-jre-headless
java -version
Keluaran arahan kedua akan serupa dengan yang berikut:
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-8u181-b13-0ubuntu0.18.04.1-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)
Di samping itu, anda perlu menyediakan JAVA_HOME
pembolehubah persekitaran seperti berikut:
echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" | sudo tee -a /etc/profile
source /etc/profile
Langkah 3: Pasang AirSonic
AirSonic dapat disebarkan menggunakan pelbagai kaedah. Dalam tutorial ini, kami akan memasang AirSonic menggunakan pakej WAR AirSonic.
Buat pengguna berdedikasi dan kumpulan berdedikasi, kedua-duanya bernama airsonic
:
sudo groupadd airsonic
sudo mkdir /var/airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic -M airsonic
Muat turun pakej AirSonic WAR terkini, AirSonic v10.1.2:
cd /var/airsonic
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.1.2/airsonic.war
sudo chown -R airsonic:airsonic /var/airsonic
Muat turun systemd
fail unit AirSonic yang telah ditetapkan dan kemudian mulakan perkhidmatan AirSonic:
sudo wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic.service -O /etc/systemd/system/airsonic.service
sudo wget https://raw.githubusercontent.com/airsonic/airsonic/master/contrib/airsonic-systemd-env -O /etc/default/airsonic
sudo systemctl daemon-reload
sudo systemctl start airsonic.service
sudo systemctl enable airsonic.service
Catatan: Anda mungkin perlu menyemak dan menyesuaikan dua systemd
fail unit AirSonic pada mesin anda sendiri.
Langkah 4: Uji pemasangan
AirSonic akan naik dan berjalan sekarang, mendengar pada port 8080
. Anda boleh menggunakan arahan berikut untuk mengesahkan bahawa ini berlaku:
ps -ef|grep airsonic
Anda juga boleh melayari laman AirSonic secara langsung, tetapi anda perlu mengubah peraturan firewall buat sementara waktu:
sudo ufw allow in 8080/tcp
Seterusnya, arahkan penyemak imbas web kegemaran anda http://203.0.113.1:8080/airsonic
, dan kemudian gunakan kelayakan lalai yang disenaraikan di bawah untuk log masuk:
- Nama pengguna:
admin
- Kata Laluan:
admin
Untuk tujuan keselamatan, anda harus menukar kata laluan pentadbir sebaik sahaja log masuk.
Setelah hasilnya disahkan, hadkan lagi akses ke port 8080
:
sudo ufw deny in 8080/tcp
Langkah 5: Dapatkan Letakkan Sijil SSL untuk tapak AirSonic anda
Untuk tujuan keselamatan, disyorkan untuk mengaktifkan keselamatan HTTPS di setiap laman web yang baru dibuat. Amalan yang paling mudah untuk itu adalah menggunakan sijil Let's Encrypt SSL seperti berikut.
Pasang utiliti Certbot:
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository -y ppa:certbot/certbot
sudo apt update
sudo apt install -y certbot
Gunakan Certbot untuk memohon sijil Let's Encrypt SSL untuk domain airsonic.example.com
:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d airsonic.example.com
Sijil dan rantai akan disimpan pada yang berikut:
/etc/letsencrypt/live/airsonic.example.com/fullchain.pem
Fail utama akan disimpan di sini:
/etc/letsencrypt/live/airsonic.example.com/privkey.pem
Sijil Let's Encrypt SSL dirancang untuk tamat dalam tiga bulan. Anda boleh menyediakan pekerjaan cron untuk memperbaharui sijil anda secara automatik:
sudo crontab -e
Apabila anda diminta untuk memilih editor, masukkan 2
dan kemudian tekan ENTERuntuk memilih /usr/bin/vim.basic
.
Seterusnya, tekan O, dan tambahkan baris baru seperti yang ditunjukkan di bawah:
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
Simpan dan tutup:
:wq!
Pekerjaan cron ini akan berusaha mengemas kini sijil Let's Encrypt setiap hari pada waktu tengah hari.
Langkah 6: Pasang Nginx sebagai proksi terbalik
Dengan bantuan Nginx, anda berdua dapat mempermudah akses pengunjung (supaya mereka tidak perlu lagi memasukkan 8080
nombor port), dan mengaktifkan keselamatan HTTPS di laman web AirSonic anda.
Pasang Nginx menggunakan APT:
sudo apt install -y nginx
Seterusnya, buat fail konfigurasi untuk AirSonic:
cat <<EOF | sudo tee /etc/nginx/sites-available/airsonic.conf
# Redirect HTTP to HTTPS
server {
listen 80;
server_name airsonic.example.com;
return 301 https://\$server_name\$request_uri;
}
server {
# Setup HTTPS certificates
listen 443 default ssl;
server_name airsonic.example.com;
ssl_certificate /etc/letsencrypt/live/airsonic.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/airsonic.example.com/privkey.pem;
# Proxy to the Airsonic server
location /airsonic {
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Host \$http_host;
proxy_set_header Host \$http_host;
proxy_max_temp_file_size 0;
proxy_pass http://127.0.0.1:8080;
proxy_redirect http:// https://;
}
}
EOF
Buat pautan simbolik yang menunjuk ke fail konfigurasi AirSonic Nginx yang baru dibuat:
sudo ln -s /etc/nginx/sites-available/airsonic.conf /etc/nginx/sites-enabled/
Restart Nginx untuk meletakkan konfigurasi anda berlaku:
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service
Akhirnya, arahkan penyemak imbas web kegemaran anda ke http://airsonic.example.com/airsonic
atau https://airsonic.example.com/airsonic
untuk mula meneroka laman web AirSonic anda.