Last active
May 7, 2021 18:43
-
-
Save rroethof/bdeba5f29d17d197e9476b8f3a54e396 to your computer and use it in GitHub Desktop.
mediabox-docker
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # /etc/update-motd.d/20-sysinfo | |
| # get load averages | |
| IFS=" " read LOAD1 LOAD5 LOAD15 <<<$(cat /proc/loadavg | awk '{ print $1,$2,$3 }') | |
| # get free memory | |
| IFS=" " read USED FREE TOTAL <<<$(free -htm | grep "Mem" | awk {'print $3,$4,$2'}) | |
| # get processes | |
| PROCESS=`ps -eo user=|sort|uniq -c | awk '{ print $2 " " $1 }'` | |
| PROCESS_ALL=`echo "$PROCESS"| awk {'print $2'} | awk '{ SUM += $1} END { print SUM }'` | |
| PROCESS_ROOT=`echo "$PROCESS"| grep root | awk {'print $2'}` | |
| PROCESS_USER=`echo "$PROCESS"| grep -v root | awk {'print $2'} | awk '{ SUM += $1} END { print SUM }'` | |
| # get processors | |
| PROCESSOR_NAME=`grep "model name" /proc/cpuinfo | cut -d ' ' -f3- | awk {'print $0'} | head -1` | |
| PROCESSOR_COUNT=`grep -ioP 'processor\t:' /proc/cpuinfo | wc -l` | |
| W="\e[0;39m" | |
| G="\e[1;32m" | |
| echo -e " | |
| ${W}system info: | |
| $W Hostname....: $W`hostname -f` | |
| $W Distro......: $W`cat /etc/*release | grep "PRETTY_NAME" | cut -d "=" -f 2- | sed 's/"//g'` | |
| $W Kernel......: $W`uname -sr` | |
| $W Uptime......: $W`uptime -p` | |
| $W Load........: $G$LOAD1$W (1m), $G$LOAD5$W (5m), $G$LOAD15$W (15m) | |
| $W Processes...:$W $G$PROCESS_ROOT$W (root), $G$PROCESS_USER$W (user), $G$PROCESS_ALL$W (total) | |
| $W CPU.........: $W$PROCESSOR_NAME ($G$PROCESSOR_COUNT$W vCPU) | |
| $W Memory......: $G$USED$W used, $G$FREE$W free, $G$TOTAL$W total$W" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # /etc/update-motd.d/35-diskspace | |
| # config | |
| max_usage=90 | |
| bar_width=50 | |
| # colors | |
| white="\e[39m" | |
| green="\e[1;32m" | |
| red="\e[1;31m" | |
| dim="\e[2m" | |
| undim="\e[0m" | |
| # disk usage: ignore zfs, squashfs & tmpfs | |
| mapfile -t dfs < <(df -H -x zfs -x squashfs -x tmpfs -x devtmpfs -x overlay --output=target,pcent,size | tail -n+2) | |
| printf "\ndisk usage:\n" | |
| for line in "${dfs[@]}"; do | |
| # get disk usage | |
| usage=$(echo "$line" | awk '{print $2}' | sed 's/%//') | |
| used_width=$((($usage*$bar_width)/100)) | |
| # color is green if usage < max_usage, else red | |
| if [ "${usage}" -ge "${max_usage}" ]; then | |
| color=$red | |
| else | |
| color=$green | |
| fi | |
| # print green/red bar until used_width | |
| bar="[${color}" | |
| for ((i=0; i<$used_width; i++)); do | |
| bar+="=" | |
| done | |
| # print dimmmed bar until end | |
| bar+="${white}${dim}" | |
| for ((i=$used_width; i<$bar_width; i++)); do | |
| bar+="=" | |
| done | |
| bar+="${undim}]" | |
| # print usage line & bar | |
| echo "${line}" | awk '{ printf("%-31s%+3s used out of %+4s\n", $1, $2, $3); }' | sed -e 's/^/ /' | |
| echo -e "${bar}" | sed -e 's/^/ /' | |
| done |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # /etc/update-motd.d/40-services | |
| # set column width | |
| COLUMNS=3 | |
| # colors | |
| green="\e[1;32m" | |
| red="\e[1;31m" | |
| undim="\e[0m" | |
| services=("fail2ban" "docker" "exim4") | |
| # sort services | |
| IFS=$'\n' services=($(sort <<<"${services[*]}")) | |
| unset IFS | |
| service_status=() | |
| # get status of all services | |
| for service in "${services[@]}"; do | |
| service_status+=($(systemctl is-active "$service")) | |
| done | |
| out="" | |
| for i in ${!services[@]}; do | |
| # color green if service is active, else red | |
| if [[ "${service_status[$i]}" == "active" ]]; then | |
| out+="${services[$i]}:,${green}${service_status[$i]}${undim}," | |
| else | |
| out+="${services[$i]}:,${red}${service_status[$i]}${undim}," | |
| fi | |
| # insert \n every $COLUMNS column | |
| if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then | |
| out+="\n" | |
| fi | |
| done | |
| out+="\n" | |
| printf "\nservices:\n" | |
| printf "$out" | column -ts $',' | sed -e 's/^/ /' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # /etc/update-motd.d/50-fail2ban | |
| logfile='/var/log/fail2ban.log*' | |
| mapfile -t lines < <(grep -hioP '(\[[a-z-]+\]) (ban|unban)' $logfile | sort | uniq -c) | |
| jails=($(printf -- '%s\n' "${lines[@]}" | grep -oP '\[\K[^\]]+' | sort | uniq)) | |
| out="" | |
| for jail in ${jails[@]}; do | |
| bans=$(printf -- '%s\n' "${lines[@]}" | grep -iP "[[:digit:]]+ \[$jail\] ban" | awk '{print $1}') | |
| unbans=$(printf -- '%s\n' "${lines[@]}" | grep -iP "[[:digit:]]+ \[$jail\] unban" | awk '{print $1}') | |
| bans=${bans:-0} # default value | |
| unbans=${unbans:-0} # default value | |
| diff=$(($bans-$unbans)) | |
| out+=$(printf "$jail, %+3s bans, %+3s unbans, %+3s active" $bans $unbans $diff)"\n" | |
| done | |
| printf "\nfail2ban status (monthly):\n" | |
| printf "$out" | column -ts $',' | sed -e 's/^/ /' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # /etc/update-motd.d/50-fail2ban-status | |
| # fail2ban-client status to get all jails, takes about ~70ms | |
| jails=($(fail2ban-client status | grep "Jail list:" | sed "s/ //g" | awk '{split($2,a,",");for(i in a) print a[i]}')) | |
| out="jail,failed,total,banned,total\n" | |
| for jail in ${jails[@]}; do | |
| # slow because fail2ban-client has to be called for every jail (~70ms per jail) | |
| status=$(fail2ban-client status ${jail}) | |
| failed=$(echo "$status" | grep -ioP '(?<=Currently failed:\t)[[:digit:]]+') | |
| totalfailed=$(echo "$status" | grep -ioP '(?<=Total failed:\t)[[:digit:]]+') | |
| banned=$(echo "$status" | grep -ioP '(?<=Currently banned:\t)[[:digit:]]+') | |
| totalbanned=$(echo "$status" | grep -ioP '(?<=Total banned:\t)[[:digit:]]+') | |
| out+="$jail,$failed,$totalfailed,$banned,$totalbanned\n" | |
| done | |
| printf "\nfail2ban status:\n" | |
| printf $out | column -ts $',' | sed -e 's/^/ /' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # /etc/update-motd.d/60-docker | |
| # set column width | |
| COLUMNS=2 | |
| # colors | |
| green="\e[1;32m" | |
| red="\e[1;31m" | |
| undim="\e[0m" | |
| mapfile -t containers < <(docker ps -a --format '{{.Names}}\t{{.Status}}' | awk '{ print $1,$2 }') | |
| out="" | |
| for i in "${!containers[@]}"; do | |
| IFS=" " read name status <<< ${containers[i]} | |
| # color green if service is active, else red | |
| if [[ "${status}" == "Up" ]]; then | |
| out+="${name}:,${green}${status,,}${undim}," | |
| else | |
| out+="${name}:,${red}${status,,}${undim}," | |
| fi | |
| # insert \n every $COLUMNS column | |
| if [ $((($i+1) % $COLUMNS)) -eq 0 ]; then | |
| out+="\n" | |
| fi | |
| done | |
| out+="\n" | |
| printf "\ndocker status:\n" | |
| printf "$out" | column -ts $',' | sed -e 's/^/ /' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| version: "3.6" | |
| services: | |
| traefik: | |
| hostname: traefik | |
| image: traefik:latest | |
| container_name: traefik | |
| restart: always | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - default | |
| - traefik_proxy | |
| ports: | |
| - "80:80" | |
| - "443:443" | |
| - "8080:8080" | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=traefik" | |
| - "traefik.frontend.rule=Host:traefik.${DOMAINNAME}" | |
| - "traefik.port=8080" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| - "traefik.frontend.auth.basic.users=${HTTP_USERNAME}:${HTTP_PASSWORD}" | |
| volumes: | |
| - /var/run/docker.sock:/var/run/docker.sock:ro | |
| - ${USERDIR}/dockers/traefik:/etc/traefik | |
| - ${USERDIR}/dockers/shared:/shared | |
| portainer: | |
| image: portainer/portainer | |
| container_name: portainer | |
| restart: always | |
| command: -H unix:///var/run/docker.sock | |
| ports: | |
| - "9000:9000" | |
| networks: | |
| - traefik_proxy | |
| volumes: | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| - ${USERDIR}/dockers/portainer/data:/data | |
| - ${USERDIR}/dockers/shared:/shared | |
| environment: | |
| - TZ=${TZ} | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=portainer" | |
| - "traefik.frontend.rule=Host:portainer.${DOMAINNAME}" | |
| - "traefik.port=9000" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| grafana: | |
| container_name: grafana | |
| hostname: grafana | |
| image: rroethof/grafana:1.0 | |
| networks: | |
| - traefik_proxy | |
| links: | |
| - influxdb:influxdb | |
| environment: | |
| GF_SECURITY_ADMIN_USER: admin | |
| GF_SECURITY_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD} | |
| GF_SECURITY_SECRET_KEY: ${GF_SECURITY_SECRET_KEY} | |
| GF_USERS_ALLOW_SIGN_UP: "false" | |
| GF_USERS_ALLOW_ORG_CREATE: "false" | |
| GF_AUTH_ANONYMOUS_ENABLED: "true" | |
| GF_AUTH_ANONYMOUS_ORG_NAME: "Main Org." | |
| GF_DASHBOARDS_JSON_ENABLED: "true" | |
| GF_DASHBOARDS_JSON_PATH: /opt/grafana | |
| restart: always | |
| volumes: | |
| - ${USERDIR}/dockers/grafana/data:/var/lib/grafana | |
| - ${USERDIR}/dockers/grafana/logs:/var/log/grafana | |
| - ${USERDIR}/dockers/grafana/plugins:/var/lib/grafana/plugins | |
| - ${USERDIR}/dockers/grafana/opt:/opt/grafana | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=grafana" | |
| - "traefik.frontend.rule=Host:grafana.${DOMAINNAME}" | |
| - "traefik.port=3000" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| influxdb: | |
| container_name: influxdb | |
| hostname: influxdb | |
| image: rroethof/influxdb:1.0 | |
| networks: | |
| - default | |
| - traefik_proxy | |
| restart: always | |
| environment: | |
| INFLUX_DATABASE: "telegraf" | |
| INLFUX_ADMIN_USER: "grafana" | |
| INFLUX_ADMIN_PASS: "grafana" | |
| volumes: | |
| - ${USERDIR}/dockers/influxdb:/var/lib/influxdb | |
| labels: | |
| - "traefik.enable=false" | |
| telegraf: | |
| container_name: telegraf | |
| hostname: telegraf | |
| image: rroethof/telegraf:1.0 | |
| networks: | |
| - default | |
| - traefik_proxy | |
| links: | |
| - influxdb:influxdb | |
| environment: | |
| HOST_NAME: "telegraf" | |
| INFLUXDB_HOST: "influxdb" | |
| INFLUXDB_PORT: "8086" | |
| DATABASE: "telegraf" | |
| restart: always | |
| tty: true | |
| volumes: | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| labels: | |
| - "traefik.enable=false" | |
| privileged: true | |
| phpmyadmin: | |
| hostname: phpmyadmin | |
| container_name: phpmyadmin | |
| image: phpmyadmin/phpmyadmin | |
| restart: always | |
| networks: | |
| - default | |
| - traefik_proxy | |
| links: | |
| - mariadb:db | |
| environment: | |
| - PMA_HOST=mariadb | |
| - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=phpmyadmin" | |
| - "traefik.frontend.rule=Host:phpmyadmin.${DOMAINNAME}" | |
| - "traefik.port=80" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| mariadb: | |
| image: "linuxserver/mariadb" | |
| container_name: "mariadb" | |
| hostname: mariadb | |
| volumes: | |
| - ${USERDIR}/dockers/mariadb:/config | |
| networks: | |
| - default | |
| ports: | |
| - 3306:3306 | |
| restart: always | |
| environment: | |
| - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| conpot_ipmi: | |
| container_name: honeypot_conpot_ipmi | |
| restart: always | |
| environment: | |
| - CONPOT_CONFIG=/etc/conpot/conpot.cfg | |
| - CONPOT_JSON_LOG=/var/log/conpot/conpot_ipmi.json | |
| - CONPOT_LOG=/var/log/conpot/conpot_ipmi.log | |
| - CONPOT_TEMPLATE=ipmi | |
| - CONPOT_TMP=/tmp/conpot | |
| tmpfs: | |
| - /tmp/conpot:uid=${PUID},gid=${PGID} | |
| networks: | |
| - conpot_local_ipmi | |
| ports: | |
| - "623:623" | |
| image: "dtagdevsec/conpot:1903" | |
| read_only: true | |
| volumes: | |
| - ${USERDIR}/dockers/conpot/log:/var/log/conpot | |
| user: ${PUID} | |
| # Cowrie service | |
| cowrie: | |
| container_name: honeypot_cowrie | |
| restart: always | |
| tmpfs: | |
| - /tmp/cowrie:uid=${PUID},gid=${PGID} | |
| - /tmp/cowrie/data:uid=${PUID},gid=${PGID} | |
| networks: | |
| - default | |
| - cowrie_local | |
| ports: | |
| - "22:22" | |
| - "23:23" | |
| image: "dtagdevsec/cowrie:1903" | |
| read_only: true | |
| volumes: | |
| - ${USERDIR}/dockers/cowrie/downloads:/home/cowrie/cowrie/dl | |
| - ${USERDIR}/dockers/cowrie/keys:/home/cowrie/cowrie/etc | |
| - ${USERDIR}/dockers/cowrie/etc/cowrie.cfg:/home/cowrie/cowrie/etc/cowrie.cfg | |
| - ${USERDIR}/dockers/cowrie/log:/home/cowrie/cowrie/log | |
| - ${USERDIR}/dockers/cowrie/log_tty:/home/cowrie/cowrie/log/tty | |
| user: ${PUID} | |
| tautulli: | |
| hostname: tautulli | |
| image: linuxserver/tautulli | |
| container_name: tautulli | |
| restart: always | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=tautulli" | |
| - "traefik.frontend.rule=Host:plexstats.${DOMAINNAME}" | |
| - "traefik.port=8181" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/tautulli/config:/config | |
| - ${USERDIR}/dockers/tautulli/logs:/logs:ro | |
| - ${USERDIR}/dockers/shared:/shared | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| ombi: | |
| hostname: ombi | |
| image: linuxserver/ombi | |
| restart: always | |
| container_name: ombi | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=ombi" | |
| - "traefik.frontend.rule=Host:requests.${DOMAINNAME}" | |
| - "traefik.port=3579" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/ombi:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| hydra: | |
| hostname: hydra | |
| image: linuxserver/hydra | |
| restart: always | |
| container_name: hydra | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=hydra" | |
| - "traefik.frontend.rule=Host:hydra.${DOMAINNAME}" | |
| - "traefik.port=5075" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/hydra:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads:/downloads | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| jackett: | |
| hostname: jackett | |
| image: linuxserver/jackett | |
| restart: always | |
| container_name: jackett | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=jackett" | |
| - "traefik.frontend.rule=Host:jackett.${DOMAINNAME}" | |
| - "traefik.port=9117" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - "/etc/localtime:/etc/localtime:ro" | |
| - ${USERDIR}/dockers/jackett:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads/completed:/downloads | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| transmission: | |
| hostname: transmission | |
| image: linuxserver/transmission | |
| restart: always | |
| container_name: transmission | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| ports: | |
| - 51413:51413 | |
| - 51413:51413/udp | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=transmission" | |
| - "traefik.frontend.rule=Host:torrent.${DOMAINNAME}" | |
| - "traefik.port=9091" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/transmission:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads:/downloads | |
| - /data/watch:/watch | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| - UMASK_SET=002 | |
| sabnzbd: | |
| hostname: sabnzbd | |
| image: linuxserver/sabnzbd | |
| restart: always | |
| container_name: sabnzbd | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=sabnzbd" | |
| - "traefik.frontend.rule=Host:sabnzbd.${DOMAINNAME}" | |
| - "traefik.port=8080" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/sabnzbd:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads/completed:/downloads | |
| - /data/Downloads/incomplete:/incomplete-downloads | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| radarr: | |
| hostname: radarr | |
| image: linuxserver/radarr | |
| restart: always | |
| container_name: radarr | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=radarr" | |
| - "traefik.frontend.rule=Host:radarr.${DOMAINNAME}" | |
| - "traefik.port=7878" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - "/etc/localtime:/etc/localtime:ro" | |
| - ${USERDIR}/dockers/radarr:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads/completed:/downloads | |
| - /data/movies:/movies | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| couchpotato: | |
| hostname: couchpotato | |
| image: linuxserver/couchpotato | |
| restart: always | |
| container_name: couchpotato | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=couchpotato" | |
| - "traefik.frontend.rule=Host:couchpotato.${DOMAINNAME}" | |
| - "traefik.port=5050" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/couchpotato:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads/completed:/downloads | |
| - /data/movies:/movies | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| - UMASK_SET=002 | |
| sonarr: | |
| hostname: sonarr | |
| image: linuxserver/sonarr | |
| restart: always | |
| container_name: sonarr | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=sonarr" | |
| - "traefik.frontend.rule=Host:sonarr.${DOMAINNAME}" | |
| - "traefik.port=8989" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - "/etc/localtime:/etc/localtime:ro" | |
| - ${USERDIR}/dockers/sonarr:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads/completed:/downloads | |
| - /data/tvshows:/tv | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| - UMASK_SET=002 | |
| sickrage: | |
| hostname: sickrage | |
| image: linuxserver/sickrage | |
| restart: always | |
| container_name: sickrage | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=sickrage" | |
| - "traefik.frontend.rule=Host:sickrage.${DOMAINNAME}" | |
| - "traefik.port=8081" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/sickrage:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/Downloads/completed:/downloads | |
| - /data/tvshows:/tv | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| plexms: | |
| hostname: plexms | |
| image: linuxserver/plex | |
| restart: always | |
| container_name: plexms | |
| domainname: ${DOMAINNAME} | |
| networks: | |
| - traefik_proxy | |
| 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" | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=plexms" | |
| - "traefik.frontend.rule=Host:plex.${DOMAINNAME}" | |
| - "traefik.port=8081" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/plexms:/config | |
| - ${USERDIR}/dockers/shared:/shared | |
| - /data/plex_tmp:/transcode | |
| - /data:/data | |
| environment: | |
| - TZ=${TZ} | |
| - HOSTNAME="Fam Roethof Docker Plex" | |
| - PLEX_UID=${PUID} | |
| - PLEX_GID=${PGID} | |
| iperf: | |
| container_name: iperf | |
| image: networkstatic/iperf3 | |
| command: -s | |
| restart: unless-stopped | |
| network_mode: host | |
| netdata: | |
| container_name: netdata | |
| image: titpetric/netdata | |
| restart: unless-stopped | |
| cap_add: | |
| - SYS_PTRACE | |
| network_mode: host | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| volumes: | |
| - ${USERDIR}/dockers/netdata:/etc/netdata | |
| - /proc:/host/proc:ro | |
| - /sys:/host/sys:ro | |
| - /var/run/docker.sock:/var/run/docker.sock | |
| dokuwiki: | |
| hostname: dokuwiki | |
| image: bitnami/dokuwiki | |
| container_name: dokuwiki | |
| restart: always | |
| networks: | |
| - traefik_proxy | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.backend=dokuwiki" | |
| - "traefik.frontend.rule=Host:wiki.${DOMAINNAME}" | |
| - "traefik.port=80" | |
| - "traefik.docker.network=traefik_proxy" | |
| - "traefik.frontend.headers.SSLRedirect=true" | |
| - "traefik.frontend.headers.STSSeconds=315360000" | |
| - "traefik.frontend.headers.browserXSSFilter=true" | |
| - "traefik.frontend.headers.contentTypeNosniff=true" | |
| - "traefik.frontend.headers.forceSTSHeader=true" | |
| - "traefik.frontend.headers.SSLHost=${DOMAINNAME}" | |
| - "traefik.frontend.headers.STSIncludeSubdomains=true" | |
| - "traefik.frontend.headers.STSPreload=true" | |
| - "traefik.frontend.headers.frameDeny=true" | |
| volumes: | |
| - ${USERDIR}/dockers/dokuwiki:/bitnami | |
| environment: | |
| - PUID=${PUID} | |
| - PGID=${PGID} | |
| - TZ=${TZ} | |
| networks: | |
| traefik_proxy: | |
| external: | |
| name: traefik_proxy | |
| conpot_local_ipmi: | |
| external: | |
| name: honeypots_conpot_local_ipmi | |
| cowrie_local: | |
| external: | |
| name: honeypots_cowrie_local | |
| default: | |
| driver: bridge |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment