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:
- Install Ubuntu Server using the official documentation
- Update system packages:
1
sudo apt update && sudo apt upgrade -y
- 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
- 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!