Skip to content

Commit

Permalink
more compose file additions
Browse files Browse the repository at this point in the history
  • Loading branch information
CheeseLad committed Jul 14, 2024
1 parent d431a24 commit f9c70a0
Show file tree
Hide file tree
Showing 15 changed files with 342 additions and 132 deletions.
8 changes: 8 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"cSpell.words": [
"dcufotosoc",
"Fotosoc",
"Purelymail",
"thecollegeview"
]
}
132 changes: 13 additions & 119 deletions docs/homelab/info.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,142 +4,36 @@

My homelab consists of a Dell Optiplex 5060 running Debian 12 that was saved from an e-waste bin in my college. I have been using it to host various services and applications that I use on a daily basis. Configs for many of these services can be found in the `services` directory.

### Specs
## Specs

- **CPU**: Intel Core i3-8100
- **RAM**: 16GB DDR4
- **Storage**: 256GB NVMe SSD, 750GB HDD, 2TB HDD
- **Storage**: 3TB Total Storage (256GB NVMe SSD, 750GB HDD, 2TB HDD)


## Services (Docker)

- [Homepage](https://gethomepage.dev/latest/)

- [Cloudflared](httpsL//developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation)
- [HedgeDoc](./services/hedgedoc.md)
- [Homepage](./services/homepage.md)
- [Jackett](https://github.com/Jackett/Jackett)
- [MySQL Database](https://www.mysql.com/)
- [Overseerr](https://overseerr.dev/)
- [Paperless-ngx](https://docs.paperless-ngx.com/)
- [PhotoPrism](https://photoprism.app/)
- [Pihole](https://pi-hole.net/)
- [Plex](https://www.plex.tv/)
- [Portainer](https://www.portainer.io/)
- [Qbittorrent](https://www.qbittorrent.org/)
- [Radarr](https://radarr.video/)
- [Sonarr](https://sonarr.tv/)
- [Pi-hole](./services/pi-hole.md)
- [Plex](./services/plex.md)
- [Portainer](./services/portainer.md)
- [Qbittorrent](./services/qbittorrent.md)
- [Radarr](./services/radarr.md)
- [Sonarr](./services/sonarr.md)
- [Speedtest-Tracker](https://github.com/henrywhitaker3/Speedtest-Tracker)
- [Tautulli](https://tautulli.com/)
- [Tautulli](./services/tautulli.md)
- [The Experiment (My Discord Bot)](https://github.com/CheeseLad/the-experiment/)
- [Uptime Kuma](https://github.com/louislam/uptime-kuma)
- [Uptime Kuma](./services/uptime-kuma.md)

## Services (Native)

- [PiVPN](https://www.pivpn.io/)
- [Samba](https://www.samba.org/)
- [Rclone](https://rclone.org/)

## Services (VPS)

- [Flame](https://home.jakefarrell.ie/)
- [Zipline](http://i.jakefarrell.ie/)
- [Plausible](http://plausible.jakefarrell.ie/)
- [Shlink](http://shlink.jakefarrell.ie/)
- [Personal Website](http://www.jakefarrell.ie/)
- [Portainer](https://portainer.jakefarrell.ie/)

## College Society Projects

- [DCU Media Production Society](https://dcumps.ie/)
- [The College View](https://www.thecollegeview.ie/)

## Old Readme (Raspberry Pi)

Currently running everything on a Raspberry Pi 2 Model B

Planned Services:
- Personal Website Hosting
- HedgeDoc (CodiMD)
- PhotoPrism (With new hardware)
- [zipline](https://github.com/diced/zipline)


# Software & Utilities:

## Starting Off: Update System

```Shell
sudo apt-get update
sudo apt-get upgrade
```

## Hard Drive: Samba

```Shell
sudo apt-get install samba samba-common-bin
sudo nano /etc/samba/smb.conf
```

Mounting Drive
```Shell
sudo apt install ntfs-3g
sudo mkdir -p /mnt/usb1
sudo chown -R pi:pi /mnt/usb1
sudo nano /etc/fstab
```

Add in stored drive information

```Shell
sudo umount /dev/sda1
sudo mount -a
```

Load saved shares from file

```Shell
sudo smbpasswd -a pi
sudo systemctl restart smbd
```

## VPN: PiVPN

Currently I am using PiVPN to connect my laptop and mobile devices to my homelab. Can be easily installed with the following command:

```Shell
curl -L https://install.pivpn.io | bash
```

Config:
- **VPN Protocol**: WireGuard
- **DNS**: Google DNS

## DNS Filter: Pihole

```Shell
curl -sSL https://install.pi-hole.net | bash
```
Config:
- **DNS**: Google DNS

Access:
- Pi-hole can be accessed here (locally): [http://raspberrypi.local/admin/login.php](http://raspberrypi.local/admin/login.php)

## Media Library: Plex

```Shell
sudo apt-get install apt-transport-https

curl https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | sudo tee /usr/share/keyrings/plex-archive-keyring.gpg >/dev/null

echo deb [signed-by=/usr/share/keyrings/plex-archive-keyring.gpg] https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

sudo apt-get update

sudo apt install plexmediaserver
```

Access :
- Plex can be accessed here (locally): [http://raspberrypi.local:32400/web/index.html](http://raspberrypi.local:32400/web/index.html)

## Photo Backup
- Android: [FolderSync](https://play.google.com/store/apps/details?id=dk.tacit.android.foldersync.lite&hl=en_IE&gl=US)
- iOS: [PhotoSync](https://apps.apple.com/us/app/photosync-transfer-photos/id415850124)
53 changes: 53 additions & 0 deletions docs/homelab/services/hedgedoc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# HedgeDoc

## Description

HedgeDoc (formerly known as CodiMD) is an open-source, web-based, self-hosted, collaborative markdown editor.

You can use it to easily collaborate on notes, graphs and even presentations in real-time. All you need to do is to share your note-link to your co-workers and they’re ready to go.

## Docker Compose File

```yaml
services:
hedgedoc-database:
image: postgres:13.4-alpine
hostname: hedgedoc-database
container_name: hedgedoc-database
environment:
- POSTGRES_USER=hedgedoc
- POSTGRES_PASSWORD=$POSTGRES_PASSWORD
- POSTGRES_DB=hedgedoc
volumes:
- database:/var/lib/postgresql/data
restart: unless-stopped
hedgedoc:
image: quay.io/hedgedoc/hedgedoc:latest
hostname: hedgedoc
container_name: hedgedoc
environment:
- CMD_DB_URL=$CMD_DB_URL
- CMD_DOMAIN=$CMD_DOMAIN
- CMD_IMAGE_UPLOAD_TYPE=filesystem
- CMD_IMAGE_UPLOAD_PATH=/hedgedoc/public/uploads
- CMD_EMAIL=true
- CMD_ALLOW_EMAIL_REGISTER=true
- CMD_PROTOCOL_USESSL=true
- CMD_SESSION_SECRET=$CMD_SESSION_SECRET

volumes:
- ./uploads:/hedgedoc/public/uploads
ports:
- "3000:3000"
restart: unless-stopped
depends_on:
- hedgedoc-database
volumes:
database:
uploads:
```
## Notes
- Access HedgeDoc at `https://md.jakefarrell.ie`
- Utilises Cloudflare Zero Trust for security and access control, allowing for secure access to HedgeDoc from anywhere.
4 changes: 2 additions & 2 deletions docs/homelab/services/homepage.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Homepage

A modern, fully static, fast, secure fully proxied, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. Easily configured via YAML files or through docker label discovery.
## Description

My Homepage is a custom dashboard that I use to access all of my services in one place. It is a fully static, fast, secure, and highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. It is easily configured via YAML files or through docker label discovery.
A modern, fully static, fast, secure fully proxied, highly customizable application dashboard with integrations for over 100 services and translations into multiple languages. Easily configured via YAML files or through docker label discovery.

## Docker Compose File

Expand Down
38 changes: 38 additions & 0 deletions docs/homelab/services/pi-hole.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Pi-Hole

## Description

Pi-hole is a network-wide ad blocker. It blocks ads on any device and improves overall network performance.

## Docker Compose File

```yaml
services:
pihole:
container_name: pihole
hostname: pihole
image: pihole/pihole:latest
ports:
- "53:53/tcp"
- "53:53/udp"
- "67:67/udp"
- "3002:80/tcp"
environment:
TZ: 'Europe/Dublin'
PIHOLE_DNS_: '8.8.8.8;8.8.4.4'
WEBTHEME: 'default-darker'
volumes:
- './etc-pihole:/etc/pihole'
- './etc-dnsmasq.d:/etc/dnsmasq.d'
cap_add:
- NET_ADMIN
restart: unless-stopped
env_file:
- path: /home/jake/services/pi-hole/.env

```

## Notes

- Access Pi-Hole at `http://cheeselab:3002/admin` (Local Network Only)
- Per device configuration required to use Pi-Hole as a DNS server as to make it optional for devices on the network.
51 changes: 51 additions & 0 deletions docs/homelab/services/plex.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Plex

## Description

Plex is a media server that allows you to stream your media collection to any device. It is a powerful tool that can transcode media on-the-fly to ensure compatibility with any device.

## Docker Compose File

```yaml

networks:
default:
driver: bridge

services:
plex:
image: plexinc/pms-docker:public
container_name: plex
restart: unless-stopped
networks:
- default
ports:
- "32400:32400/tcp"
- "3005:3005/tcp"
- "8324:8324/tcp"
- "32469:32469/tcp"
- "1900:1900/udp"
- "32410:32410/udp"
- "32412:32412/udp"
- "32413:32413/udp"
- "32414:32414/udp"
devices:
- /dev/dri:/dev/dri
volumes:
- $DOCKERDIR/appdata/plex:/config
- /mnt/usb1/Plex:/media
- /mnt/usb2/Plex:/media2
- /dev/shm:/transcode
environment:
TZ: $TZ
HOSTNAME: "dockerPlex"
PLEX_UID: $PUID
PLEX_GID: $PGID
ADVERTISE_IP: http://$SERVER_IP:32400/
ALLOWED_NETWORKS: $LOCAL_NETWORK

```

## Notes

- Access Plex at `http://cheeselab:32400/web` (Local Network Only)
7 changes: 5 additions & 2 deletions docs/homelab/services/portainer.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
# Portainer

## Description

Portainer Community Edition is a lightweight service delivery platform for containerized applications that can be used to manage Docker, Swarm, Kubernetes and ACI environments. It is designed to be as simple to deploy as it is to use. The application allows you to manage all your orchestrator resources (containers, images, volumes, networks and more) through a ‘smart’ GUI and/or an extensive API.


## Docker Compose File

```yaml
version: "3"
services:
portainer:
container_name: portainer
Expand All @@ -23,5 +26,5 @@ volumes:
## Notes
- Access Portainer at `https://192.168.1.3:9443` (Local Network Only)
- Access Portainer at `https://cheeselab:9443` (Local Network Only)
- Web UI only works with HTTPS, so you need to use `https://` instead of `http://`, certificate is not required.
5 changes: 0 additions & 5 deletions docs/homelab/services/pterodactyl.md

This file was deleted.

33 changes: 33 additions & 0 deletions docs/homelab/services/qbittorrent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Qbittorrent

## Description

Qbittorrent is a free, open-source, and cross-platform BitTorrent client. It is lightweight, fast, and easy to use. Qbittorrent is available for Windows, macOS, Linux, OS/2, and FreeBSD.

## Docker Compose File

```yaml
services:
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:4.6.0
container_name: qbittorrent
hostname: qbittorrent
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- WEBUI_PORT=3001
- TORRENTING_PORT=6881
volumes:
- ~/storage/qbittorrent:/config
- ~/downloads/qbittorrent:/downloads
ports:
- 3001:3001
- 6881:6881
- 6881:6881/udp
restart: unless-stopped
```
## Notes
- Access Qbittorrent at `http://cheeselab:3001` (Local Network Only)
Loading

0 comments on commit f9c70a0

Please sign in to comment.