This article is
95% complete
To Do:
Figure out and add custom slider to show content (jellyfin now playing for example)
To get this layout, follow the code below
//Add this to CustomHtml 1 or 2
<div id=”customHTML” class=”row”>
<center>
//This means split the viewport into 2 columns
<div class=”col-lg-6″>
<div class=”panel panel-default”>
<div class=”panel-heading bg-dark p-t-10 p-b-10″>
<span class=”pull-left m-t-5″>
//This makes the icon clickable to a new window
<a href=”http://SOURCE/” target=”_blank”>
//The clickable icon for the header
<img class=”homepageImageTitle” data-src=”SOURCE_IMAGE1.png” src=”SOURCE_IMAGE1.png” data-was-processed=”true”>
//Title that will appear in the header for this group
<span lang=”en”>SOURCE1_TITLE</span>
</a>
</span>
<div class=”clearfix”></div>
</div>
<center>
//The dimensions throughout are because I used Kerberos.io, Weather and Monitorr
<iframe src=”https://SOURCE1/APP” width=”640″ height=”480″ scrolling=”no” padding=”0″ frameBorder=”0″ name=”APPNAME”></iframe></center>
</div>
</div>
</center>
// Start Panel 2
<div class=”col-lg-6″>
<div class=”panel panel-default”>
<div class=”panel-heading bg-dark p-t-10 p-b-10″>
<span class=”pull-left m-t-5″>
<img class=”homepageImageTitle” data-src=”SOURCE_IMAGE2.png” src=”SOURCE_IMAGE2.png” data-was-processed=”true”>
<span lang=”en”>SOURCE2_TITLE</span>
</span>
<div class=”clearfix”></div>
</div>
<center>
<a class=”weatherwidget-io” height=”640″ href=”https://forecast7.com/YOUR_CUSTOM_INFO_HERE” data-label_1=”CITY_NAME” data-label_2=”WEATHER” data-theme=”dark”>CITY WEATHER</a>
<script>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=’https://weatherwidget.io/js/widget.min.js’;fjs.parentNode.insertBefore(js,fjs);}}(document,’script’,’weatherwidget-io-js’);
</script>
<br> //To align the boxes
// Start Panel 3
<div class=”panel panel-default”>
<div class=”panel-heading bg-dark p-t-10 p-b-10″>
<span class=”pull-left m-t-5″>
<img class=”homepageImageTitle” data-src=”SOURCE_IMAGE3.png” src=”SOURCE_IMAGE3.png” data-was-processed=”true”>
<span lang=”en”>SOURCE3_TITLE</span>
</span>
<div class=”clearfix”></div>
</div>
<iframe src=”https://SOURCE3/” height=”288″ width=”480″ scrolling=”no” frameBorder=”0″></iframe>
</div></center>
</div>
</div>
</div> //More aligning
This is my custom overrides yaml
My mnt’s are to my NAS that I made NFS shares to instead of CIFS/SMB as I found them to be faster.
Each container has it’s own persistent directory (keep settings across updates) instead of using containers. This is set manually at times, but also in DockStarter with the parameter “${DOCKERCONFDIR}
” which is set to “/home/miniserv/.config/appdata/” (miniserv being the username in this case)
services:
jackett:
image: ghcr.io/linuxserver/jackett:amd64-development
hostname: ${DOCKERHOSTNAME}
ports:
- ${JACKETT_PORT_9117}:9117
container_name: jackett
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
- DOCKER_MODS=gilbn/theme.park:jackett
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/jackett:/config
- ${DOCKERSTORAGEDIR}:/storage
monitorr:
image: monitorr/monitorr
hostname: ${DOCKERHOSTNAME}
ports:
- ${MONITORR_PORT_80}:80
container_name: monitorr
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/monitorr:/app
- ${DOCKERSTORAGEDIR}:/storage
- /home/miniserv/.config/appdata/monitorr/config:/config
mylar3:
image: ghcr.io/linuxserver/mylar3:amd64-latest
hostname: ${DOCKERHOSTNAME}
ports:
- ${MYLAR3_PORT_8090}:8090
container_name: mylar3
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/mylar3:/config
- ${DOCKERSTORAGEDIR}:/storage
- /mnt/nfsDownload/completed/comics:/media/downloads
- /mnt/nfs8/ebooks/comics:/media/comics
nzbget:
image: ghcr.io/linuxserver/nzbget:amd64-latest
hostname: ${DOCKERHOSTNAME}
ports:
- ${NZBGET_PORT_6789}:6789
container_name: nzbget
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
- DOCKER_MODS=gilbn/theme.park:nzbget
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/nzbget:/config
- ${DOCKERSTORAGEDIR}:/storage
- /mnt/nfsDownload:/media/download
- /mnt/nfs8:/media/8tb
nzbhydra2:
image: ghcr.io/linuxserver/nzbhydra2:latest
hostname: ${DOCKERHOSTNAME}
ports:
- ${NZBHYDRA2_PORT_5076}:5076
container_name: nzbhydra2
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/nzbhydra2:/config
- ${DOCKERSTORAGEDIR}:/storage
- /mnt/nfsDownload:/media/download
portainer:
image: portainer/portainer-ce:alpine
hostname: ${DOCKERHOSTNAME}
ports:
- ${PORTAINER_PORT_9000}:9000
command: -H unix:///var/run/docker.sock
container_name: portainer
environment:
- TZ=${TZ}
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
- ${DOCKERCONFDIR}/portainer:/data
- ${DOCKERSTORAGEDIR}:/storage
qbittorrentvpn:
image: binhex/arch-qbittorrentvpn:latest
hostname: ${DOCKERHOSTNAME}
ports:
- ${QBITTORRENTVPN_PORT_51413}:51413
- ${QBITTORRENTVPN_PORT_51413}:51413/udp
- ${QBITTORRENTVPN_PORT_6881}:6881
- ${QBITTORRENTVPN_PORT_6881}:6881/udp
- ${QBITTORRENTVPN_PORT_8080}:${QBITTORRENTVPN_PORT_8080}
- ${QBITTORRENTVPN_PORT_8118}:8118
cap_add:
- NET_ADMIN
- SYS_MODULE
container_name: qbittorrentvpn
environment:
- ENABLE_PRIVOXY=${QBITTORRENTVPN_ENABLE_PRIVOXY}
- LAN_NETWORK=${LAN_NETWORK}
- NAME_SERVERS=${NS1},${NS2}
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
- VPN_CLIENT=${VPN_CLIENT}
- VPN_ENABLED=${VPN_ENABLE}
- VPN_OPTIONS=${VPN_OPTIONS}
- VPN_PASS=${VPN_PASS}
- VPN_PROV=${VPN_PROV}
- VPN_USER=${VPN_USER}
- WEBUI_PORT=${QBITTORRENTVPN_PORT_8080}
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
privileged: true
restart: unless-stopped
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/qbittorrentvpn:/config
- ${DOCKERSTORAGEDIR}:/storage
- ${VPN_OVPNDIR}:/config/openvpn
- ${VPN_WGDIR}:/config/wireguard
- /home/miniserv/.config/appdata/qbittorrentvpn/data:/data
- /mnt/nfsDownload:/media/download
- /mnt/nfs8:/media/8tb
radarr:
image: ghcr.io/linuxserver/radarr:amd64-latest
hostname: ${DOCKERHOSTNAME}
ports:
- ${RADARR_PORT_7878}:7878
container_name: radarr
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
- DOCKER_MODS=gilbn/theme.park:radarr
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/radarr:/config
- ${DOCKERSTORAGEDIR}:/storage
- /mnt/nfs8:/media/8tb
- /mnt/nfsDownload:/media/download
sonarr:
image: ghcr.io/linuxserver/sonarr:amd64-preview
hostname: ${DOCKERHOSTNAME}
ports:
- ${SONARR_PORT_8989}:8989
container_name: sonarr
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
- DOCKER_MODS=gilbn/theme.park:sonarr
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/sonarr:/config
- /mnt/nfs8/TV:/media/8tb/TV
- /mnt/nfsDownload/completed/tv:/media/downloads
swag:
image: ghcr.io/linuxserver/swag:amd64-latest
hostname: ${DOCKERHOSTNAME}
ports:
- ${SWAG_PORT_443}:443
- ${SWAG_PORT_80}:80
cap_add:
- NET_ADMIN
container_name: swag
environment:
- DNSPLUGIN=cloudflare
- EMAIL=EMAIL
- EXTRA_DOMAINS=${SWAG_EXTRA_DOMAINS}
- ONLY_SUBDOMAINS=${SWAG_ONLY_SUBDOMAINS}
- PGID=${PGID}
- PUID=${PUID}
- SUBDOMAINS=wildcard
- TZ=TIMEZONE
- URL=CUSTOM_URL
- VALIDATION=DNS
- MAXMINDDB_LICENSE_KEY=CUSTOM_KEY
- CAP_ADD=NET_ADMIN
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/swag:/config
- ${DOCKERSTORAGEDIR}:/storage
ubooquity:
image: ghcr.io/linuxserver/ubooquity:amd64-latest
hostname: ${DOCKERHOSTNAME}
ports:
- ${UBOOQUITY_PORT_2202}:2202
- ${UBOOQUITY_PORT_2203}:2203
container_name: ubooquity
environment:
- MAXMEM=${UBOOQUITY_MAXMEM}
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- ${DOCKERCONFDIR}/ubooquity:/config
- ${DOCKERSTORAGEDIR}:/storage
- /mnt/nfs8:/files
- /mnt/nfs8/ebooks/comics:/comics
- /mnt/nfs8/ebooks:/books
youtubedl:
image: nbr23/youtube-dl-server
hostname: ${DOCKERHOSTNAME}
ports:
- 8081:8080
container_name: youtube-dl
environment:
- PGID=${PGID}
- PUID=${PUID}
- TZ=${TZ}
- YDL_DEBUG=${YOUTUBEDL_DEBUG}
- YDL_CONFIG_PATH=${YOUTUBEDL_CONFIG_PATH}
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE}
max-size: ${DOCKERLOGGING_MAXSIZE}
restart: unless-stopped
volumes:
- /etc/localtime:/etc/localtime:ro
- /mnt/nfsDownload/completed/youtube:/youtube-dl
- ${DOCKERSTORAGEDIR}:/storage
- /home/miniserv/.config/appdata/youtubedl/config:/app_config
- Add Slider code
- 03-15-2021 Add Over Ride Yaml Code
- 03-13-2021 Paste and breakdown code for custom html