Skip to content

Xavopls/Raspberry-kit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Raspberry Toolset

This repository contains all the software that I have running in my Raspberry.
It is an extended/modified fork of this repo. Kudos to my man Pelado :)

Home Page

The Raspberry I am using is: Raspberry Pi 4 Model B (8GB).

Available applications from the Docker compose file

Highly customizable application dashboard

Jellyfin enables you to collect, manage, and stream your media.

Jackett works as a proxy server: it translates queries into tracker-site-specific http queries.

Sonarr is a PVR for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them.

Radarr is a movie collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new movies and will interface with clients and indexers to grab, sort, and rename them.

Bazarr is a companion application to Sonarr and Radarr that manages and downloads subtitles based on your requirements.

Jellyseerr is a request management and media discovery tool built to work with your existing Jellyfin ecosystem.

A Fast, Easy and Free Bittorrent Client.

Samba is a free software re-implementation of the SMB networking protocol for Windows clients.

The Pi-hole® is a DNS sinkhole that protects your devices from unwanted content, without installing any client-side software.

Portainer is a powerful, open source toolset that allows you to easily build and manage containers in Docker, Docker Swarm, Kubernetes and Azure ACI.

A self-hosted monitoring tool.

Rsnapshot is a filesystem snapshot utility based on rsync.

Initial requirements

Add your user (change xavo for your username).

sudo useradd xavo -G sudo

Add this to /etc/sudoers to run sudo without password:

%sudo   ALL=(ALL:ALL) NOPASSWD:ALL

Add this line to /etc/ssh/sshd_config so only your user can use ssh.

echo "AllowUsers xavo" | sudo tee -a /etc/ssh/sshd_config
sudo systemctl enable ssh && sudo systemctl start ssh

Install basic packages:

sudo apt-get update && sudo apt-get install -y \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common \
     vim \
     fail2ban \
     ntfs-3g

Install Docker:

Installing docker the conventional way in this Raspberry architecture, for some reason, it installs the 32 bits version by default.
To install the 64 bit version: Link

Change your Docker config so the temps are stored in the external disk. Assuming the external device is mounted on: /mnt/storage/

sudo vim /etc/default/docker

# Add / Modify this line
export DOCKER_TMPDIR="/mnt/storage/docker-tmp"

Add your user to Docker group:

# Add xavo to docker group
sudo usermod -a -G docker xavo

Mount the disk:

sudo su

# Search the disk we want to mount. (Example: /dev/sda)
fdisk -l

# Check if it is already mounted 
lsblk

# If the MOUNTPOINT header is mounted (Example: in /mnt), run:
umount /dev/sda1 /mnt

# Find the UUID of the disk partition
ls -l /dev/disk/by-uuid/

# Add the mount settings into the '/etc/fstab' file so when the machine is rebooted, it won't change.
# If the file system of your disk is ntfs, in the FILE_SYSTEM argument you'll have to install ntfs-3g and add "ntfs-3g" as label.
echo UUID="{UUID_OF_THE_DISK}" {NEW_DIRECTORY_TO_MOUNT} {FILE_SYSTEM (Example: ext4)} defaults,auto 0 0 | \
     sudo tee -a /etc/fstab

# Read from fstab and mount the disk. (Restarting the machine also works)
mount -a 

Set up

Download this repo, create the env file and modify it. The docker compose reads from .env:

cp .env_example .env

Pi-Hole

The best way to set it up is modifying the IP of the DNS in your router to point the raspberry private IP.
If that's not possible because router's firmware is trash, it has to be done client by client.

Guide

Homepage

To apply my current dashboard config, it is necessary to run this command:

cp configs/homepage/services.example.yaml configs/homepage/services.example

Note that you'll have to modify some fields in the new file to make the dashboard work (IPs, credentials and API keys).

Running it

Run docker:

docker-compose up -d

Using it

Let's assume the Raspberry private address is 192.168.1.23 and we are trying to access it from the LAN.

Samba: Open the file explorer in Windows, press CTRL+L and type \\192.168.1.23 (user: pi, password: password)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published