123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/usr/bin/env bash
- # Copyright (c) 2021-2023 tteck
- # Author: tteck (tteckster)
- # License: MIT
- # https://github.com/tteck/Proxmox/raw/main/LICENSE
- source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
- color
- verb_ip6
- catch_errors
- setting_up_container
- network_check
- update_os
- msg_info "Installing Dependencies (patience)"
- $STD apt-get install -y curl
- $STD apt-get install -y sudo
- $STD apt-get install -y mc
- $STD apt-get install -y ffmpeg
- msg_ok "Installed Dependencies"
- RELEASE=$(curl -s https://api.github.com/repos/navidrome/navidrome/releases/latest |
- grep "tag_name" |
- awk '{print substr($2, 3, length($2)-4) }')
- msg_info "Installing Navidrome"
- install -d -o root -g root /opt/navidrome
- install -d -o root -g root /var/lib/navidrome
- $STD wget https://github.com/navidrome/navidrome/releases/download/v${RELEASE}/navidrome_${RELEASE}_Linux_x86_64.tar.gz -O Navidrome.tar.gz
- $STD tar -xvzf Navidrome.tar.gz -C /opt/navidrome/
- chown -R root:root /opt/navidrome
- mkdir -p /music
- cat <<EOF >/var/lib/navidrome/navidrome.toml
- MusicFolder = '/music'
- EOF
- msg_ok "Installed Navidrome"
- msg_info "Creating Service"
- service_path="/etc/systemd/system/navidrome.service"
- echo "[Unit]
- Description=Navidrome Music Server and Streamer compatible with Subsonic/Airsonic
- After=remote-fs.target network.target
- AssertPathExists=/var/lib/navidrome
- [Service]
- User=root
- Group=root
- Type=simple
- ExecStart=/opt/navidrome/navidrome --configfile '/var/lib/navidrome/navidrome.toml'
- WorkingDirectory=/var/lib/navidrome
- TimeoutStopSec=20
- KillMode=process
- Restart=on-failure
- DevicePolicy=closed
- NoNewPrivileges=yes
- PrivateTmp=yes
- PrivateUsers=yes
- ProtectControlGroups=yes
- ProtectKernelModules=yes
- ProtectKernelTunables=yes
- RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
- RestrictNamespaces=yes
- RestrictRealtime=yes
- SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap
- ReadWritePaths=/var/lib/navidrome
- ProtectSystem=full
- [Install]
- WantedBy=multi-user.target" >$service_path
- systemctl daemon-reload
- $STD systemctl enable --now navidrome.service
- msg_ok "Created Service"
- motd_ssh
- customize
- msg_info "Cleaning up"
- $STD apt-get autoremove
- $STD apt-get autoclean
- rm -rf /root/Navidrome.tar.gz
- msg_ok "Cleaned"
|