Hướng dẫn triển khai AirSonic trên CentOS 7


AirSonic là một máy chủ truyền phát nhạc mã nguồn mở, cho phép người dùng truy cập và phát nhạc trực tuyến. Bài viết này sẽ hướng dẫn các bước cài đặt AirSonic trên CentOS 7 chi tiết từ đầu đến cuối.

1. Chuẩn bị

Để cài đặt AirSonic, bạn cần chuẩn bị sẵn:

  • Máy chủ CentOS 7 mới với ít nhất 2GB RAM. Giả sử địa chỉ IP là 106.175.146.1
  • Người dùng sudo.
  • Tên miền trỏ về địa chỉ IP máy chủ trên, ví dụ airsonic.example.com.

2. Cài đặt các gói phụ trợ

Thực hiện các bước sau để cài đặt các gói phụ trợ cho AirSonic:

  • Tạo swap file 2GB để cải thiện hiệu năng hệ thống:
sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  • Đặt tên máy chủ và FQDN:
sudo hostnamectl set-hostname airsonic
echo "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6  
203.0.113.1 airsonic.example.com airsonic" | sudo tee /etc/hosts
  • Mở port 80, 443 trên firewall:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https  
sudo systemctl reload firewalld
  • Cài đặt repo EPEL và cập nhật hệ thống:
sudo yum install epel-release -y sudo yum update -y && sudo shutdown -r now

3. Cài đặt AirSonic

Các bước cài đặt AirSonic:

  • Tạo user và thư mục riêng cho AirSonic:
sudo groupadd airsonic
sudo useradd -s /bin/nologin -g airsonic -d /var/airsonic airsonic
  • Tải gói WAR mới nhất và cấp quyền:
cd /var/airsonic  
sudo wget https://github.com/airsonic/airsonic/releases/download/v10.1.2/airsonic.war
sudo chown -R airsonic:airsonic /var/airsonic
  • Tải systemd unit files và khởi động dịch vụ:
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/sysconfig/airsonic 
sudo systemctl daemon-reload
sudo systemctl start airsonic
sudo systemctl enable airsonic

Như vậy là AirSonic đã được cài đặt thành công, sẵn sàng cho bước cấu hình tiếp theo.

4. Cấu hình AirSonic

Sau khi cài đặt xong, cần truy cập vào AirSonic để thực hiện các bước cấu hình ban đầu:

  • Kiểm tra AirSonic đang chạy ở cổng 8080
ps -ef|grep airsonic
  • Truy cập AirSonic tại http://106.75.146.1.1:8080/airsonic với tài khoản mặc định:
    • Username: admin
    • Password: admin
  • Đổi mật khẩu admin ngay sau khi đăng nhập để đảm bảo an toàn.
  • Tiến hành các bước cấu hình AirSonic ban đầu như thêm thư viện nhạc, chỉnh sửa các tùy chọn.

Như vậy là AirSonic đã sẵn sàng phục vụ việc truyền phát nhạc. Tiếp theo, chúng ta sẽ tăng cường bảo mật bằng SSL và sử dụng Nginx để cấu hình Reverse Proxy.

5. Cấu hình SSL với Let’s Encrypt

Để bảo mật AirSonic bằng SSL, cần làm các bước sau:

  • Cài đặt certbot để lấy chứng chỉ Let’s Encrypt:
sudo yum install certbot -y
  • Sử dụng certbot để lấy chứng chỉ cho tên miền:
sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d airsonic.example.com
  • Chứng chỉ và chain được lưu tại: /etc/letsencrypt/live/airsonic.example.com/fullchain.pem
  • Khóa private key tại: /etc/letsencrypt/live/airsonic.example.com/privkey.pem
  • Thiết lập tự động gia hạn SSL:
sudo crontab -e
0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

Như vậy đã có chứng chỉ SSL cho AirSonic. Giờ sẽ cấu hình Nginx để sử dụng chứng chỉ này.

6. Sử dụng Nginx làm Reverse Proxy

Để tận dụng chứng chỉ SSL vừa cấu hình, cần triển khai Nginx làm Reverse Proxy:

  • Cài đặt Nginx:
sudo yum install nginx -y
  • Tạo file cấu hình cho AirSonic trên Nginx:
sudo tee /etc/nginx/conf.d/airsonic.conf <<EOF

# Redirect HTTP to HTTPS
server {
  listen 80;
  server_name airsonic.example.com;
  return 301 https://$server_name$request_uri;  
}

server {

  listen 443 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;

  location / {
    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 $scheme;
    proxy_set_header Host $http_host; 
    proxy_pass http://127.0.0.1:8080;
  }

}
EOF
  • Khởi động lại Nginx:

sudo systemctl restart nginx
sudo systemctl enable nginx

Như vậy Nginx đã sẵn sàng phục vụ AirSonic qua giao thức HTTPS.

7. Truy cập và sử dụng AirSonic

Giờ đây bạn có thể truy cập AirSonic an toàn qua HTTPS tại https://airsonic.example.com.

Sử dụng tài khoản admin để đăng nhập và bắt đầu tận hưởng dịch vụ truyền phát nhạc của AirSonic.

Chúc bạn thành công!

Như vậy là đã hoàn thành quá trình triển khai AirSonic trên CentOS 7 với đầy đủ các bước chi tiết từ đầu đến cuối. AirSonic giờ đây đã sẵn sàng phục vụ người dùng một cách an toàn và ổn định.