Update arch_install.sh

This commit is contained in:
RomanNum3ral 2026-04-03 20:08:17 +00:00
parent ee9552ff16
commit 7d47629e0b
1 changed files with 76 additions and 50 deletions

View File

@ -1,69 +1,95 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
set -e echo "============================================================"
echo "[INFO] Installing Jellyfin on Arch Linux (native, no Docker)"
echo "============================================================"
echo "========================================" # Require root or sudo
echo "[INFO] Installing Jellyfin (Arch Linux)" if [[ "${EUID}" -ne 0 ]]; then
echo "========================================" SUDO="sudo"
else
SUDO=""
fi
# Update system echo "============================================================"
sudo pacman -Syu --noconfirm echo "[INFO] Updating package database and system"
echo "============================================================"
$SUDO pacman -Syu --noconfirm
# Install Jellyfin + dependencies echo "============================================================"
sudo pacman -S --noconfirm jellyfin ffmpeg echo "[INFO] Installing Jellyfin packages"
echo "============================================================"
$SUDO pacman -S --noconfirm jellyfin-server jellyfin-web jellyfin-ffmpeg
echo "========================================" echo "============================================================"
echo "[INFO] Creating directories" echo "[INFO] Creating media directories"
echo "========================================" echo "============================================================"
$SUDO mkdir -p /srv/media/movies
$SUDO mkdir -p /srv/media/tv
$SUDO mkdir -p /srv/media/music
$SUDO mkdir -p /srv/jellyfin/cache
$SUDO mkdir -p /srv/jellyfin/config
# Create media directories echo "============================================================"
sudo mkdir -p /srv/jellyfin/{config,cache,media} echo "[INFO] Setting ownership"
sudo mkdir -p /srv/jellyfin/media/{movies,tv,music} echo "============================================================"
$SUDO chown -R jellyfin:jellyfin /srv/media
$SUDO chown -R jellyfin:jellyfin /srv/jellyfin
# Set ownership echo "============================================================"
sudo chown -R jellyfin:jellyfin /srv/jellyfin echo "[INFO] Creating systemd override for Jellyfin paths"
echo "============================================================"
echo "========================================" $SUDO mkdir -p /etc/systemd/system/jellyfin.service.d
echo "[INFO] Configuring Jellyfin directories" $SUDO tee /etc/systemd/system/jellyfin.service.d/override.conf > /dev/null <<'EOF'
echo "========================================"
# Override default paths with systemd drop-in
sudo mkdir -p /etc/systemd/system/jellyfin.service.d
sudo tee /etc/systemd/system/jellyfin.service.d/override.conf > /dev/null <<EOF
[Service] [Service]
Environment="JELLYFIN_DATA_DIR=/srv/jellyfin/config" Environment="JELLYFIN_DATA_DIR=/srv/jellyfin/config"
Environment="JELLYFIN_CACHE_DIR=/srv/jellyfin/cache" Environment="JELLYFIN_CACHE_DIR=/srv/jellyfin/cache"
EOF EOF
echo "========================================" echo "============================================================"
echo "[INFO] Enabling and starting Jellyfin" echo "[INFO] Reloading systemd and enabling Jellyfin"
echo "========================================" echo "============================================================"
$SUDO systemctl daemon-reload
sudo systemctl daemon-reexec $SUDO systemctl enable --now jellyfin
sudo systemctl daemon-reload
sudo systemctl enable jellyfin
sudo systemctl start jellyfin
echo "========================================"
echo "[INFO] Configuring firewall (UFW if installed)"
echo "========================================"
echo "============================================================"
echo "[INFO] Opening firewall ports if UFW is installed"
echo "============================================================"
if command -v ufw >/dev/null 2>&1; then if command -v ufw >/dev/null 2>&1; then
sudo ufw allow 8096/tcp $SUDO ufw allow 8096/tcp
sudo ufw allow 8920/tcp $SUDO ufw allow 8920/tcp
sudo ufw reload $SUDO ufw reload
fi fi
echo "========================================" echo "============================================================"
echo "[SUCCESS] Jellyfin is installed!" echo "[INFO] Checking Jellyfin service status"
echo "========================================" echo "============================================================"
$SUDO systemctl --no-pager --full status jellyfin || true
IP=$(hostname -I | awk '{print $1}') IP="$(hostname -I 2>/dev/null | awk '{print $1}')"
echo "Access Jellyfin at:" echo "============================================================"
echo " http://$IP:8096" echo "[SUCCESS] Jellyfin installation complete"
echo "" echo "============================================================"
echo "Default directories:" if [[ -n "${IP:-}" ]]; then
echo " Config: /srv/jellyfin/config" echo "Open Jellyfin at:"
echo " Media: /srv/jellyfin/media" echo " http://${IP}:8096"
else
echo "Open Jellyfin at:"
echo " http://YOUR_SERVER_IP:8096"
fi
echo
echo "Media directories:"
echo " /srv/media/movies"
echo " /srv/media/tv"
echo " /srv/media/music"
echo
echo "Jellyfin config/cache:"
echo " /srv/jellyfin/config"
echo " /srv/jellyfin/cache"
echo
echo "Useful commands:"
echo " systemctl status jellyfin"
echo " journalctl -u jellyfin -e --no-pager"