#!/bin/bash # Jellyfin postinst script - runs after package installation set -e # Create jellyfin user if it doesn't exist if ! getent passwd jellyfin > /dev/null; then useradd --system \ --home /var/lib/jellyfin \ --shell /bin/false \ --comment "Jellyfin Media Server" \ jellyfin fi # Create necessary directories mkdir -p /var/lib/jellyfin mkdir -p /var/log/jellyfin mkdir -p /var/cache/jellyfin mkdir -p /etc/jellyfin # Set proper ownership and permissions chown -R jellyfin:jellyfin /var/lib/jellyfin chown -R jellyfin:jellyfin /var/log/jellyfin chown -R jellyfin:jellyfin /var/cache/jellyfin chown -R jellyfin:jellyfin /etc/jellyfin chmod 755 /var/lib/jellyfin chmod 755 /var/log/jellyfin chmod 755 /var/cache/jellyfin chmod 755 /etc/jellyfin # Set permissions on the application directory chown -R jellyfin:jellyfin /opt/jellyfin chmod -R 755 /opt/jellyfin # Create systemd service file if it doesn't exist if [[ ! -f /etc/systemd/system/jellyfin.service ]]; then cat > /etc/systemd/system/jellyfin.service << 'EOF' [Unit] Description=Jellyfin Media Server After=network.target [Service] Type=simple User=jellyfin Group=jellyfin WorkingDirectory=/var/lib/jellyfin ExecStart=/opt/jellyfin/jellyfin --webdir=/opt/jellyfin/wwwroot --logdir=/var/log/jellyfin --datadir=/var/lib/jellyfin --cachedir=/var/cache/jellyfin Restart=on-failure RestartSec=10 StandardOutput=journal StandardError=journal Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" [Install] WantedBy=multi-user.target EOF fi # Reload systemd daemon systemctl daemon-reload # Enable and start the service if [[ -f /etc/systemd/system/jellyfin.service ]]; then systemctl enable jellyfin.service systemctl restart jellyfin.service || true fi # Display post-installation message echo "" echo "==========================================" echo "Jellyfin Media Server installed!" echo "==========================================" echo "" echo "Service status: systemctl status jellyfin" echo "View logs: journalctl -u jellyfin -f" echo "Configuration: /etc/jellyfin/" echo "Data: /var/lib/jellyfin/" echo "Logs: /var/log/jellyfin/" echo "" echo "Access Jellyfin at: http://localhost:8096" echo "" exit 0