Skip to content
/ docker Public

Various docker containers for debian server

Notifications You must be signed in to change notification settings

Otto-G/docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Home Server

Operating System: Debian 10 "Buster"

Hardware:

Major Programs:

  • Cockpit
    • Web based server admin page
  • Cockpit-zfs-manager
    • Plug-in for Cockpit that allows managing of ZFS pools
  • Traefik
    • Reverse proxy
  • Docker
    • Container system to hold different systems. Part of the main way that the system is organized.

Installed programs:

sudo aptitude install docker lm-sensors hddtemp unp curl apache2-utils samba cockpit-docker smartmontools wakeonlan
sudo aptitude install -t buster-backports cockpit dkms spl-dkms zfs-dkms zfsutils-linux

ZFS Issues

When attaching/dealing with ZFS drives. It is best to use the GUID since the path that is actually attached to the pool is not going to be the normal part of the drive, but rather one of the partitions. It's possible to get the GUID by running sudo zdb. The output will have something similar to what's below and will show the guid along with the actual path that zfs is using as the drive path.

This post was helpful

$ sudo zdb

type: 'disk'
id: 1
guid: 11376827263620761442
path: '/dev/disk/by-id/wwn-0x5000cca22cc0a9e3-part2'
whole_disk: 1
DTL: 160
create_txg: 4
com.delphix:vdev_zap_leaf: 152

DuckDNS

It is possible to reduce the load on DuckDNS by using the below script to only send an update when your ip address actually changes.

IP_ADDRESS=$(curl "https://checkip.amazonaws.com" | head -1) &&  # No space is a requirement to set the variable
  [ $IP_ADDRESS = "$(cat "ipaddr.txt")" ] ||  # Compare the returned ip address with the old ipaddress only proceed if no match  
  curl "https://www.duckdns.org/update?domains=$MYADDR&token=$MYTOKEN&ip" &&  # Send the update to duckdns  
  echo $IP_ADDRESS > ipaddr.txt  # Store the new ipaddress in the file  
  • Make sure to replace $MYADDR, and $MYTOKEN with the address prefix and token from duckDNS or set them as variables

Docker Images

  1. Syncthing
    • Syncthing main page
    • File syncing between devices
  2. Plex
    • Home media server
  3. Transmission
  4. GitLab
  5. Home Assistant
    • Config is saved here
  6. Traefik
  7. Calibre

Structure

Internal Only Tools External Tools
Syncthing Plex
Transmission
GitLab
HomeAssistant
Calibre

Since all external tools will be routed through duckDNS, Traefik will handle the reverse proxying to allow easy access to all of the different web services. One thing to keep in mind is that all of the tools that are going to be running together under Traefik need to be in bridge mode so that they work properly. There might be a way around that issue, but I couldn't find it.

Running Syncthing as part of the docker compose file helps when it comes time to perform an update since I can just run docker-compose pull and docker-compose up -d to update and bring up all of the updated services.
Since this is so much easier I'll keep everything together. Syncthing will still be kept un-managed by traefik since there is no need to be able to work with it remotely.

About

Various docker containers for debian server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published