diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html new file mode 100644 index 0000000..9ae60bd --- /dev/null +++ b/404.html @@ -0,0 +1,785 @@ + + + +
+ + + + + + + + + + + + + + +The Ansible minecraft-playbook.yml is used to deploy a Minecraft server on Ubuntu Server 22.04 LTS in my Homelab.
+The Minecraft server is deployed with Paper MC in a Docker container using the itzg/minecraft-server container image. The playbook deploys Tailscale to allow remote access and to allow friends to connect to the server. Furthermore, the playbook can be configured to deploy the itzg/mc-backup container image which will backup the Minecraft server world to an S3 bucket.
+Deploy an Ubuntu Server 22.04 LTS instance on Proxmox VE using the common Terraform resources.
+Generate a Tailscale auth key to register the server with your Tailnet.
+Setting | +Value | +
---|---|
Files in bucket are | +Private | +
Default Encryption | +Disable | +
Object Lock | +Disable | +
Lifecycle Settings | +Keep only the last version of the file | +
deleteFiles
, listBuckets
, listFiles
, readBucketEncryption
, readBuckets
, readFiles
, shareFiles
, writeBucketEncryption
, writeFiles
.The variables for this playbook are located in ansible/vars/minecraft.yml.
+Clone the repository:
+ +Create the Python virtual environment and install Ansible dependencies:
+ +Verify Ansible can connect to the server:
+ +Run the playbook:
+ +The Ansible pihole-playbook.yml is used to deploy and configure Pi-hole on my Raspberry Pi 3 in my Homelab.
+The Raspberry Pi 3 in my Homelab acts as a DNS server by running Pi-hole in a container. Furthermore, I configure Tailscale to be able to get ad-blocking whilst on the go.
+Flash Raspberry Pi OS Lite (64-bit) to a micro SD card using Raspberry Pi Imager.
+Click the cog icon on the bottom right to open the Advanced options menu and configure the following options:
+pihole
.authorized_keys
field.Once flashed, insert the micro SD card into the Raspberry Pi and boot it.
+SSH to the Raspberry Pi:
+++ +Note +If you experience issues with hostname resolution on MacOS, try restarting the mDNSResponder service:
+sudo killall -HUP mDNSResponder
.
Run the following commands on the Raspberry Pi to set a static IP address, update the system and expand the filesystem:
+# Become root
+sudo -i
+raspi-config
+# Select "Advanced Options" > "Network Config" > 2 NetworkManager
+# Select "Advanced Options" > "Expand Filesystem"
+
+# Set static IP address
+nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.0.2/24 ipv4.gateway 192.168.0.1 ipv4.dns 1.1.1.1,1.0.0.1 connection.autoconnect yes
+
+# Enable connection to apply changes
+nmcli connection up eth0
+
+# Update system
+apt-get update && apt-get upgrade -y
+reboot
+
Generate a Tailscale auth key to register the Raspberry Pi 3 with your Tailnet.
+The variables for this playbook are located in ansible/vars/pihole.yml.
+Clone the repository:
+ +Create the Python virtual environment and install Ansible dependencies:
+ +Verify Ansible can connect to the server:
+ +Run the playbook:
+ +Login to the Tailscale admin portal.
+Copy the Tailnet IP of the Raspberry Pi 3. The hostname should be pihole
.
Select the pihole
machine in the portal and under machine settings, select Disable key expiry.
Go to your Tailnet's DNS settings and under Nameservers, choose Add nameserver > Custom....
+Enter the Tailnet IP of the Raspberry Pi 3 as the nameserver and click Save.
+Check Override local DNS.
+Now when you connect to your Tailnet from your mobile device, you'll get Pi-hole ad-blocking! 🚀
+Enjoy! ✨🚀
+ + + + + + + + + + + + + +The following playbooks are used to configure Proxmox VE in my Homelab:
+See dbrennand | home-ops - Proxmox for further details.
+Clone the repository:
+ +Create the Python virtual environment:
+ +Verify Ansible can connect to the Proxmox VE servers:
+ +Run the playbook(s):
+ +What is OpenMediaVault?
+OpenMediaVault is the next generation network attached storage (NAS) solution based on Debian Linux. It contains services like SSH, (S)FTP, SMB/CIFS, RSync and many more ready to use.
+This page contains instructions for configuring OpenMediaVault 6 on my NUC prior to running the Ansible playbook.
+On the left menu, navigate to Network > Interfaces
and edit the default interface:
Setting | +Value | +
---|---|
IPv4 Method | +Static | +
IPv4 Address | +192.168.0.3 | +
IPv4 Netmask | +255.255.255.0 | +
IPv4 Gateway | +192.168.0.1 | +
Advanced settings - DNS servers | +192.168.0.2 | +
Advanced settings - Search domains | +net.domain.tld | +
Click Save and then Apply changes.
+On the left menu, navigate to Users > Users
and click Create | Import:
Setting | +Value | +
---|---|
Name | +Enter username | +
Enter email | +|
Password - Confirm Password | +Enter password | +
Shell | +/bin/bash |
+
Groups | +ssh , sudo , users |
+
SSH public keys | +Paste your SSH public key | +
Click Save and then Apply changes.
+On the left menu, navigate to Storage > Disks
and click Scan for new devices.
Under Storage
select File Systems
and click Create | Mount.
Under Device
select your discovered disk and leave the type as EXT4
.
Click Save and then Apply changes.
+Under Storage
select Shared Folders
and click Create:
Create the following shared folders:
+Name | +File System | +Relative Path | +Permissions | +Comment | +
---|---|---|---|---|
appdata |
+Select file system on disk created above | +appdata/ |
+Administrator: read/write, Users: read/write, Others: read-only | +Application Data | +
data |
++ | data/ |
++ | Data | +
downloads |
++ | data/downloads/ |
++ | Downloads | +
jellyfin |
++ | appdata/jellyfin/ |
++ | Jellyfin | +
media |
++ | data/media |
++ | Media | +
movies |
++ | data/media/movies/ |
++ | Movies | +
prowlarr |
++ | appdata/prowlarr/ |
++ | Prowlarr | +
radarr |
++ | appdata/radarr/ |
++ | Radarr | +
sonarr |
++ | appdata/sonarr/ |
++ | Sonarr | +
tv |
++ | data/media/tv/ |
++ | TV | +
Tree structure:
+ +Click Save and then Apply changes for each shared folder.
+On the left menu, navigate to Services
and click SSH.
Disable Permit root login
and Password authentication
.
Enable Public key authentication
.
Click Save and then Apply changes.
+This page contains instructions for configuring the applications deployed by the Ansible playbook.
+Go to Settings > Media Management
and click Show Advanced.
Configure the following settings:
+Tip
+Shoutout to TRaSH Guides for the naming formats and other settings:
+ +Setting | +Value | +
---|---|
Rename Episodes / Rename Movies | +✅ | +
Replace Illegal Characters | +✅ | +
Standard Movie Format | +{Movie CleanTitle} {(Release Year)} [imdbid-{ImdbId}] - {Edition Tags }{[Custom Formats]}{[Quality Full]}{[MediaInfo 3D]}{[MediaInfo VideoDynamicRangeType]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels}][{Mediainfo VideoCodec}]{-Release Group} |
+
Movie Folder Format | +{Movie CleanTitle} ({Release Year}) [imdbid-{ImdbId}] |
+
Standard Episode Format | +{Series TitleYear} - S{season:00}E{episode:00} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRangeType]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels]}{[MediaInfo VideoCodec]}{-Release Group} |
+
Daily Episode Format | +{Series TitleYear} - {Air-Date} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRangeType]}{[Mediainfo AudioCodec}{ Mediainfo AudioChannels]}{[MediaInfo VideoCodec]}{-Release Group} |
+
Anime Episode Format | +{Series TitleYear} - S{season:00}E{episode:00} - {absolute:000} - {Episode CleanTitle} [{Preferred Words }{Quality Full}]{[MediaInfo VideoDynamicRangeType]}[{MediaInfo VideoBitDepth}bit]{[MediaInfo VideoCodec]}[{Mediainfo AudioCodec} { Mediainfo AudioChannels}]{MediaInfo AudioLanguages}{-Release Group} |
+
Series Folder Format | +{Series TitleYear} [tvdbid-{TvdbId}] |
+
Season Folder Format | +Season {season:00} |
+
Multi-Episode Style | +Prefixed Range | +
Delete empty folders | +✅ | +
Use Hardlinks instead of Copy | +✅ | +
Propers and Repacks | +Do not Prefer | +
Click Add Root Folder and configure the path to:
+Sonarr: /data/media/tv
Radarr: /data/media/movies
Go to Settings > Quality
and set the quality definitions from TRaSH guides:
Go to Settings > Download Clients
and click the +
button.
Under Torrents select Transmission and enter the following settings:
+Setting | +Value | +
---|---|
Name | +Transmission |
+
Enable | +✅ | +
Host | +transmission |
+
Port | +9091 |
+
Remove Completed | +✅ | +
Click Save.
+Go to Settings > General
and under Analytics disable the checkbox.
Go to Settings > Indexers
and click Show Advanced.
Click the +
button to add an indexer proxy.
Select Http
and enter the following settings:
Setting | +Value | +
---|---|
Name | +Privoxy |
+
Tags | +privoxy |
+
Host | +transmission |
+
Port | +8118 |
+
Click Save.
+Go to Settings > Apps
and click the +
button to add an application.
Add two applications for Sonarr and Radarr respectively:
+Setting | +Value | +
---|---|
Name | +Sonarr |
+
Sync Level | +Full Sync |
+
Prowlarr Server | +https://prowlarr.net.domain.tld |
+
Sonarr Server | +http://sonarr:8989 |
+
ApiKey | +Sonarr API key from Settings > General |
+
Setting | +Value | +
---|---|
Name | +Radarr |
+
Sync Level | +Full Sync |
+
Prowlarr Server | +https://prowlarr.net.domain.tld |
+
Sonarr Server | +http://radarr:7878 |
+
ApiKey | +Radarr API key from Settings > General |
+
Click Save.
+Go to Settings > Notifications
and click the +
button to add a connection.
Select Telegram
and enter the following settings:
Setting | +Value | +
---|---|
Name | +Telegram |
+
Notification Triggers | +On Health Issue , On Application Update |
+
Bot Token | +Enter Telegram bot token from https://t.me/BotFather |
+
Chat ID | +Enter Telegram chat ID from https://t.me/userinfobot |
+
Click Save.
+Go to Indexers
and click Add Indexer.
Select an indexer from the list and when configuring, make sure to add the privoxy
tag so traffic is routed through the proxy.
Login to Jellyfin and under Administration go to Dashboard > Libraries
.
Click Add Media Library and add one for movies and shows respectively:
+Movies: /data/media/movies
Shows: /data/media/tv
Under Playback
select Intel QuickSync (QSV)
as the hardware acceleration option.
Check Throttle Transcodes and click Save.
+Under Networking
check Allow remote connections to this server
and click Save.
Enjoy! ✨🚀
+ + + + + + + + + + + + + +{"use strict";/*!
+ * escape-html
+ * Copyright(c) 2012-2013 TJ Holowaychuk
+ * Copyright(c) 2015 Andreas Lubbe
+ * Copyright(c) 2015 Tiancheng "Timothy" Gu
+ * MIT Licensed
+ */var Wa=/["'&<>]/;Vn.exports=Ua;function Ua(e){var t=""+e,r=Wa.exec(t);if(!r)return t;var o,n="",i=0,s=0;for(i=r.index;i