Post

My First Homelab I Call It Look Mom No Screen

Welcome to my journey into the world of self-hosted environments! In this post, well delve into setting up and configuring a headless homelab (a server witho....

My First Homelab I Call It Look Mom No Screen

Welcome to my journey into the world of self-hosted environments! In this post, we’ll delve into setting up and configuring a headless homelab (a server without a monitor) using Ubuntu Server and Jellyfin. This guide is perfect for experienced sysadmins and DevOps engineers seeking to expand their skillset in infrastructure management and system administration.

Introduction

The title of this post may seem peculiar, but it tells the story of a fellow Redditor who, after his laptop screen broke, decided to transform his device into a server for network storage and media streaming by installing Ubuntu Server and Jellyfin. This guide aims to help you follow in his footsteps, learning about homelabbing, infrastructure management, and system administration along the way.

Prerequisites

System Requirements

  • Operating System: Ubuntu Server 20.04 LTS or later (recommended)
  • Hardware Specs: Minimum 4GB RAM, SSD storage, and network connectivity

Software Requirements

  • Jellyfin v10.7 or later

Network Requirements & Firewall Considerations

  • Stable internet connection
  • Ensure port 80 and 443 are open for Jellyfin media server communication
  • Set up static IP address if needed

User Permissions & Access Levels

  • Operate as a non-root user with sudo privileges for best security practices

Installation & Setup

Follow these steps to install Ubuntu Server and set up the Jellyfin media server:

  1. Install Ubuntu Server using the official documentation
  2. Update system packages:
    1
    
    sudo apt update && sudo apt upgrade -y
    
  3. Install Jellyfin:
    1
    2
    
    wget https://github.com/jellyfin/jellyfin-package/releases/download/v10.7.2/jellyfin_10.7.2_all.deb
    sudo dpkg -i jellyfin_10.7.2_all.deb
    
  4. Configure Jellyfin settings with the default GUI or manually using configuration files (/etc/jellyfin/jellyfin.yml and /etc/default/jellyfin).

Configuration

Security Hardening

  • Change default admin username and password
  • Enable SSL/TLS encryption
  • Implement access controls and authentication methods

Performance Optimization

  • Adjust database connection settings
  • Configure media library scanning schedules
  • Set maximum simultaneous connections

Integration with Other Services

  • Use plugins for extended functionality (e.g., Sonarr, Radarr)

Usage & Operations

  • Common commands: jellyfin config, jellyfin scan, jellyfin server status
  • Monitoring and maintenance: Set up monitoring tools such as Prometheus or Grafana
  • Backup and recovery: Regularly backup the Jellyfin database and media library
  • Scaling considerations: Plan for increased storage capacity and processing power as needs grow

Troubleshooting

  • Common issues: Media playback errors, connection issues, configuration file parsing errors
  • Debug commands: journalctl -u jellyfin, jellyfin logs
  • Performance tuning tips: Optimize database performance, adjust transcoding settings, and use network optimizations
  • Security considerations: Regularly update Jellyfin to the latest version, monitor for unusual activity, and review logs regularly

Conclusion

In this guide, we’ve explored setting up a headless homelab using Ubuntu Server and Jellyfin. You now have the knowledge to create your own media server and expand into other areas of infrastructure management and self-hosted environments. For further learning, explore resources such as The Linux Foundation and Jellyfin’s documentation. Happy homelabbing!

This post is licensed under CC BY 4.0 by the author.