Azuracast ARM64 Docker Deployment
Azuracast now supports ARM64
0. Background
Azuracast now supports ARM64, with easy all-in-one docker installation.
1. Install via official script
mkdir -p /var/azuracast
cd /var/azuracast
Note: It’s recommended to use default directory, which is `/var/azuracast’.
curl -fsSL https://raw.githubusercontent.com/AzuraCast/AzuraCast/main/docker.sh > docker.sh
chmod a+x docker.sh
./docker.sh install
Here assume that you are using Nginx reverse proxy. So let’s set http port to 20000
, instead of default 80. For https port, you can set it to any non-443 port, and let Nginx to do the rest of the jobs.
2. Nginx conf
nano /etc/nginx/conf.d/azuracast.conf
server {
listen 80;
server_name azuracast.henrywithu.com;
if ($host = azuracast.henrywithu.com) {
return 301 https://$host$request_uri;
}
return 404;
}
server {
listen 443 http2 ssl;
ssl_certificate /home/ubuntu/keys/fullchain.pem; #replace path
ssl_certificate_key /home/ubuntu/keys/privkey.pem; #replace path
#ssl_dhparam /your/path/dhparams.pem; #optional
#Authenticated Origin Pull is optional. Please refer to https://developers.cloudflare.com/ssl/origin/authenticated-origin-pull/
#ssl_client_certificate /etc/ssl/origin-pull-ca.pem;
#ssl_verify_client on;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
client_max_body_size 50G; # define your max_upload_file_size
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
server_name azuracast.example.com;
add_header Content-Security-Policy upgrade-insecure-requests;
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:20000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
nginx -t
systemctl restart nginx
3. Post Installation
Since we use Nginx reverse proxy, make sure to check YES on Azuracast - Administration - Settings - Use Web Proxy for Radio, otherwise the audio cannot be played.
Copyright statement: Unless otherwise stated, all articles on this blog adopt the CC BY-NC-SA 4.0 license agreement. For non-commercial reprints and citations, please indicate the author: Henry, and original article URL. For commercial reprints, please contact the author for authorization.