Update arch_install.sh
This commit is contained in:
parent
ee9552ff16
commit
7d47629e0b
126
arch_install.sh
126
arch_install.sh
|
|
@ -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"
|
||||||
Loading…
Reference in New Issue