2021-10-25 14:37:10 +02:00
<?xml version="1.0" encoding="utf-8"?>
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" lang = "en" xml:lang = "en" >
< head >
2022-05-09 10:05:23 +02:00
<!-- 2022 - 05 - 09 lun. 10:04 -->
2021-10-25 14:37:10 +02:00
< meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" / >
< title > Home Server< / title >
< meta name = "author" content = "Dehaeze Thomas" / >
< meta name = "generator" content = "Org Mode" / >
< link rel = "stylesheet" type = "text/css" href = "./dist/style.css" / >
< script type = "text/javascript" src = "./dist/script.js" > < / script >
< / head >
< body >
< div id = "org-div-home-and-up" >
< a accesskey = "h" href = "./index.html" > UP < / a >
|
< a accesskey = "H" href = "./index.html" > HOME < / a >
< / div > < div id = "content" class = "content" >
< h1 class = "title" > Home Server< / h1 >
< div id = "table-of-contents" role = "doc-toc" >
< h2 > Table of Contents< / h2 >
< div id = "text-table-of-contents" role = "doc-toc" >
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#orgbc87bde" > Hardware< / a > < / li >
< li > < a href = "#orgc9cc1fe" > Installation< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org3a712a5" > Ubuntu< / a > < / li >
< li > < a href = "#orgf4aeac5" > Install Important software< / a > < / li >
< li > < a href = "#org18d7f1c" > Terminal Problem< / a > < / li >
< li > < a href = "#orgd4f06d0" > Minor Modifications of < code > ~/.inputrc< / code > < / a > < / li >
< li > < a href = "#org761c91b" > Partition and Format Disk Drives< / a > < / li >
< li > < a href = "#orgac6d992" > MergerFS and FStab< / a > < / li >
< li > < a href = "#org244394d" > Automating with SnapRAID Runner< / a > < / li >
< li > < a href = "#org81d3a3e" > Install Docker< / a > < / li >
< li > < a href = "#org0f405f9" > Executing the Docker Command Without Sudo< / a > < / li >
< li > < a href = "#org40cc6af" > Install Docker-Compose< / a > < / li >
< li > < a href = "#orgf8c775b" > Setup Docker Networks< / a > < / li >
< li > < a href = "#org6cfc297" > Change Timezone< / a > < / li >
< li > < a href = "#org1396cc7" > Secure the Web Server< / a > < / li >
< li > < a href = "#org5d1e224" > Automatic Security Updates< / a > < / li >
< li > < a href = "#org9f36b57" > Setup cronjobs< / a > < / li >
< li > < a href = "#orgf8394b4" > Run < code > docker-compose< / code > < / a > < / li >
< li > < a href = "#orgb32a63b" > Docker config < code > ~/.docker/config.json< / code > < / a > < / li >
< li > < a href = "#org12b9ada" > Matrix server< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org6d1d8b3" > Maintenance - How To< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org6119bc0" > Update System/Packages< / a > < / li >
< li > < a href = "#org9a0787e" > Docker Commands< / a > < / li >
< li > < a href = "#org6c86824" > < code > snapraid< / code > < / a > < / li >
< li > < a href = "#org45a8963" > Restore Online backup with < code > restic< / code > < / a > < / li >
< li > < a href = "#org5b7ac9a" > Add < code > wireguard< / code > client< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#orgaf43724" > With an Android client< / a > < / li >
< li > < a href = "#orge89acd3" > With a Linux client< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org499ec97" > Docker-Compose< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org6270879" > Basic Config< / a > < / li >
< li > < a href = "#orga005538" > Docker Config and Tools< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#orgade44fd" > < code > traefik< / code > - Application proxy (link)< / a > < / li >
< li > < a href = "#org36e466c" > < code > authelia< / code > - Single Sign-On Multi-Factor portal (link)< / a > < / li >
< li > < a href = "#org5dfa60e" > < code > portainer< / code > - Manage docker (link)< / a > < / li >
< li > < a href = "#orgd69b289" > < code > uptime-kuma< / code > - Monitoring Tool (link)< / a > < / li >
< li > < a href = "#org3ab54fc" > < code > gotify< / code > - Notification service (link)< / a > < / li >
< li > < a href = "#org24f1842" > < code > snapraid< / code > - Manage local backup with parity disk (link)< / a > < / li >
< li > < a href = "#org8a2ddba" > < code > scrutiny< / code > - Hard drive monitoring (link)< / a > < / li >
< li > < a href = "#org7fce731" > < code > wireguard< / code > - VPN (link)< / a > < / li >
< li > < a href = "#org3a10948" > < code > nginx< / code > - Root (used for Matrix)< / a > < / li >
< li > < a href = "#org8c0e1cd" > < code > diun< / code > - Notification for Docker image updates (link)< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#orgc2f4f7d" > Websites< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org2fa5e64" > < code > wasabi< / code > - Affichtoo< / a > < / li >
< li > < a href = "#orgcf18497" > < code > potaupho< / code > - Affichtoo< / a > < / li >
< li > < a href = "#org286b7f5" > < code > homer< / code > - Home page (link)< / a > < / li >
< li > < a href = "#org5915f1a" > < code > hugo< / code > - Wiki + Blog (link)< / a > < / li >
< li > < a href = "#orgd0e4896" > < code > research< / code > - Research Pages (link)< / a > < / li >
< li > < a href = "#orge58f051" > < code > dotfiles< / code > - Dotfiles (link)< / a > < / li >
< li > < a href = "#orgb2d17df" > < code > family-page< / code > - Dotfiles (link)< / a > < / li >
< li > < a href = "#orgafcb1b0" > < code > wikijs< / code > - Wiki App (link)< / a > < / li >
< li > < a href = "#orga021ebb" > < code > commento< / code > - Commenting system (link)< / a > < / li >
< li > < a href = "#org5e7f2a2" > < code > mealie< / code > - Recipe Manager (link)< / a > < / li >
< li > < a href = "#org4c820cc" > < code > gitea< / code > - Git server (link)< / a > < / li >
< li > < a href = "#org45704d1" > < code > changedetection< / code > - Detect change in websites (link)< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org516c291" > Multimedia< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#orgd1678b7" > < code > jellyfin< / code > - Media server (link)< / a > < / li >
< li > < a href = "#orga7a2ccb" > < code > jfa-go< / code > - Manage Jellyfin Users (link)< / a > < / li >
< li > < a href = "#orgcb89e08" > < code > audioserve< / code > - Audiobook server (link)< / a > < / li >
< li > < a href = "#org22045a7" > < code > kavita< / code > - Reading server (link)< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org80381d5" > Cloud< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org3058742" > < code > syncthing< / code > - File Synchronization (link)< / a > < / li >
< li > < a href = "#org8ac0e84" > < code > sync-anne< / code > - File Synchronization (link)< / a > < / li >
< li > < a href = "#orgf5be88f" > < code > sync-jm< / code > - File Synchronization (link)< / a > < / li >
< li > < a href = "#org5bdf3d0" > < code > sync-ju< / code > - File Synchronization (link)< / a > < / li >
< li > < a href = "#org9320c30" > < code > filebrowser< / code > - Web file browser (link)< / a > < / li >
< li > < a href = "#org8430ef9" > < code > photoprism< / code > (link)< / a > < / li >
< li > < a href = "#org0a42177" > < code > radicale< / code > - CalDAV/CardDAV server (link)< / a > < / li >
< li > < a href = "#org981f90a" > < code > linkding< / code > - Bookmark manager (link)< / a > < / li >
< li > < a href = "#orgda8656c" > < code > restic-b2< / code > - Automatic backups on BackBlaze (link)< / a > < / li >
< li > < a href = "#org369a1a4" > < code > restic-aouste< / code > - Automatic backups on Raspberry (link)< / a > < / li >
< li > < a href = "#org8c2735c" > < code > miniflux< / code > - RSS reader (link)< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org37f0700" > Home< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#orga334ff8" > < code > homeassistant< / code > - Home Automation (link)< / a > < / li >
< li > < a href = "#orgce2bc12" > < code > mosquitto< / code > - MQTT broker (link)< / a > < / li >
< li > < a href = "#org70eb68d" > < code > zigbee2mqtt< / code > - Zigbee to MQTT bridge (link)< / a > < / li >
< li > < a href = "#org3299e70" > < code > node-red< / code > - Automation tool< / a > < / li >
< li > < a href = "#org19f13d2" > < code > esphome< / code > - Automation tool< / a > < / li >
< li > < a href = "#org8c66003" > < code > alfawiseu20< / code > - Web interface for 3D printing (link)< / a > < / li >
< li > < a href = "#org351edd0" > < code > tina2< / code > - Web interface for 3D printing (link)< / a > < / li >
< li > < a href = "#org5f4ffce" > < code > ihatemoney< / code > - Tricount Alternative (link)< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org9fd0073" > Download< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#orgf3701ba" > < code > gluetun< / code > - Provide VPN connection to other containers (link)< / a > < / li >
< li > < a href = "#orgccab378" > < code > transmission< / code > - Torrent client (link)< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
< / ul >
< / li >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org8cb3958" > Cron Jobs< / a >
2021-10-25 14:37:10 +02:00
< ul >
2022-05-09 10:05:23 +02:00
< li > < a href = "#org8ae2daa" > Caddy Update< / a > < / li >
2021-10-25 14:37:10 +02:00
< / ul >
< / li >
< / ul >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgbc87bde" class = "outline-2" >
< h2 id = "orgbc87bde" > Hardware< / h2 >
< div class = "outline-text-2" id = "text-orgbc87bde" >
2021-10-25 14:37:10 +02:00
< table border = "2" cellspacing = "0" cellpadding = "6" rules = "groups" frame = "hsides" >
< caption class = "t-above" > < span class = "table-number" > Table 1:< / span > Home Server Hardware< / caption >
< colgroup >
< col class = "org-left" / >
< col class = "org-left" / >
< / colgroup >
< thead >
< tr >
< th scope = "col" class = "org-left" > < b > Part< / b > < / th >
< th scope = "col" class = "org-left" > < b > Model< / b > < / th >
< / tr >
< / thead >
< tbody >
< tr >
< td class = "org-left" > Case< / td >
< td class = "org-left" > Fractal Design Node 804< / td >
< / tr >
< tr >
< td class = "org-left" > Motherboard< / td >
< td class = "org-left" > ASUS PRIME B450M-A< / td >
< / tr >
< tr >
< td class = "org-left" > CPU< / td >
< td class = "org-left" > AMD Ryzen 3 3200G< / td >
< / tr >
< tr >
< td class = "org-left" > RAM< / td >
< td class = "org-left" > Corsair Vengeance LPX 16Go (2x8Go) DDR4 3200MHz< / td >
< / tr >
< tr >
< td class = "org-left" > Cooler< / td >
< td class = "org-left" > ARCTIC Freezer 34 eSports DUO< / td >
< / tr >
< tr >
< td class = "org-left" > PSU< / td >
< td class = "org-left" > Corsair SF450< / td >
< / tr >
< tr >
< td class = "org-left" > SSD M.2< / td >
< td class = "org-left" > Samsung 970 EVO Plus 250Gb< / td >
< / tr >
< tr >
< td class = "org-left" > Disk Drives< / td >
< td class = "org-left" > Various drives ranging from 3Tb to 8Tb< / td >
< / tr >
< / tbody >
< / table >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgc9cc1fe" class = "outline-2" >
< h2 id = "orgc9cc1fe" > Installation< / h2 >
< div class = "outline-text-2" id = "text-orgc9cc1fe" >
2021-10-25 14:37:10 +02:00
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org3a712a5" class = "outline-3" >
< h3 id = "org3a712a5" > Ubuntu< / h3 >
< div class = "outline-text-3" id = "text-org3a712a5" >
2021-10-25 14:37:10 +02:00
< ul class = "org-ul" >
< li > Download < b > Ubuntu Server 20.04 LTS< / b > (< a href = "https://ubuntu.com/download/server" > link< / a > ).< / li >
< li > Activate OpenSSH and add SSH Keys< / li >
< li > Account: < code > thomas< / code > , hostname: < code > homelab< / code > < / li >
< / ul >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgf4aeac5" class = "outline-3" >
< h3 id = "orgf4aeac5" > Install Important software< / h3 >
< div class = "outline-text-3" id = "text-orgf4aeac5" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > apt install neovim tmux fd-find ripgrep fzf apache2-utils unrar ranger
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org18d7f1c" class = "outline-3" >
< h3 id = "org18d7f1c" > Terminal Problem< / h3 >
< div class = "outline-text-3" id = "text-org18d7f1c" >
2021-10-25 14:37:10 +02:00
< p >
On the local host, using Termite:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > infocmp > termite.terminfo < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > export Termite's Terminfo< / span >
scp termite.terminfo user@remote-host:~/ < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > or any other method to copy to the remote host< / span >
< / pre >
< / div >
< p >
On the remote host, in the directory where you copied < code > termite.terminfo< / code > :
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > tic -x termite.terminfo < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > import Terminfo for current user< / span >
< span class = "org-type" > rm< / span > termite.terminfo < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > optional: remove Terminfo file< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgd4f06d0" class = "outline-3" >
< h3 id = "orgd4f06d0" > Minor Modifications of < code > ~/.inputrc< / code > < / h3 >
< div class = "outline-text-3" id = "text-orgd4f06d0" >
2021-10-25 14:37:10 +02:00
< p >
Modify < code > ~/.inputrc< / code > , like so:
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > < span class = "org-string" > "\e[A"< / span > : history-search-backward < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > arrow up< / span >
< span class = "org-string" > "\e[B"< / span > : history-search-forward < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > arrow down< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org761c91b" class = "outline-3" >
< h3 id = "org761c91b" > Partition and Format Disk Drives< / h3 >
< div class = "outline-text-3" id = "text-org761c91b" >
2021-10-25 14:37:10 +02:00
< p >
A nice tutorial is available < a href = "https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-storage-devices-in-linux" > here< / a > .
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > lsblk
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > parted /dev/sda mklabel gpt
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > parted -a opt /dev/sda mkpart < span class = "org-string" > "partitionname"< / span > ext4 0% 100%
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > mkfs.ext4 -L partitionname /dev/sda1
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgac6d992" class = "outline-3" >
< h3 id = "orgac6d992" > MergerFS and FStab< / h3 >
< div class = "outline-text-3" id = "text-orgac6d992" >
2021-10-25 14:37:10 +02:00
< p >
< b > MergerFS< / b > is a transparent layer that sits on top of the data drives providing a single mount point for reads / writes (< a href = "https://selfhostedhome.com/combining-different-sized-drives-with-mergerfs-and-snapraid/" > link< / a > ).
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > apt install mergerfs
< / pre >
< / div >
< p >
Create mount points
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > < span class = "org-type" > mkdir< / span > /mnt/disk0
< span class = "org-type" > sudo< / span > < span class = "org-type" > mkdir< / span > /mnt/disk1
< span class = "org-type" > sudo< / span > < span class = "org-type" > mkdir< / span > /mnt/parity
< / pre >
< / div >
< p >
Create folder where disks will be merged.
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > < span class = "org-type" > mkdir< / span > /srv/storage
< / pre >
< / div >
< p >
Edit < code > /etc/fstab< / code > .
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > /dev/disk/by-uuid/7fb7873c-83bd-4805-98ab-506e6c7b56fa /mnt/disk0 ext4 defaults < span class = "org-highlight-numbers-number" > 0< / span > < span class = "org-highlight-numbers-number" > 0< / span >
/dev/disk/by-uuid/6574b7ae-321c-4078-9793-bc41a4fa5588 /mnt/disk1 ext4 defaults < span class = "org-highlight-numbers-number" > 0< / span > < span class = "org-highlight-numbers-number" > 0< / span >
/dev/disk/by-uuid/6fcd38b9-0886-46bd-900d-cb1f170dbcee /mnt/parity ext4 defaults < span class = "org-highlight-numbers-number" > 0< / span > < span class = "org-highlight-numbers-number" > 0< / span >
< span class = "org-variable-name" > /mnt/disk* /srv/storage fuse.mergerfs direct_io,defaults,allow_other,minfreespace< / span > =50G,fsname=mergerfs < span class = "org-highlight-numbers-number" > 0< / span > < span class = "org-highlight-numbers-number" > 0< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org244394d" class = "outline-3" >
< h3 id = "org244394d" > Automating with SnapRAID Runner< / h3 >
< div class = "outline-text-3" id = "text-org244394d" >
2021-10-25 14:37:10 +02:00
< p >
< b > SnapRAID< / b > is a snapshot parity calculation tool which acts at the block level independent of filesystem (< a href = "https://selfhostedhome.com/combining-different-sized-drives-with-mergerfs-and-snapraid/" > link< / a > ).
< / p >
< p >
SnapRAID is here used inside a Docker container (< a href = "https://hub.docker.com/r/xagaba/snapraid" > link< / a > ).
< / p >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org81d3a3e" class = "outline-3" >
< h3 id = "org81d3a3e" > Install Docker< / h3 >
< div class = "outline-text-3" id = "text-org81d3a3e" >
2021-10-25 14:37:10 +02:00
< p >
The procedure is well explained < a href = "https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04" > here< / a > .
< / p >
< p >
If docker is already installed, remove it:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > apt remove docker
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org0f405f9" class = "outline-3" >
< h3 id = "org0f405f9" > Executing the Docker Command Without Sudo< / h3 >
< div class = "outline-text-3" id = "text-org0f405f9" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > usermod -aG docker $< span class = "org-rainbow-delimiters-depth-1" > {< / span > < span class = "org-variable-name" > USER< / span > < span class = "org-rainbow-delimiters-depth-1" > }< / span >
< / pre >
< / div >
< p >
To apply the new group membership, log out of the server and back in, or type the following:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > su - $< span class = "org-rainbow-delimiters-depth-1" > {< / span > < span class = "org-variable-name" > USER< / span > < span class = "org-rainbow-delimiters-depth-1" > }< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org40cc6af" class = "outline-3" >
< h3 id = "org40cc6af" > Install Docker-Compose< / h3 >
< div class = "outline-text-3" id = "text-org40cc6af" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > apt install docker-compose
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgf8c775b" class = "outline-3" >
< h3 id = "orgf8c775b" > Setup Docker Networks< / h3 >
< div class = "outline-text-3" id = "text-orgf8c775b" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-bash" > docker network create --gateway 192.168.90.1 --subnet 192.168.90.0/24 t2_proxy
docker network create docker_default
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org6cfc297" class = "outline-3" >
< h3 id = "org6cfc297" > Change Timezone< / h3 >
< div class = "outline-text-3" id = "text-org6cfc297" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > timedatectl set-timezone Europe/Paris
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org1396cc7" class = "outline-3" >
< h3 id = "org1396cc7" > Secure the Web Server< / h3 >
< div class = "outline-text-3" id = "text-org1396cc7" >
2021-10-25 14:37:10 +02:00
< p >
Most of it comes from < a href = "https://github.com/imthenachoman/How-To-Secure-A-Linux-Server" > here< / a > .
< / p >
< ul class = "org-ul" >
< li > Set < code > PasswordAuthentication< / code > no in < code > /etc/ssh/sshd_config< / code > < / li >
< / ul >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org5d1e224" class = "outline-3" >
< h3 id = "org5d1e224" > Automatic Security Updates< / h3 >
< div class = "outline-text-3" id = "text-org5d1e224" >
2021-10-25 14:37:10 +02:00
< p >
The procedure is well explained < a href = "https://www.linuxbabe.com/ubuntu/automatic-security-update-unattended-upgrades-ubuntu" > here< / a > .
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > apt install unattended-upgrades update-notifier-common
< / pre >
< / div >
< p >
Edit < code > /etc/apt/apt.conf.d/50unattended-upgrades< / code > , and change the following lines:
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > Unattended-Upgrade::Remove-Unused-Dependencies < span class = "org-string" > "true"< / span > ;
Unattended-Upgrade::Automatic-Reboot < span class = "org-string" > "true"< / span > ;
Unattended-Upgrade::Automatic-Reboot-Time < span class = "org-string" > "04:00"< / span > ;
< / pre >
< / div >
< p >
Edit < code > /etc/apt/apt.conf.d/20auto-upgrades< / code > :
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > APT::Periodic::Update-Package-Lists < span class = "org-string" > "1"< / span > ;
APT::Periodic::Unattended-Upgrade < span class = "org-string" > "1"< / span > ;
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org9f36b57" class = "outline-3" >
< h3 id = "org9f36b57" > Setup cronjobs< / h3 >
< div class = "outline-text-3" id = "text-org9f36b57" >
2021-10-25 14:37:10 +02:00
< p >
Create a folder < code > ~/cron< / code > with all the scripts and logs related to cron.
< / p >
< p >
To edit the cron jobs, type < code > crontab -e< / code > and add a line like:
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > */5 * * * * /home/thomas/cron/caddy_update.sh > > /home/thomas/cron/caddy_update.log 2> & 1
< / pre >
< / div >
< p >
That will run every 5 minutes.
To check how the first part of the crontab works, check < a href = "https://crontab.guru/" > this website< / a > .
< / p >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgf8394b4" class = "outline-3" >
< h3 id = "orgf8394b4" > Run < code > docker-compose< / code > < / h3 >
< div class = "outline-text-3" id = "text-orgf8394b4" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > cd< / span > ~/docker & & docker-compose up -d
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgb32a63b" class = "outline-3" >
< h3 id = "orgb32a63b" > Docker config < code > ~/.docker/config.json< / code > < / h3 >
< div class = "outline-text-3" id = "text-orgb32a63b" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-json" > {
< span class = "org-keyword" > "psFormat"< / span > : < span class = "org-string" > "table {{ .ID }}\\t{{ .Names }}\t{{ .Status }}"< / span >
}
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org12b9ada" class = "outline-3" >
< h3 id = "org12b9ada" > Matrix server< / h3 >
< div class = "outline-text-3" id = "text-org12b9ada" >
< p >
Use Ansible < a href = "https://github.com/spantaleev/matrix-docker-ansible-deploy" > https://github.com/spantaleev/matrix-docker-ansible-deploy< / a >
< / p >
< p >
Must install newer version of ansible:
< / p >
< ul class = "org-ul" >
< li > < a href = "https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-ubuntu" > https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#installing-ansible-on-ubuntu< / a > < / li >
< / ul >
< / div >
< / div >
2021-10-25 14:37:10 +02:00
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org6d1d8b3" class = "outline-2" >
< h2 id = "org6d1d8b3" > Maintenance - How To< / h2 >
< div class = "outline-text-2" id = "text-org6d1d8b3" >
2021-10-25 14:37:10 +02:00
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org6119bc0" class = "outline-3" >
< h3 id = "org6119bc0" > Update System/Packages< / h3 >
< div class = "outline-text-3" id = "text-org6119bc0" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > sudo< / span > -- sh -c < span class = "org-string" > 'apt-get update; apt-get upgrade -y; apt-get dist-upgrade -y; apt-get autoremove -y; apt-get autoclean -y'< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org9a0787e" class = "outline-3" >
< h3 id = "org9a0787e" > Docker Commands< / h3 >
< div class = "outline-text-3" id = "text-org9a0787e" >
2021-10-25 14:37:10 +02:00
< ul class = "org-ul" >
< li > Starting a container: < code > $ docker start homeassistant< / code > < / li >
< li > Stopping a container: < code > $ docker stop homeassistant< / code > < / li >
< li > Restarting a container: < code > $ docker restart homeassistant< / code > < / li >
< li > Listing the running containers: < code > $ docker ps or $ cd ~/docker/ & & docker-compose ps< / code > < / li >
< li > View the logs of a container: < code > $ docker logs -f homeassistant< / code > < / li >
< li > Drop a shell into a container: < code > $ docker exec -it homeassistant /bin/bash< / code > < / li >
< li > Update specific container: < code > docker-compose pull --ignore-pull-failures homeassistant< / code > < / li >
< / ul >
< p >
Update All Containers
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > < span class = "org-type" > cd< / span > ~/docker/ & & docker-compose pull --ignore-pull-failures & & docker-compose up -d
< / pre >
< / div >
< p >
Clean up Docker environment
This will delete all unused images, volumes and networks.
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker system prune -f & & docker image prune -f & & docker volume prune -f
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org6c86824" class = "outline-3" >
< h3 id = "org6c86824" > < code > snapraid< / code > < / h3 >
< div class = "outline-text-3" id = "text-org6c86824" >
2021-10-25 14:37:10 +02:00
< p >
To see all files “ backed up” by snapraid, use:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec -ti snapraid snapraid list | fzf
< / pre >
< / div >
< p >
In reality, snapraid is ran from the docker container:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec -ti snapraid snapraid fix -f < path_to_file>
< / pre >
< / div >
< p >
The path to file should be relative: < code > /srv/storage/Cloud/org/file.org< / code > -> < code > Cloud/org/file.org< / code >
< / p >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org45a8963" class = "outline-3" >
< h3 id = "org45a8963" > Restore Online backup with < code > restic< / code > < / h3 >
< div class = "outline-text-3" id = "text-org45a8963" >
2021-10-25 14:37:10 +02:00
< p >
To list backups:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec restic restic snapshots
< / pre >
< / div >
< pre class = "example" >
ID Time Host Tags Paths
--------------------------------------------------------------------------------
a7b98408 2020-09-03 21:18:00 4803c2af7d4e /data/documents/manuals
088e31a4 2020-09-03 21:50:26 4803c2af7d4e /data/documents/manuals
9cf0b480 2020-09-03 22:05:47 4803c2af7d4e /data/documents/manuals
--------------------------------------------------------------------------------
3 snapshots
< / pre >
< p >
Force backup of folder:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec restic restic backup /data/documents/manuals
< / pre >
< / div >
< pre class = "example" >
Files: 0 new, 2 changed, 8475 unmodified
Dirs: 0 new, 2 changed, 0 unmodified
Added to the repo: 1.010 KiB
processed 8477 files, 589.800 MiB in 0:02
snapshot 9cf0b480 saved
< / pre >
< p >
Find the path to the file within the snapshot:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec restic restic < span class = "org-type" > find< / span > file_name
< / pre >
< / div >
< p >
Find files only for a specific snapshot:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec restic restic < span class = "org-type" > find< / span > -s latest file_name
< / pre >
< / div >
< p >
Restore files/folders (replace file/folders):
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec restic restic restore --include /data/documents/manuals --target / 088e31a4
< / pre >
< / div >
< p >
You can use < code > latest< / code > instead of the ID.
< / p >
< p >
If indeed, we want to make a copy of the file, we can use the backup folder
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec restic restic restore --include /data/documents/manuals --target /backup 088e31a4
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org5b7ac9a" class = "outline-3" >
< h3 id = "org5b7ac9a" > Add < code > wireguard< / code > client< / h3 >
< div class = "outline-text-3" id = "text-org5b7ac9a" >
2021-10-25 14:37:10 +02:00
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgaf43724" class = "outline-4" >
< h4 id = "orgaf43724" > With an Android client< / h4 >
< div class = "outline-text-4" id = "text-orgaf43724" >
2021-10-25 14:37:10 +02:00
< p >
Show the QRcode corresponding the a specific peer with:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec -it wireguard /app/show-peer < span class = "org-highlight-numbers-number" > 1< / span >
< / pre >
< / div >
< p >
Then, simply scan the QRcode with the < a href = "https://github.com/WireGuard/wireguard-android" > Wireguard< / a > application.
< / p >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orge89acd3" class = "outline-4" >
< h4 id = "orge89acd3" > With a Linux client< / h4 >
< div class = "outline-text-4" id = "text-orge89acd3" >
2021-10-25 14:37:10 +02:00
< p >
Copy the file < code > $CONFIGDIR/wireguard/peeri/peeri.conf< / code > , e.g.:
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > [< span class = "org-type" > Interface< / span > ]
< span class = "org-variable-name" > Address< / span > = 10.13.13.4/24
< span class = "org-variable-name" > DNS< / span > = 10.13.1.1
< span class = "org-variable-name" > PrivateKey< / span > = ****
< span class = "org-variable-name" > ListenPort< / span > = < span class = "org-highlight-numbers-number" > 51820< / span >
[< span class = "org-type" > Peer< / span > ]
< span class = "org-variable-name" > PublicKey< / span > = ****
< span class = "org-variable-name" > Endpoint< / span > = wireguard.tdehaeze.xyz:< span class = "org-highlight-numbers-number" > 51820< / span >
< span class = "org-variable-name" > AllowedIPs< / span > = 0.0.0.0/0, ::0/0
< / pre >
< / div >
< p >
Then, paste the file to < code > /etc/wireguard/interfacename.conf< / code > .
And then:
< / p >
< ul class = "org-ul" >
< li > < code > sudo chmod 600 /etc/wireguard/interfacename.conf< / code > < / li >
< li > < code > sudo chown root:root /etc/wireguard/interfacename.conf< / code > < / li >
< / ul >
< p >
Then, start the tunnel with:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > wg-quick up interfacename
< / pre >
< / div >
< / div >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org499ec97" class = "outline-2" >
< h2 id = "org499ec97" > Docker-Compose< / h2 >
< div class = "outline-text-2" id = "text-org499ec97" >
< / div >
< div id = "outline-container-org6270879" class = "outline-3" >
< h3 id = "org6270879" > Basic Config< / h3 >
< div class = "outline-text-3" id = "text-org6270879" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > version< / span > : < span class = "org-string" > "3.4"< / span >
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > networks< / span > :
< span class = "org-variable-name" > t2_proxy< / span > :
< span class = "org-variable-name" > external< / span > :
< span class = "org-variable-name" > name< / span > : t2_proxy
< span class = "org-variable-name" > backend< / span > :
< span class = "org-variable-name" > external< / span > : < span class = "org-constant" > false< / span >
< span class = "org-variable-name" > default< / span > :
< span class = "org-variable-name" > driver< / span > : bridge
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > x-logging< / span > :
< span class = "org-function-name" > & default-logging< / span >
< span class = "org-variable-name" > driver< / span > : < span class = "org-string" > "json-file"< / span >
< span class = "org-variable-name" > options< / span > :
< span class = "org-variable-name" > max-size< / span > : < span class = "org-string" > "200k"< / span >
< span class = "org-variable-name" > max-file< / span > : < span class = "org-string" > "10"< / span >
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > services< / span > :
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< / div >
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orga005538" class = "outline-3" >
< h3 id = "orga005538" > Docker Config and Tools< / h3 >
< div class = "outline-text-3" id = "text-orga005538" >
< / div >
< div id = "outline-container-orgade44fd" class = "outline-4" >
< h4 id = "orgade44fd" > < code > traefik< / code > - Application proxy (< a href = "https://github.com/traefik/traefik" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgade44fd" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > traefik< / span > :
< span class = "org-variable-name" > container_name< / span > : traefik
< span class = "org-variable-name" > image< / span > : traefik:2.2.1
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > depends_on< / span > :
- authelia
< span class = "org-variable-name" > networks< / span > :
< span class = "org-variable-name" > t2_proxy< / span > :
< span class = "org-variable-name" > ipv4_address< / span > : 192.168.90.254 < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > You can specify a static IP< / span >
< span class = "org-variable-name" > security_opt< / span > :
- no-new-privileges:true
< span class = "org-variable-name" > ports< / span > :
- 80:80 < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > http< / span >
- 443:443 < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > https< / span >
- 8448:8448 < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Matrix< / span >
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/traefik2/acme.json:/acme.json
2021-10-25 14:37:10 +02:00
- $CONFIGDIR/traefik2/traefik.yaml:/etc/traefik/traefik.yaml
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/traefik2/services.yaml:/etc/traefik/services.yaml
2021-10-25 14:37:10 +02:00
- /var/log/traefik:/var/log
- /var/run/docker.sock:/var/run/docker.sock:ro
< span class = "org-variable-name" > environment< / span > :
- CF_API_EMAIL=$CLOUDFLARE_EMAIL
- CF_API_KEY=$CLOUDFLARE_API_KEY
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > HTTP-to-HTTPS Redirect< / span >
- < span class = "org-string" > "traefik.http.routers.http-catchall.entrypoints=http"< / span >
- < span class = "org-string" > "traefik.http.routers.http-catchall.rule=HostRegexp(`{host:.+}`)"< / span >
- < span class = "org-string" > "traefik.http.routers.http-catchall.middlewares=redirect-to-https"< / span >
- < span class = "org-string" > "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > HTTP Routers< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.rule=Host(`traefik.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.service=traefik-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.tls.domains[0].main=$DOMAINNAME"< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.tls.domains[0].sans=*.$DOMAINNAME"< / span >
- < span class = "org-string" > "traefik.http.services.traefik-svc.loadbalancer.server.port=8080"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Services - API< / span >
- < span class = "org-string" > "traefik.http.routers.traefik-rtr.service=api@internal"< / span >
2022-05-09 10:05:23 +02:00
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Router< / span >
- < span class = "org-string" > "traefik.http.routers.openwrt.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.openwrt.rule=Host(`openwrt.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.openwrt.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.openwrt.service=openwrt@file"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Valetudo< / span >
- < span class = "org-string" > "traefik.http.routers.valetudo.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.valetudo.rule=Host(`valetudo.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.valetudo.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.valetudo.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.routers.valetudo.service=valetudo@file"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Basic Auth< / span >
- < span class = "org-string" > "traefik.http.middlewares.wasabi-auth.basicauth.users=wasabi:$$2y$$05$$GWMXPYbVPtIbnKR8nJBUseTfuLn4vgMzMXtIqs.3.0Je9eUGbRiwG"< / span >
- < span class = "org-string" > "traefik.http.middlewares.potaupho-auth.basicauth.users=potaupho:$$2y$$05$$0.hcoM36J1bhooHg6w/PBeP.HyxUpZwU7eFurq5RCrpaYNMVq1f4y"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > traefik.yaml< / code >
< / p >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > global< / span > :
< span class = "org-variable-name" > checkNewVersion< / span > : < span class = "org-constant" > true< / span >
< span class = "org-variable-name" > sendAnonymousUsage< / span > : < span class = "org-constant" > false< / span >
< span class = "org-variable-name" > entryPoints< / span > :
< span class = "org-variable-name" > http< / span > :
< span class = "org-variable-name" > address< / span > : :80
< span class = "org-variable-name" > https< / span > :
< span class = "org-variable-name" > address< / span > : :443
< span class = "org-variable-name" > forwardedHeaders< / span > :
< span class = "org-variable-name" > trustedIPs< / span > : 173.245.48.0/20,103.21.244.0/22,103.22.200.0/22,103.31.4.0/22,141.101.64.0/18,108.162.192.0/18,190.93.240.0/20,188.114.96.0/20,197.234.240.0/22,198.41.128.0/17,162.158.0.0/15,104.16.0.0/12,172.64.0.0/13,131.0.72.0/22
< span class = "org-variable-name" > synapse< / span > :
< span class = "org-variable-name" > address< / span > : :8448
< span class = "org-variable-name" > api< / span > :
< span class = "org-variable-name" > dashboard< / span > : < span class = "org-constant" > true< / span >
< span class = "org-variable-name" > log< / span > :
< span class = "org-variable-name" > level< / span > : ERROR
< span class = "org-variable-name" > accessLog< / span > :
< span class = "org-variable-name" > filePath< / span > : /var/log/access.log
< span class = "org-variable-name" > filters< / span > :
< span class = "org-variable-name" > statusCodes< / span > : 400-499
< span class = "org-variable-name" > providers< / span > :
< span class = "org-variable-name" > docker< / span > :
< span class = "org-variable-name" > endpoint< / span > : unix:///var/run/docker.sock
< span class = "org-variable-name" > defaultrule< / span > : Host(`{{ index .Labels < span class = "org-string" > "com.docker.compose.service"< / span > }}.$DOMAINNAME`)
< span class = "org-variable-name" > exposedByDefault< / span > : < span class = "org-constant" > false< / span >
< span class = "org-variable-name" > network< / span > : t2_proxy
< span class = "org-variable-name" > swarmMode< / span > : < span class = "org-constant" > false< / span >
< span class = "org-variable-name" > file< / span > :
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > filename< / span > : /etc/traefik/services.yaml
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > watch< / span > : < span class = "org-constant" > true< / span >
< span class = "org-variable-name" > certificatesResolvers< / span > :
< span class = "org-variable-name" > dns-cloudflare< / span > :
< span class = "org-variable-name" > acme< / span > :
< span class = "org-variable-name" > email< / span > : $CLOUDFLARE_EMAIL
< span class = "org-variable-name" > storage< / span > : /acme.json
< span class = "org-variable-name" > dnsChallenge< / span > :
< span class = "org-variable-name" > provider< / span > : cloudflare
< span class = "org-variable-name" > resolvers< / span > : 1.1.1.1:53,1.0.0.1:53
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > http< / span > :
< span class = "org-variable-name" > services< / span > :
< span class = "org-variable-name" > openwrt< / span > :
< span class = "org-variable-name" > loadBalancer< / span > :
< span class = "org-variable-name" > servers< / span > :
- < span class = "org-variable-name" > url< / span > : < span class = "org-string" > "http://192.168.1.1/"< / span >
< span class = "org-variable-name" > valetudo< / span > :
< span class = "org-variable-name" > loadBalancer< / span > :
< span class = "org-variable-name" > servers< / span > :
- < span class = "org-variable-name" > url< / span > : < span class = "org-string" > "http://192.168.1.110/"< / span >
- < span class = "org-variable-name" > url< / span > : < span class = "org-string" > "http://192.168.2.157/"< / span >
< / pre >
2021-10-25 14:37:10 +02:00
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org36e466c" class = "outline-4" >
< h4 id = "org36e466c" > < code > authelia< / code > - Single Sign-On Multi-Factor portal (< a href = "https://github.com/authelia/authelia" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org36e466c" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > authelia< / span > :
< span class = "org-variable-name" > image< / span > : authelia/authelia:4.30
< span class = "org-variable-name" > container_name< / span > : authelia
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
- backend
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/authelia:/config
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- AUTHELIA_NOTIFIER_SMTP_PASSWORD=$AUTHELIA_NOTIFIER_SMTP_PASSWORD
- AUTHELIA_JWT_SECRET=$AUTHELIA_JWT_SECRET
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.authelia-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.authelia-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.authelia-rtr.service=authelia-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.authelia-rtr.rule=Host(`login.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.services.authelia-svc.loadbalancer.server.port=9091"< / span >
- < span class = "org-string" > "traefik.http.middlewares.authelia.forwardauth.address=http://authelia:9091/api/verify?rd=https://login.$DOMAINNAME/"< / span >
- < span class = "org-string" > "traefik.http.middlewares.authelia.forwardauth.trustForwardHeader=true"< / span >
- < span class = "org-string" > "traefik.http.middlewares.authelia.forwardauth.authResponseHeaders=Remote-User, Remote-Groups, Remote-Name, Remote-Email"< / span >
- < span class = "org-string" > "treafik.http.middlewares.chain-authelia.chain.middlewares=middlewares-rate-limit, middlewares-secure-headers, middlewares-authelia"< / span >
- < span class = "org-string" > "traefik.docker.network=t2_proxy"< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > configuration.yml< / code >
< / p >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-comment" > ---< / span >
< span class = "org-comment-delimiter" > ###############################################################< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Authelia configuration #< / span >
< span class = "org-comment-delimiter" > ###############################################################< / span >
< span class = "org-variable-name" > default_redirection_url< / span > : https://authelia.tdehaeze.xyz
< span class = "org-variable-name" > server< / span > :
< span class = "org-variable-name" > host< / span > : 0.0.0.0
< span class = "org-variable-name" > port< / span > : 9091
< span class = "org-variable-name" > log< / span > :
< span class = "org-variable-name" > level< / span > : debug
< span class = "org-variable-name" > totp< / span > :
< span class = "org-variable-name" > issuer< / span > : authelia.com
< span class = "org-variable-name" > period< / span > : 30
< span class = "org-variable-name" > skew< / span > : 1
< span class = "org-variable-name" > authentication_backend< / span > :
< span class = "org-variable-name" > file< / span > :
< span class = "org-variable-name" > path< / span > : /config/users_database.yml
< span class = "org-variable-name" > password< / span > :
< span class = "org-variable-name" > algorithm< / span > : argon2id
< span class = "org-variable-name" > iterations< / span > : 1
< span class = "org-variable-name" > salt_length< / span > : 16
< span class = "org-variable-name" > parallelism< / span > : 8
< span class = "org-variable-name" > memory< / span > : 1024
< span class = "org-variable-name" > access_control< / span > :
< span class = "org-variable-name" > default_policy< / span > : deny
< span class = "org-variable-name" > rules< / span > :
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > domain< / span > : valetudo.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- [< span class = "org-string" > "group:family"< / span > ]
- < span class = "org-variable-name" > domain< / span > : openwrt.tdehaeze.xyz
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > domain< / span > : traefik.tdehaeze.xyz
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : scrutiny.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : portainer.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > domain< / span > : sync-ju.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : sync-jm.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : sync-anne.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > domain< / span > : syncthing.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : octoprint.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
2022-05-09 10:05:23 +02:00
- [< span class = "org-string" > "group:family"< / span > ]
- < span class = "org-variable-name" > domain< / span > : tina2.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- [< span class = "org-string" > "group:family"< / span > ]
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > domain< / span > : uptime.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > domain< / span > : wireguard.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > domain< / span > : joal.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > domain< / span > : change.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : esphome.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : node-red.tdehaeze.xyz
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- [< span class = "org-string" > "group:family"< / span > ]
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > domain< / span > : zigbee2mqtt.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- < span class = "org-variable-name" > domain< / span > : qobuz.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : bypass
< span class = "org-variable-name" > resources< / span > :
- < span class = "org-string" > "^/download.*$"< / span >
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > domain< / span > : qobuz.tdehaeze.xyz
< span class = "org-variable-name" > policy< / span > : one_factor
< span class = "org-variable-name" > subject< / span > :
- [< span class = "org-string" > "group:admins"< / span > ]
- [< span class = "org-string" > "group:friends"< / span > ]
- [< span class = "org-string" > "group:family"< / span > ]
< span class = "org-variable-name" > session< / span > :
< span class = "org-variable-name" > name< / span > : authelia_session
< span class = "org-variable-name" > expiration< / span > : 3600
< span class = "org-variable-name" > inactivity< / span > : 300
< span class = "org-variable-name" > domain< / span > : tdehaeze.xyz
< span class = "org-variable-name" > regulation< / span > :
< span class = "org-variable-name" > max_retries< / span > : 3
< span class = "org-variable-name" > find_time< / span > : 120
< span class = "org-variable-name" > ban_time< / span > : 300
< span class = "org-variable-name" > storage< / span > :
< span class = "org-variable-name" > local< / span > :
< span class = "org-variable-name" > path< / span > : /config/db.sqlite3
< span class = "org-variable-name" > notifier< / span > :
< span class = "org-variable-name" > smtp< / span > :
< span class = "org-variable-name" > username< / span > : tdehaeze.xyz@gmail.com
< span class = "org-variable-name" > host< / span > : smtp.gmail.com
< span class = "org-variable-name" > port< / span > : 587
< span class = "org-variable-name" > sender< / span > : tdehaeze.xyz@gmail.com
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org5dfa60e" class = "outline-4" >
< h4 id = "org5dfa60e" > < code > portainer< / code > - Manage docker (< a href = "https://github.com/portainer/portainer" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org5dfa60e" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > portainer< / span > :
< span class = "org-variable-name" > container_name< / span > : portainer
< span class = "org-variable-name" > image< / span > : portainer/portainer
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > command< / span > : -H unix:///var/run/docker.sock
< span class = "org-variable-name" > command< / span > : --no-auth
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > security_opt< / span > :
- no-new-privileges:true
< span class = "org-variable-name" > volumes< / span > :
- /var/run/docker.sock:/var/run/docker.sock:ro
- $CONFIGDIR/portainer:/data
< span class = "org-variable-name" > environment< / span > :
- TZ=$TZ
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.portainer-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.portainer-rtr.rule=Host(`portainer.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.portainer-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.portainer-rtr.service=portainer-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.portainer-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.portainer-svc.loadbalancer.server.port=9000"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
2021-10-25 14:37:10 +02:00
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgd69b289" class = "outline-4" >
< h4 id = "orgd69b289" > < code > uptime-kuma< / code > - Monitoring Tool (< a href = "https://github.com/louislam/uptime-kuma" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgd69b289" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > uptime-kuma< / span > :
< span class = "org-variable-name" > container_name< / span > : uptime-kuma
< span class = "org-variable-name" > image< / span > : louislam/uptime-kuma
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > environment< / span > :
- TZ=$TZ
- UID=$PUID
- GID=$PGID
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/uptime-kuma:/app/data
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.uptime-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.uptime-rtr.rule=Host(`uptime.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.uptime-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.uptime-rtr.service=uptime-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.uptime-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.uptime-svc.loadbalancer.server.port=3001"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org3ab54fc" class = "outline-4" >
< h4 id = "org3ab54fc" > < code > gotify< / code > - Notification service (< a href = "https://github.com/gotify/server" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org3ab54fc" >
2021-10-25 14:37:10 +02:00
< p >
In order to have notifications on Linux desktop use < a href = "https://github.com/ztpnk/gotify-dunst" > gotify-dunst< / a > .
< / p >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > gotify< / span > :
< span class = "org-variable-name" > container_name< / span > : gotify
< span class = "org-variable-name" > image< / span > : gotify/server
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- GOTIFY_DEFAULTUSER_NAME=$GOTIFY_DEFAULTUSER_NAME
- GOTIFY_DEFAULTUSER_PASS=$GOTIFY_DEFAULTUSER_PASS
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/gotify:/app/data
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.gotify-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.gotify-rtr.rule=Host(`gotify.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.gotify-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.gotify-rtr.service=gotify-svc"< / span >
- < span class = "org-string" > "traefik.http.services.gotify-svc.loadbalancer.server.port=80"< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org24f1842" class = "outline-4" >
< h4 id = "org24f1842" > < code > snapraid< / code > - Manage local backup with parity disk (< a href = "https://github.com/amadvance/snapraid" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org24f1842" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > snapraid< / span > :
< span class = "org-variable-name" > container_name< / span > : snapraid
< span class = "org-variable-name" > image< / span > : xagaba/snapraid
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > privileged< / span > : < span class = "org-constant" > true< / span >
< span class = "org-variable-name" > volumes< / span > :
- /mnt:/mnt
- $CONFIGDIR/snapraid:/config
- < span class = "org-variable-name" > type< / span > : < span class = "org-string" > "bind"< / span >
< span class = "org-variable-name" > source< / span > : /dev/disk
< span class = "org-variable-name" > target< / span > : /dev/disk
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > snapraid.conf< / code >
< / p >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-conf" > < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Defines the file to use as parity storage< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > It must NOT be in a data disk< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Format: "parity FILE_PATH"< / span >
parity /mnt/parity/snapraid.parity
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Defines the files to use as content list< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > You can use multiple specification to store more copies< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > You must have least one copy for each parity file plus one. Some more don't< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > hurt< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > They can be in the disks used for data, parity or boot,< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > but each file must be in a different disk< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Format: "content FILE_PATH"< / span >
content /var/snapraid.content
content /mnt/disk0/.snapraid.content
content /mnt/disk1/.snapraid.content
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Defines the data disks to use< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > The order is relevant for parity, do not change it< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Format: "disk DISK_NAME DISK_MOUNT_POINT"< / span >
disk d0 /mnt/disk0
disk d1 /mnt/disk1
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Excludes hidden files and directories (uncomment to enable).< / span >
< span class = "org-comment-delimiter" > #< / span > < span class = "org-comment" > nohidden< / span >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Defines files and directories to exclude< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Remember that all the paths are relative at the mount points< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Format: "exclude FILE"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Format: "exclude DIR/"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Format: "exclude /PATH/FILE"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Format: "exclude /PATH/DIR/"< / span >
exclude *.unrecoverable
exclude /tmp/
exclude /lost+found/
exclude *.!sync
exclude .AppleDouble
exclude ._AppleDouble
exclude .DS_Store
exclude ._.DS_Store
exclude .Thumbs.db
exclude .fseventsd
exclude .Spotlight-V100
exclude .TemporaryItems
exclude .Trashes
exclude .AppleDB
2021-10-25 14:37:10 +02:00
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > snapraid-runner.conf< / code >
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > [< span class = "org-type" > snapraid< / span > ]
; path to the snapraid executable (e.g. /bin/snapraid)
< span class = "org-variable-name" > executable< / span > = /usr/bin/snapraid
; path to the snapraid config to be used
< span class = "org-variable-name" > config< / span > = /config/snapraid.conf
; abort operation if there are more deletes than this, set to -1 to disable
< span class = "org-variable-name" > deletethreshold< / span > = -1
; if you want touch to be ran each time
< span class = "org-variable-name" > touch< / span > = false
[< span class = "org-type" > logging< / span > ]
; logfile to write to, leave empty to disable
< span class = "org-variable-name" > file< / span > = /config/snapraid.log
; maximum logfile size in KiB, leave empty for infinite
< span class = "org-variable-name" > maxsize< / span > = < span class = "org-highlight-numbers-number" > 5000< / span >
; [email]
; ; when to send an email, comma-separated list of [success, error]
< span class = "org-variable-name" > ; sendon< / span > = success,error
; ; set to false to get full programm output via email
< span class = "org-variable-name" > ; short< / span > = true
< span class = "org-variable-name" > ; subject< / span > = [SnapRAID] Status Report:
< span class = "org-variable-name" > ; from< / span > =
< span class = "org-variable-name" > ; to< / span > =
; ; maximum email size in KiB
< span class = "org-variable-name" > ; maxsize< / span > = < span class = "org-highlight-numbers-number" > 500< / span >
;
; [smtp]
< span class = "org-variable-name" > ; host< / span > =
; ; leave empty for default port
< span class = "org-variable-name" > ; port< / span > =
; ; set to < span class = "org-string" > "true"< / span > to activate
< span class = "org-variable-name" > ; ssl< / span > = false
< span class = "org-variable-name" > ; tls< / span > = false
< span class = "org-variable-name" > ; user< / span > =
< span class = "org-variable-name" > ; password< / span > =
[< span class = "org-type" > scrub< / span > ]
; set to true to run scrub after sync
< span class = "org-variable-name" > enabled< / span > = false
< span class = "org-variable-name" > percentage< / span > = < span class = "org-highlight-numbers-number" > 12< / span >
< span class = "org-variable-name" > older-than< / span > = < span class = "org-highlight-numbers-number" > 10< / span >
< / pre >
2021-10-25 14:37:10 +02:00
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org8a2ddba" class = "outline-4" >
< h4 id = "org8a2ddba" > < code > scrutiny< / code > - Hard drive monitoring (< a href = "https://hub.docker.com/r/hotio/scrutiny" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org8a2ddba" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > scrutiny< / span > :
< span class = "org-variable-name" > container_name< / span > : scrutiny
< span class = "org-variable-name" > image< / span > : linuxserver/scrutiny
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > cap_add< / span > :
- SYS_RAWIO
- SYS_ADMIN
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- SCRUTINY_WEB=true
- SCRUTINY_COLLECTOR=false
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/scrutiny:/config
- /run/udev:/run/udev:ro
< span class = "org-variable-name" > devices< / span > :
- /dev/sda:/dev/sda
- /dev/sdb:/dev/sdb
- /dev/sdc:/dev/sdc
- /dev/sdd:/dev/sdd
- /dev/nvme0n1:/dev/nvme0n1
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.scrutiny-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.scrutiny-rtr.rule=Host(`scrutiny.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.scrutiny-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.scrutiny-rtr.service=scrutiny-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.scrutiny-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.scrutiny-svc.loadbalancer.server.port=8080"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
< div id = "outline-container-org7fce731" class = "outline-4" >
< h4 id = "org7fce731" > < code > wireguard< / code > - VPN (< a href = "https://github.com/linuxserver/docker-wireguard" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org7fce731" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > wireguard< / span > :
< span class = "org-variable-name" > container_name< / span > : wireguard
< span class = "org-variable-name" > image< / span > : linuxserver/wireguard
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > cap_add< / span > :
- NET_ADMIN
- SYS_MODULE
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- SERVERURL=wireguard.tdehaeze.xyz
- SERVERPORT=51820
- PEERS=4
- PEERDNS=8.8.8.8
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/wireguard:/config
- /lib/modules:/lib/modules
< span class = "org-variable-name" > ports< / span > :
- 51820:51820/udp
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > wireguard< / span > :
< span class = "org-variable-name" > container_name< / span > : wireguard
< span class = "org-variable-name" > image< / span > : weejewel/wg-easy
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > cap_add< / span > :
- NET_ADMIN
- SYS_MODULE
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- WG_HOST=wireguard.tdehaeze.xyz
- PASSWORD=$WIREGUARD_PASS
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/wg-easy:/etc/wireguard
- /lib/modules:/lib/modules
< span class = "org-variable-name" > ports< / span > :
- 51820:51820/udp
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.wireguard-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.wireguard-rtr.rule=Host(`wireguard.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.wireguard-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.wireguard-rtr.service=wireguard-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.wireguard-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.wireguard-svc.loadbalancer.server.port=51821"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
< div id = "outline-container-org3a10948" class = "outline-4" >
< h4 id = "org3a10948" > < code > nginx< / code > - Root (used for Matrix)< / h4 >
< div class = "outline-text-4" id = "text-org3a10948" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > root< / span > :
< span class = "org-variable-name" > container_name< / span > : root
< span class = "org-variable-name" > image< / span > : nginx
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/root/nginx.conf:/etc/nginx/nginx.conf
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.root-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.root-rtr.rule=Host(`$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.root-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.root-rtr.service=root-svc"< / span >
- < span class = "org-string" > "traefik.http.services.root-svc.loadbalancer.server.port=8080"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< p >
< code > nginx.conf< / code >
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > < span class = "org-type" > events< / span > {
}
< span class = "org-type" > http< / span > {
< span class = "org-type" > server< / span > {
server_name tdehaeze.xyz;
listen < span class = "org-highlight-numbers-number" > 8080< / span > ;
< span class = "org-type" > location /.well-known/matrix/client< / span > {
proxy_pass https://matrix.tdehaeze.xyz/.well-known/matrix/client;
proxy_set_header X-Forwarded-For $remote_addr;
}
< span class = "org-type" > location /.well-known/matrix/server< / span > {
proxy_pass https://matrix.tdehaeze.xyz/.well-known/matrix/server;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
}
< / pre >
< / div >
< / div >
< / div >
< div id = "outline-container-org8c0e1cd" class = "outline-4" >
< h4 id = "org8c0e1cd" > < code > diun< / code > - Notification for Docker image updates (< a href = "https://github.com/crazy-max/diun/" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org8c0e1cd" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > diun< / span > :
< span class = "org-variable-name" > container_name< / span > : diun
< span class = "org-variable-name" > image< / span > : crazymax/diun
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- backend
< span class = "org-variable-name" > environment< / span > :
- TZ=$TZ
- LOG_LEVEL=info
- LOG_JSON=false
- DIUN_WATCH_WORKERS=20
- DIUN_WATCH_SCHEDULE=0 7 * * 6
- DIUN_PROVIDERS_DOCKER=true
- DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true
- DIUN_NOTIF_GOTIFY_ENDPOINT=$GOTIFY_URL
- DIUN_NOTIF_GOTIFY_TOKEN=$DIUN_GOTIFY_TOKEN
< span class = "org-variable-name" > volumes< / span > :
- /var/run/docker.sock:/var/run/docker.sock:ro
- $CONFIGDIR/diun:/data
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
< / div >
< div id = "outline-container-orgc2f4f7d" class = "outline-3" >
< h3 id = "orgc2f4f7d" > Websites< / h3 >
< div class = "outline-text-3" id = "text-orgc2f4f7d" >
< / div >
< div id = "outline-container-org2fa5e64" class = "outline-4" >
< h4 id = "org2fa5e64" > < code > wasabi< / code > - Affichtoo< / h4 >
< div class = "outline-text-4" id = "text-org2fa5e64" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > wasabi< / span > :
< span class = "org-variable-name" > container_name< / span > : wasabi
< span class = "org-variable-name" > image< / span > : tdehaeze/affichtoo
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- UID=$PUID
- GID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/wasabi/config:/app/config
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.wasabi-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.wasabi-rtr.rule=Host(`wasabi.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.wasabi-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.wasabi-rtr.service=wasabi-svc"< / span >
- < span class = "org-string" > "traefik.http.services.wasabi-svc.loadbalancer.server.port=8000"< / span >
- < span class = "org-string" > "traefik.http.routers.wasabi-rtr.middlewares=wasabi-auth"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
< div id = "outline-container-orgcf18497" class = "outline-4" >
< h4 id = "orgcf18497" > < code > potaupho< / code > - Affichtoo< / h4 >
< div class = "outline-text-4" id = "text-orgcf18497" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > potaupho< / span > :
< span class = "org-variable-name" > container_name< / span > : potaupho
< span class = "org-variable-name" > image< / span > : tdehaeze/affichtoo
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- UID=$PUID
- GID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/potaupho/config:/app/config
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.potaupho-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.potaupho-rtr.rule=Host(`potaupho.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.potaupho-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.potaupho-rtr.service=potaupho-svc"< / span >
- < span class = "org-string" > "traefik.http.services.potaupho-svc.loadbalancer.server.port=8000"< / span >
- < span class = "org-string" > "traefik.http.routers.potaupho-rtr.middlewares=potaupho-auth"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
< div id = "outline-container-org286b7f5" class = "outline-4" >
< h4 id = "org286b7f5" > < code > homer< / code > - Home page (< a href = "https://github.com/bastienwirtz/homer" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org286b7f5" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > homer< / span > :
< span class = "org-variable-name" > container_name< / span > : homer
< span class = "org-variable-name" > image< / span > : b4bz/homer
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- UID=$PUID
- GID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/homer/assets/:/www/assets
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.homer-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.homer-rtr.rule=Host(`homer.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.homer-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.homer-rtr.service=homer-svc"< / span >
- < span class = "org-string" > "traefik.http.services.homer-svc.loadbalancer.server.port=8080"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > config.yml< / code >
< / p >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-comment" > ---< / span >
< span class = "org-variable-name" > title< / span > : < span class = "org-string" > "Homepage"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > ""< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "assets/homer.png"< / span >
< span class = "org-variable-name" > header< / span > : < span class = "org-constant" > false< / span >
< span class = "org-variable-name" > footer< / span > : < span class = "org-constant" > false< / span >
< span class = "org-variable-name" > columns< / span > : < span class = "org-string" > "auto"< / span >
< span class = "org-variable-name" > connectivityCheck< / span > : < span class = "org-constant" > false< / span >
< span class = "org-variable-name" > theme< / span > : default
< span class = "org-variable-name" > links< / span > : []
< span class = "org-variable-name" > services< / span > :
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Websites"< / span >
< span class = "org-variable-name" > icon< / span > : < span class = "org-string" > "fas fa-desktop"< / span >
< span class = "org-variable-name" > items< / span > :
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Brain"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/brain.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Digital Brain"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://brain.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Wiki"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/wikijs.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Shared Wiki"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://wiki.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Research"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/orgmode.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Research Pages"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://research.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Dotfiles"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/dotfiles.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "My Literate Dotfiles"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://dotfiles.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Miam"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/miam.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Personnal Recipes"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://miam.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Multimedia"< / span >
< span class = "org-variable-name" > icon< / span > : < span class = "org-string" > "fas fa-photo-video"< / span >
< span class = "org-variable-name" > items< / span > :
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Jellyfin"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/jellyfin.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Media Library"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://jellyfin.tdehaeze.xyz"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Audioserve"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/audiobook.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Audiobook Server"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://audiobook.tdehaeze.xyz"< / span >
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Kavita"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/kavita.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Book Library"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://kavita.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Cloud"< / span >
< span class = "org-variable-name" > icon< / span > : < span class = "org-string" > "fas fa-cloud"< / span >
< span class = "org-variable-name" > items< / span > :
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "File Browser"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/cloud.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Simple Personnal Could"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://cloud.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Syncthing"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/syncthing.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "P2P Sync"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://syncthing.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Radicale"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/radicale.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "CalDAV/CardDAV Server"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://radicale.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Miniflux"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/miniflux.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "RSS Feeds"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://rss.tdehaeze.xyz"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "LinkDing"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/linkding.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Bookmark Manager"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://bm.tdehaeze.xyz"< / span >
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Gitea"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/gitea.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Git Server"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://git.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Download"< / span >
< span class = "org-variable-name" > icon< / span > : < span class = "org-string" > "fas fa-download"< / span >
< span class = "org-variable-name" > items< / span > :
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Down"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/down.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Torrent Download"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://down.tdehaeze.xyz/"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Qobuz"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Music Download"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/qobuz.png"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://qobuz.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Transmission"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/transmission.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Torrent Client"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "http://torrent.tdehaeze.xyz:9091/transmission/web/"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Joal"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/joal.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Increase Ratio"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://joal.tdehaeze.xyz/joal/ui/#/"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Config"< / span >
< span class = "org-variable-name" > icon< / span > : < span class = "org-string" > "fas fa-cog"< / span >
< span class = "org-variable-name" > items< / span > :
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Portainer"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/portainer.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Manger Docker"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://portainer.tdehaeze.xyz/#/containers"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Traefik"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/traefik.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Reverse Proxy"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://traefik.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Uptime"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/uptime.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Monitoring"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://uptime.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Commento"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/commento.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Commenting System"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://commento.tdehaeze.xyz"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Gotify"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/gotify.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Messaging System"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://gotify.tdehaeze.xyz"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "JFA-Go"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/jellyfin.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Manage Jellyfin Users"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "http://jfa.tdehaeze.xyz/"< / span >
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Scrutiny"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/scrutiny.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "S.M.A.R.T"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "http://scrutiny.tdehaeze.xyz/web/dashboard"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Home"< / span >
< span class = "org-variable-name" > icon< / span > : < span class = "org-string" > "fas fa-home"< / span >
< span class = "org-variable-name" > items< / span > :
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "OpenWRT"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/openwrt.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Router"< / span >
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://openwrt.tdehaeze.xyz/"< / span >
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Home Assistant"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/homeassistant.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Home Assistant"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "http://home.tdehaeze.xyz:8123"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Changedetection.io"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/changedetection.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Detect change in websites"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://change.tdehaeze.xyz"< / span >
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Zigbee2MQTT"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/zigbee2mqtt.png"< / span >
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Zigbee2MQTT"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://zigbee2mqtt.tdehaeze.xyz/"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "Node Red"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/node-red.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "Event-driven applications"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://node-red.tdehaeze.xyz/"< / span >
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "ESPHome"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/esphome.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "System to control ESP8266/ESP32"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://esphome.tdehaeze.xyz/"< / span >
2021-10-25 14:37:10 +02:00
- < span class = "org-variable-name" > name< / span > : < span class = "org-string" > "OctoPrint"< / span >
< span class = "org-variable-name" > logo< / span > : < span class = "org-string" > "/assets/tools/octoprint.png"< / span >
< span class = "org-variable-name" > subtitle< / span > : < span class = "org-string" > "3D-Printing"< / span >
< span class = "org-variable-name" > url< / span > : < span class = "org-string" > "https://octoprint.tdehaeze.xyz/"< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org5915f1a" class = "outline-4" >
< h4 id = "org5915f1a" > < code > hugo< / code > - Wiki + Blog (< a href = "https://git.tdehaeze.xyz/tdehaeze/digital-brain" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org5915f1a" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > hugo< / span > :
< span class = "org-variable-name" > container_name< / span > : hugo
< span class = "org-variable-name" > image< / span > : tdehaeze/hugo-caddy
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- REPO=git.tdehaeze.xyz/tdehaeze/digital-brain
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.hugo-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.hugo-rtr.rule=Host(`brain.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.hugo-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.hugo-rtr.service=hugo-svc"< / span >
- < span class = "org-string" > "traefik.http.services.hugo-svc.loadbalancer.server.port=2015"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgd0e4896" class = "outline-4" >
< h4 id = "orgd0e4896" > < code > research< / code > - Research Pages (< a href = "https://git.tdehaeze.xyz/tdehaeze/research-home-page" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgd0e4896" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > caddy< / span > :
< span class = "org-variable-name" > container_name< / span > : caddy
< span class = "org-variable-name" > image< / span > : abiosoft/caddy:1.0.3-no-stats
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- PLUGINS=git
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/caddy/Caddyfile:/etc/Caddyfile
- $CONFIGDIR/web:/srv
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - ~/.ssh:/root/.ssh< / span >
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.caddy-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.caddy-rtr.rule=Host(`research.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.caddy-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.caddy-rtr.service=caddy-svc"< / span >
- < span class = "org-string" > "traefik.http.services.caddy-svc.loadbalancer.server.port=2015"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< p >
< code > Caddyfile< / code >
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > 0.0.0.0:< span class = "org-highlight-numbers-number" > 2015< / span > {
root /srv/www/
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< span class = "org-type" > git< / span > {
repo https://git.tdehaeze.xyz/tdehaeze/research-home-page
path /srv/www/
interval -1
hook /research-home-page/webhook QHZgAKjD8q2v54Ru
then git submodule update --init --recursive --merge
}
}
2021-10-25 14:37:10 +02:00
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orge58f051" class = "outline-4" >
< h4 id = "orge58f051" > < code > dotfiles< / code > - Dotfiles (< a href = "https://git.tdehaeze.xyz/tdehaeze/literate-dotfiles" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orge58f051" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > dotfiles< / span > :
< span class = "org-variable-name" > container_name< / span > : dotfiles
< span class = "org-variable-name" > image< / span > : abiosoft/caddy:1.0.3-no-stats
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- PLUGINS=git
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/dotfiles/Caddyfile:/etc/Caddyfile
- $CONFIGDIR/dotfiles/www:/srv/www
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.dotfiles-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.dotfiles-rtr.rule=Host(`dotfiles.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.dotfiles-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.dotfiles-rtr.service=dotfiles-svc"< / span >
- < span class = "org-string" > "traefik.http.services.dotfiles-svc.loadbalancer.server.port=2015"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< p >
< code > Caddyfile< / code >
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > 0.0.0.0:< span class = "org-highlight-numbers-number" > 2015< / span > {
root /srv/www/docs/
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< span class = "org-type" > git< / span > {
repo https://git.tdehaeze.xyz/tdehaeze/literate-dotfiles
path /srv/www/
interval -1
hook /literate-dotfiles/webhook QHZgAKjD8q2v54Ru
}
}
2021-10-25 14:37:10 +02:00
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgb2d17df" class = "outline-4" >
< h4 id = "orgb2d17df" > < code > family-page< / code > - Dotfiles (< a href = "https://git.tdehaeze.xyz/tdehaeze/family-page" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgb2d17df" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > family-page< / span > :
< span class = "org-variable-name" > container_name< / span > : family-page
< span class = "org-variable-name" > image< / span > : abiosoft/caddy:1.0.3-no-stats
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- PUID=$PUID
- PGID=$PGID
2021-10-25 14:37:10 +02:00
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- PLUGINS=git
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/family-page/Caddyfile:/etc/Caddyfile
- $CONFIGDIR/family-page/www:/srv/www
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.family-page-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.family-page-rtr.rule=Host(`help.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.family-page-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.family-page-rtr.service=family-page-svc"< / span >
- < span class = "org-string" > "traefik.http.services.family-page-svc.loadbalancer.server.port=2015"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > Caddyfile< / code >
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > 0.0.0.0:< span class = "org-highlight-numbers-number" > 2015< / span > {
root /srv/www/
< span class = "org-type" > git< / span > {
repo https://git.tdehaeze.xyz/tdehaeze/family-page
path /srv/www/
interval -1
hook /family-page/webhook 0fdVzNShbcmw
}
}
< / pre >
< / div >
2021-10-25 14:37:10 +02:00
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgafcb1b0" class = "outline-4" >
< h4 id = "orgafcb1b0" > < code > wikijs< / code > - Wiki App (< a href = "https://github.com/Requarks/wiki" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgafcb1b0" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > wikijs< / span > :
< span class = "org-variable-name" > image< / span > : ghcr.io/linuxserver/wikijs:version-2.5.201
< span class = "org-variable-name" > container_name< / span > : wikijs
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/wikijs/config:/config
- $CONFIGDIR/wikijs/data:/data
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.wikijs-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.wikijs-rtr.rule=Host(`wiki.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.wikijs-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.wikijs-rtr.service=wikijs-svc"< / span >
- < span class = "org-string" > "traefik.http.services.wikijs-svc.loadbalancer.server.port=3000"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orga021ebb" class = "outline-4" >
< h4 id = "orga021ebb" > < code > commento< / code > - Commenting system (< a href = "https://github.com/adtac/commento" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orga021ebb" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > commento< / span > :
< span class = "org-variable-name" > container_name< / span > : commento
< span class = "org-variable-name" > image< / span > : registry.gitlab.com/commento/commento
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
- backend
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > ports:< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - 8080:8080< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- UID=$PUID
- GID=$PGID
- COMMENTO_ORIGIN=https://commento.tdehaeze.xyz/
- COMMENTO_PORT=8080
- COMMENTO_POSTGRES=postgres://postgres:$COMMENTO_DB_PASSWORD@commento_db:5432/commento?sslmode=disable
- COMMENTO_SMTP_HOST=smtp.gmail.com
- COMMENTO_SMTP_PORT=587
- COMMENTO_SMTP_USERNAME=tdehaeze.xyz@gmail.com
- COMMENTO_SMTP_PASSWORD=$GMAIL_PASS
- COMMENTO_SMTP_FROM_ADDRESS=tdehaeze.xyz@gmail.com
< span class = "org-variable-name" > depends_on< / span > :
- commento_db
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.commento-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.commento-rtr.rule=Host(`commento.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.commento-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.commento-rtr.service=commento-svc"< / span >
- < span class = "org-string" > "traefik.http.services.commento-svc.loadbalancer.server.port=8080"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > commento_db< / span > :
< span class = "org-variable-name" > container_name< / span > : commento_db
< span class = "org-variable-name" > image< / span > : postgres:13
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- backend
< span class = "org-variable-name" > environment< / span > :
- POSTGRES_DB=commento
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=$COMMENTO_DB_PASSWORD
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/commento_db:/var/lib/postgresql/data
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
2021-10-25 14:37:10 +02:00
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org5e7f2a2" class = "outline-4" >
< h4 id = "org5e7f2a2" > < code > mealie< / code > - Recipe Manager (< a href = "https://github.com/hay-kot/mealie" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org5e7f2a2" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > miam< / span > :
< span class = "org-variable-name" > container_name< / span > : miam
< span class = "org-variable-name" > image< / span > : hkotel/mealie
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- db_type=sqlite
- UID=$PUID
- GID=$PGID
2021-10-25 14:37:10 +02:00
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/mealie:/app/data
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.miam-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.miam-rtr.rule=Host(`miam.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.miam-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.miam-rtr.service=miam-svc"< / span >
- < span class = "org-string" > "traefik.http.services.miam-svc.loadbalancer.server.port=80"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org4c820cc" class = "outline-4" >
< h4 id = "org4c820cc" > < code > gitea< / code > - Git server (< a href = "https://github.com/go-gitea/gitea" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org4c820cc" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > gitea< / span > :
< span class = "org-variable-name" > container_name< / span > : git
< span class = "org-variable-name" > image< / span > : gitea/gitea:1.13.2
< span class = "org-variable-name" > depends_on< / span > :
- gitea_db
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
- backend
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/gitea:/data
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- SSH_PORT=$GITEA_SSH_PORT
< span class = "org-variable-name" > ports< / span > :
- < span class = "org-string" > "2222:22"< / span >
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.git-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.git-rtr.rule=Host(`git.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.git-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.git-rtr.service=git-svc"< / span >
- < span class = "org-string" > "traefik.http.services.git-svc.loadbalancer.server.port=3000"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > gitea_db< / span > :
< span class = "org-variable-name" > container_name< / span > : gitea_db
< span class = "org-variable-name" > image< / span > : mariadb:10
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- backend
< span class = "org-variable-name" > ports< / span > :
- 3306:3306
< span class = "org-variable-name" > environment< / span > :
- MYSQL_ROOT_PASSWORD=$GITEA_DB_MYSQL_ROOT_PASSWORD
- MYSQL_DATABASE=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=$GITEA_DB_MYSQL_PASSWORD
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/mariadb:/var/lib/mysql
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org45704d1" class = "outline-4" >
< h4 id = "org45704d1" > < code > changedetection< / code > - Detect change in websites (< a href = "https://github.com/dgtlmoon/changedetection.io" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org45704d1" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > changedetection< / span > :
< span class = "org-variable-name" > container_name< / span > : changedetection
< span class = "org-variable-name" > image< / span > : ghcr.io/dgtlmoon/changedetection.io
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- UID=$PUID
- GID=$PGID
2021-10-25 14:37:10 +02:00
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- BASE_URL=https://change.tdehaeze.xyz
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/changedetection:/datastore
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.changedetection-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.changedetection-rtr.rule=Host(`change.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.changedetection-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.changedetection-rtr.service=changedetection-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.changedetection-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.changedetection-svc.loadbalancer.server.port=5000"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org516c291" class = "outline-3" >
< h3 id = "org516c291" > Multimedia< / h3 >
< div class = "outline-text-3" id = "text-org516c291" >
< / div >
< div id = "outline-container-orgd1678b7" class = "outline-4" >
< h4 id = "orgd1678b7" > < code > jellyfin< / code > - Media server (< a href = "https://hub.docker.com/r/linuxserver/jellyfin" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgd1678b7" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > jellyfin< / span > :
< span class = "org-variable-name" > container_name< / span > : jellyfin
< span class = "org-variable-name" > image< / span > : linuxserver/jellyfin
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/jellyfin:/config
- /srv/storage/TVShows:/data/tvshows
- /srv/storage/Documentaries:/data/documentaries
- /srv/storage/LiveMusic:/data/livemusic
- /srv/storage/Animes:/data/animes
- /srv/storage/Movies:/data/movies
- /srv/storage/Music:/data/music
- /srv/storage/StandUp:/data/standup
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > group_add< / span > :
- 109
< span class = "org-variable-name" > devices< / span > :
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > VAAPI Devices< / span >
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
< span class = "org-variable-name" > ports< / span > :
- 8096:8096
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.jellyfin-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.jellyfin-rtr.rule=Host(`jellyfin.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.jellyfin-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.jellyfin-rtr.service=jellyfin-svc"< / span >
- < span class = "org-string" > "traefik.http.services.jellyfin-svc.loadbalancer.server.port=8096"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orga7a2ccb" class = "outline-4" >
< h4 id = "orga7a2ccb" > < code > jfa-go< / code > - Manage Jellyfin Users (< a href = "https://github.com/hrfee/jfa-go" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orga7a2ccb" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > jfa< / span > :
< span class = "org-variable-name" > container_name< / span > : jfa
< span class = "org-variable-name" > image< / span > : hrfee/jfa-go
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > depends_on< / span > :
- jellyfin
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/jfa:/data
- $CONFIGDIR/jellyfin:/jf
- /etc/localtime:/etc/localtime:ro
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.jfa-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.jfa-rtr.rule=Host(`jfa.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.jfa-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.jfa-rtr.service=jfa-svc"< / span >
- < span class = "org-string" > "traefik.http.services.jfa-svc.loadbalancer.server.port=8056"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgcb89e08" class = "outline-4" >
< h4 id = "orgcb89e08" > < code > audioserve< / code > - Audiobook server (< a href = "https://github.com/izderadicka/audioserve" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgcb89e08" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > audioserve< / span > :
< span class = "org-variable-name" > container_name< / span > : audioserve
< span class = "org-variable-name" > image< / span > : izderadicka/audioserve
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > command< / span > : /audiobooks
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- AUDIOSERVE_SHARED_SECRET=$AUDIOSERVE_SHARED_SECRET
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- /srv/storage/AudioBooks:/audiobooks
- /etc/localtime:/etc/localtime:ro
- $CONFIGDIR/audioserve:/home/audioserve/.audioserve
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.audioserve-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.audioserve-rtr.rule=Host(`audiobook.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.audioserve-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.audioserve-rtr.service=audioserve-svc"< / span >
- < span class = "org-string" > "traefik.http.services.audioserve-svc.loadbalancer.server.port=3000"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org22045a7" class = "outline-4" >
< h4 id = "org22045a7" > < code > kavita< / code > - Reading server (< a href = "https://github.com/Kareadita/Kavita" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org22045a7" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > kavita< / span > :
< span class = "org-variable-name" > container_name< / span > : kavita
< span class = "org-variable-name" > image< / span > : kizaing/kavita:latest
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
2022-05-09 10:05:23 +02:00
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- TZ=$TZ
- UID=$PUID
- GID=$PGID
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/kavita:/kavita/config
- /srv/storage/Books:/books
- /srv/storage/Scans:/scans
- /srv/storage/Comics:/comics
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.kavita-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.kavita-rtr.rule=Host(`kavita.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.kavita-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.kavita-rtr.service=kavita-svc"< / span >
- < span class = "org-string" > "traefik.http.services.kavita-svc.loadbalancer.server.port=5000"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org80381d5" class = "outline-3" >
< h3 id = "org80381d5" > Cloud< / h3 >
< div class = "outline-text-3" id = "text-org80381d5" >
< / div >
< div id = "outline-container-org3058742" class = "outline-4" >
< h4 id = "org3058742" > < code > syncthing< / code > - File Synchronization (< a href = "https://hub.docker.com/r/linuxserver/syncthing" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org3058742" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > syncthing< / span > :
< span class = "org-variable-name" > container_name< / span > : syncthing
< span class = "org-variable-name" > image< / span > : linuxserver/syncthing
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- UMASK_SET=022
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/syncthing:/config
- /srv/storage/Cloud:/Cloud
- /srv/storage/Cloud/pictures/phone:/Pictures
- /srv/storage/Cloud/pdfs:/Onyx/Download
- /srv/storage/Cloud/pdfs-notes:/Onyx/note
- /srv/storage/Cloud/.stfolder:/Onyx/.stfolder
- /srv/storage/.password-store:/.password-store
< span class = "org-variable-name" > ports< / span > :
- 22000:22000
- 21027:21027/udp
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.syncthing-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.syncthing-rtr.rule=Host(`syncthing.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.syncthing-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.syncthing-rtr.service=syncthing-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.syncthing-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.syncthing-svc.loadbalancer.server.port=8384"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org8ac0e84" class = "outline-4" >
< h4 id = "org8ac0e84" > < code > sync-anne< / code > - File Synchronization (< a href = "https://hub.docker.com/r/linuxserver/syncthing" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org8ac0e84" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > sync-anne< / span > :
< span class = "org-variable-name" > container_name< / span > : sync-anne
< span class = "org-variable-name" > image< / span > : linuxserver/syncthing
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- UMASK_SET=022
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/sync-anne:/config
- /srv/storage/Users/anne:/Cloud
- /srv/storage/Users/anne/Photos/telephone:/telephone
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > ports< / span > :
2022-05-09 10:05:23 +02:00
- 22001:22001
- 21028:21028/udp
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.sync-anne-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-anne-rtr.rule=Host(`sync-anne.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-anne-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-anne-rtr.service=sync-anne-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-anne-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.sync-anne-svc.loadbalancer.server.port=8384"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgf5be88f" class = "outline-4" >
< h4 id = "orgf5be88f" > < code > sync-jm< / code > - File Synchronization (< a href = "https://hub.docker.com/r/linuxserver/syncthing" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgf5be88f" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > sync-jm< / span > :
< span class = "org-variable-name" > container_name< / span > : sync-jm
< span class = "org-variable-name" > image< / span > : linuxserver/syncthing
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- UMASK_SET=022
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/sync-jm:/config
- /srv/storage/Users/jean-marie:/Cloud
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - /srv/storage/Users/jean-marie/Photos/telephone:/telephone< / span >
< span class = "org-variable-name" > ports< / span > :
- 22002:22002
- 21029:21029/udp
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.sync-jm-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-jm-rtr.rule=Host(`sync-jm.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-jm-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-jm-rtr.service=sync-jm-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-jm-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.sync-jm-svc.loadbalancer.server.port=8384"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org5bdf3d0" class = "outline-4" >
< h4 id = "org5bdf3d0" > < code > sync-ju< / code > - File Synchronization (< a href = "https://hub.docker.com/r/linuxserver/syncthing" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org5bdf3d0" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > sync-ju< / span > :
< span class = "org-variable-name" > container_name< / span > : sync-ju
< span class = "org-variable-name" > image< / span > : linuxserver/syncthing
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- UMASK_SET=022
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/sync-ju:/config
- /srv/storage/Users/juliette:/Cloud
< span class = "org-variable-name" > ports< / span > :
- 22003:22003
- 21030:21030/udp
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.sync-ju-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-ju-rtr.rule=Host(`sync-ju.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-ju-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-ju-rtr.service=sync-ju-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.sync-ju-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.sync-ju-svc.loadbalancer.server.port=8384"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org9320c30" class = "outline-4" >
< h4 id = "org9320c30" > < code > filebrowser< / code > - Web file browser (< a href = "https://hub.docker.com/r/filebrowser/filebrowser" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org9320c30" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > filebrowser< / span > :
< span class = "org-variable-name" > container_name< / span > : filebrowser
< span class = "org-variable-name" > image< / span > : filebrowser/filebrowser
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/filebrowser/database.db:/database.db
- $CONFIGDIR/filebrowser/.filebrowser.json:/.filebrowser.json
- /srv/storage:/srv/storage
< span class = "org-variable-name" > user< / span > : < span class = "org-string" > "${PUID}:${PGID}"< / span >
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.filebrowser-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.filebrowser-rtr.rule=Host(`cloud.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.filebrowser-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.filebrowser-rtr.service=filebrowser-svc"< / span >
- < span class = "org-string" > "traefik.http.services.filebrowser-svc.loadbalancer.server.port=80"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > .filebrowser.json< / code >
< / p >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-json" > {
< span class = "org-keyword" > "port"< / span > : < span class = "org-highlight-numbers-number" > 80< / span > ,
< span class = "org-keyword" > "baseURL"< / span > : < span class = "org-string" > ""< / span > ,
< span class = "org-keyword" > "address"< / span > : < span class = "org-string" > ""< / span > ,
< span class = "org-keyword" > "log"< / span > : < span class = "org-string" > "stdout"< / span > ,
< span class = "org-keyword" > "database"< / span > : < span class = "org-string" > "/database.db"< / span > ,
< span class = "org-keyword" > "root"< / span > : < span class = "org-string" > "/srv/storage"< / span >
}
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org8430ef9" class = "outline-4" >
< h4 id = "org8430ef9" > < code > photoprism< / code > (< a href = "https://github.com/photoprism/photoprism" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org8430ef9" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > photoprism< / span > :
< span class = "org-variable-name" > container_name< / span > : photoprism
< span class = "org-variable-name" > image< / span > : photoprism/photoprism:latest
< span class = "org-variable-name" > depends_on< / span > :
- photoprism_db
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
2022-05-09 10:05:23 +02:00
- backend
< span class = "org-variable-name" > security_opt< / span > :
- seccomp:unconfined
- apparmor:unconfined
< span class = "org-variable-name" > user< / span > : < span class = "org-string" > "${PUID}:${PGID}"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > PHOTOPRISM_ADMIN_PASSWORD< / span > : < span class = "org-string" > "pi3DnacevhCQ"< / span >
< span class = "org-variable-name" > PHOTOPRISM_SITE_URL< / span > : < span class = "org-string" > "https://photos.tdehaeze.xyz/"< / span >
< span class = "org-variable-name" > PHOTOPRISM_ORIGINALS_LIMIT< / span > : 500
< span class = "org-variable-name" > PHOTOPRISM_READONLY< / span > : < span class = "org-string" > "false"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DISABLE_WEBDAV< / span > : < span class = "org-string" > "true"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DISABLE_TENSORFLOW< / span > : < span class = "org-string" > "true"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DISABLE_FACES< / span > : < span class = "org-string" > "true"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DISABLE_CLASSIFICATION< / span > : < span class = "org-string" > "true"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DARKTABLE_PRESETS< / span > : < span class = "org-string" > "false"< / span > < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > Enables Darktable presets and disables concurrent RAW conversion< / span >
< span class = "org-variable-name" > PHOTOPRISM_DATABASE_DRIVER< / span > : < span class = "org-string" > "mysql"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DATABASE_SERVER< / span > : < span class = "org-string" > "photoprism_db:3306"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DATABASE_NAME< / span > : < span class = "org-string" > "photoprism"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DATABASE_USER< / span > : < span class = "org-string" > "photoprism"< / span >
< span class = "org-variable-name" > PHOTOPRISM_DATABASE_PASSWORD< / span > : < span class = "org-string" > "PMsLF5577UagH08c"< / span >
< span class = "org-variable-name" > PHOTOPRISM_UID< / span > : $PUID
< span class = "org-variable-name" > PHOTOPRISM_GID< / span > : $PGID
< span class = "org-variable-name" > HOME< / span > : < span class = "org-string" > "/photoprism"< / span >
< span class = "org-variable-name" > working_dir< / span > : < span class = "org-string" > "/photoprism"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "/srv/storage/Cloud/pictures:/photoprism/originals"< / span > < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > original media files (photos and videos)< / span >
- < span class = "org-string" > "$CONFIGDIR/photoprism/storage:/photoprism/storage"< / span > < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > *writable* storage folder for cache, database, and sidecar files (never remove)< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - "$CONFIGDIR/photoprism/originals:/photoprism/originals" # original media files (photos and videos)< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - "/example/family:/photoprism/originals/family" # *additional* media folders can be mounted like this< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - "~/Import:/photoprism/import" # *optional* base folder from which files can be imported to originals< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.photos-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.photos-rtr.rule=Host(`photos.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.photos-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.photos-rtr.service=photos-svc"< / span >
- < span class = "org-string" > "traefik.http.services.photos-svc.loadbalancer.server.port=2342"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > photoprism_db< / span > :
< span class = "org-variable-name" > container_name< / span > : photoprism_db
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > image< / span > : mariadb:10.6
< span class = "org-variable-name" > networks< / span > :
- backend
< span class = "org-variable-name" > security_opt< / span > :
- seccomp:unconfined
- apparmor:unconfined
< span class = "org-variable-name" > command< / span > : mysqld --innodb-buffer-pool-size=128M --transaction-isolation=READ-COMMITTED --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --max-connections=512 --innodb-rollback-on-timeout=OFF --innodb-lock-wait-timeout=120
< span class = "org-variable-name" > volumes< / span > :
- < span class = "org-string" > "$CONFIGDIR/photoprism_db/database:/var/lib/mysql"< / span >
< span class = "org-variable-name" > environment< / span > :
< span class = "org-variable-name" > MYSQL_ROOT_PASSWORD< / span > : ZyZ4vhBmnERp5Amt
< span class = "org-variable-name" > MYSQL_DATABASE< / span > : photoprism
< span class = "org-variable-name" > MYSQL_USER< / span > : photoprism
< span class = "org-variable-name" > MYSQL_PASSWORD< / span > : PMsLF5577UagH08c
< / pre >
< / div >
2021-10-25 14:37:10 +02:00
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org0a42177" class = "outline-4" >
< h4 id = "org0a42177" > < code > radicale< / code > - CalDAV/CardDAV server (< a href = "https://github.com/tomsquest/docker-radicale" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org0a42177" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > radicale< / span > :
< span class = "org-variable-name" > container_name< / span > : radicale
< span class = "org-variable-name" > image< / span > : tomsquest/docker-radicale:latest
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/radicale/config:/config:ro
- $CONFIGDIR/radicale/data:/data
< span class = "org-variable-name" > environment< / span > :
- TZ=$TZ
- UID=$PUID
- GID=$PGID
< span class = "org-variable-name" > security_opt< / span > :
- no-new-privileges:true
< span class = "org-variable-name" > cap_drop< / span > :
- ALL
< span class = "org-variable-name" > cap_add< / span > :
- SETUID
- SETGID
- CHOWN
- KILL
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.radicale-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.radicale-rtr.rule=Host(`radicale.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.radicale-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.radicale-rtr.service=radicale-svc"< / span >
- < span class = "org-string" > "traefik.http.services.radicale-svc.loadbalancer.server.port=5232"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > config< / code >
< / p >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
< pre class = "src src-conf" > [< span class = "org-type" > server< / span > ]
< span class = "org-variable-name" > hosts< / span > = 0.0.0.0:< span class = "org-highlight-numbers-number" > 5232< / span >
[< span class = "org-type" > auth< / span > ]
< span class = "org-variable-name" > type< / span > = htpasswd
< span class = "org-variable-name" > htpasswd_filename< / span > = /config/users
< span class = "org-variable-name" > htpasswd_encryption< / span > = md5
[< span class = "org-type" > storage< / span > ]
< span class = "org-variable-name" > filesystem_folder< / span > = /data/collections
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org981f90a" class = "outline-4" >
< h4 id = "org981f90a" > < code > linkding< / code > - Bookmark manager (< a href = "https://github.com/sissbruecker/linkding" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org981f90a" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > linkding< / span > :
< span class = "org-variable-name" > container_name< / span > : linkding
< span class = "org-variable-name" > image< / span > : sissbruecker/linkding:latest
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/linkding:/etc/linkding/data
< span class = "org-variable-name" > environment< / span > :
- TZ=$TZ
- PUID=$PUID
- PGID=$PGID
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.linkding-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.linkding-rtr.rule=Host(`bm.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.linkding-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.linkding-rtr.service=linkding-svc"< / span >
- < span class = "org-string" > "traefik.http.services.linkding-svc.loadbalancer.server.port=9090"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
2021-10-25 14:37:10 +02:00
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgda8656c" class = "outline-4" >
< h4 id = "orgda8656c" > < code > restic-b2< / code > - Automatic backups on BackBlaze (< a href = "https://github.com/djmaze/resticker/" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgda8656c" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > restic-b2< / span > :
< span class = "org-variable-name" > container_name< / span > : restic-b2
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > image< / span > : mazzolino/restic
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- BACKUP_CRON=0 30 0 * * *
- RESTIC_REPOSITORY=b2:tdehaeze:/restic
- RESTIC_PASSWORD=$RESTIC_PASSWORD
- RESTIC_BACKUP_SOURCES=/source
- RESTIC_FORGET_ARGS=--group-by tag --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
- RESTIC_BACKUP_ARGS=--tag local --exclude-file /exclude.txt
- B2_ACCOUNT_ID=$RESTIC_B2_ACCOUNT_ID
- B2_ACCOUNT_KEY=$RESTIC_B2_ACCOUNT_KEY
- UID=$PUID
- GID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- POST_COMMANDS_FAILURE=curl < span class = "org-string" > "https://gotify.tdehaeze.xyz/message?token=$RESTIC_GOTIFY_TOKEN"< / span > -F < span class = "org-string" > "title=Restic B2"< / span > -F < span class = "org-string" > "message=Backup failed"< / span > -F < span class = "org-string" > "priority=5"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/restic-b2/exclude.txt:/exclude.txt:ro
2021-10-25 14:37:10 +02:00
- /srv/storage/Cloud/thesis:/source/Cloud/thesis:ro
- /home/thomas/docker:/source/docker:ro
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< p >
< code > exclude.txt< / code > - Exclude files
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > *.db
*.log
*.log.*
/source/docker/config/gitea/git/
/source/docker/config/guacamole/
/source/docker/config/guacamole_db/
/source/docker/config/mariadb/
/source/docker/config/miniflux_db/
/source/docker/config/jellyfin/data/
/source/docker/config/dotfiles/www/
/source/docker/config/web/www/
< / pre >
< / div >
< / div >
< / div >
< div id = "outline-container-org369a1a4" class = "outline-4" >
< h4 id = "org369a1a4" > < code > restic-aouste< / code > - Automatic backups on Raspberry (< a href = "https://github.com/djmaze/resticker/" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org369a1a4" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > restic-aouste< / span > :
< span class = "org-variable-name" > container_name< / span > : restic-aouste
< span class = "org-variable-name" > image< / span > : mazzolino/restic
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- BACKUP_CRON=0 30 3 * * *
- RESTIC_REPOSITORY=sftp:thomas@192.168.1.22:/hdd/backup
- RESTIC_PASSWORD=$RESTIC_PASSWORD
- RESTIC_BACKUP_SOURCES=/source
- RESTIC_FORGET_ARGS=--group-by tag --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
- RESTIC_BACKUP_ARGS=--tag local --exclude-file /exclude.txt
- UID=$PUID
- GID=$PGID
- TZ=$TZ
- POST_COMMANDS_FAILURE=curl < span class = "org-string" > "https://gotify.tdehaeze.xyz/message?token=AoWn1nAMGoCE0om"< / span > -F < span class = "org-string" > "title=Restic Aouste"< / span > -F < span class = "org-string" > "message=Backup failed"< / span > -F < span class = "org-string" > "priority=5"< / span >
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/restic-aouste/exclude.txt:/exclude.txt:ro
- /srv/storage/Users:/source/Users:ro
- /home/thomas/.ssh/known_hosts:/root/.ssh/known_hosts:ro
- /home/thomas/.ssh/id_rsa:/root/.ssh/id_rsa:ro
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< p >
< code > exclude.txt< / code > - Exclude files
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > *.db
*.log
*.log.*
< / pre >
< / div >
< / div >
< / div >
< div id = "outline-container-org8c2735c" class = "outline-4" >
< h4 id = "org8c2735c" > < code > miniflux< / code > - RSS reader (< a href = "https://hub.docker.com/r/miniflux/miniflux" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org8c2735c" >
< div class = "org-src-container" >
< pre class = "src src-yaml" > < span class = "org-variable-name" > miniflux< / span > :
< span class = "org-variable-name" > container_name< / span > : miniflux
< span class = "org-variable-name" > image< / span > : miniflux/miniflux
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
- backend
< span class = "org-variable-name" > depends_on< / span > :
- miniflux_db
< span class = "org-variable-name" > environment< / span > :
- DATABASE_URL=postgres://miniflux:SCJWWXqHwehP7f8g@miniflux_db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=$MINIFLUX_ADMIN_NAME
- ADMIN_PASSWORD=$MINIFLUX_ADMIN_PASS
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.miniflux-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.miniflux-rtr.rule=Host(`rss.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.miniflux-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.miniflux-rtr.service=miniflux-svc"< / span >
- < span class = "org-string" > "traefik.http.services.miniflux-svc.loadbalancer.server.port=8080"< / span >
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > miniflux_db< / span > :
< span class = "org-variable-name" > container_name< / span > : miniflux_db
< span class = "org-variable-name" > image< / span > : postgres:12
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- backend
< span class = "org-variable-name" > environment< / span > :
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=$MINIFLUX_POSTGRES_PASSWORD
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/miniflux_db:/var/lib/postgresql/data
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
2021-10-25 14:37:10 +02:00
< / pre >
< / div >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org37f0700" class = "outline-3" >
< h3 id = "org37f0700" > Home< / h3 >
< div class = "outline-text-3" id = "text-org37f0700" >
< / div >
< div id = "outline-container-orga334ff8" class = "outline-4" >
< h4 id = "orga334ff8" > < code > homeassistant< / code > - Home Automation (< a href = "https://hub.docker.com/r/homeassistant/home-assistant" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orga334ff8" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > homeassistant< / span > :
< span class = "org-variable-name" > container_name< / span > : homeassistant
< span class = "org-variable-name" > image< / span > : homeassistant/home-assistant
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-comment-delimiter" > #< / span > < span class = "org-comment" > networks:< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - t2_proxy< / span >
< span class = "org-comment-delimiter" > #< / span > < span class = "org-comment" > ports:< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - target: 8123< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > published: 8123< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > protocol: tcp< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > mode: host< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > privileged< / span > : < span class = "org-constant" > true< / span >
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > ports< / span > :
- 8123:8123
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > network_mode: host< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/homeassistant:/config
- /etc/localtime:/etc/localtime:ro
2021-10-25 14:37:10 +02:00
- /dev/bus/usb:/dev/bus/usb
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.homeassistant-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.homeassistant-rtr.rule=Host(`home.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.homeassistant-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.homeassistant-rtr.service=homeassistant-svc"< / span >
- < span class = "org-string" > "traefik.http.services.homeassistant-svc.loadbalancer.server.port=8123"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - "traefik.http.services.homeassistant-svc.loadbalancer.servers.url=http://172.17.0.1:8123"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgce2bc12" class = "outline-4" >
< h4 id = "orgce2bc12" > < code > mosquitto< / code > - MQTT broker (< a href = "https://github.com/eclipse/mosquitto/" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgce2bc12" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > mosquitto< / span > :
< span class = "org-variable-name" > container_name< / span > : mosquitto
< span class = "org-variable-name" > image< / span > : eclipse-mosquitto
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- UID=$PUID
- GID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > expose< / span > :
- 1883
- 9001
< span class = "org-variable-name" > ports< / span > :
- 1883:1883
- 9001:9001
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/mosquitto/config:/mosquitto/config
- $CONFIGDIR/mosquitto/log:/mosquitto/log
- $CONFIGDIR/mosquitto/data:/mosquitto/data
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org70eb68d" class = "outline-4" >
< h4 id = "org70eb68d" > < code > zigbee2mqtt< / code > - Zigbee to MQTT bridge (< a href = "https://github.com/Koenkk/zigbee2mqtt/" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org70eb68d" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > zigbee2mqtt< / span > :
< span class = "org-variable-name" > container_name< / span > : zigbee2mqtt
< span class = "org-variable-name" > image< / span > : koenkk/zigbee2mqtt
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > privileged< / span > : < span class = "org-constant" > true< / span >
< span class = "org-variable-name" > depends_on< / span > :
- mosquitto
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > networks< / span > :
2022-05-09 10:05:23 +02:00
- t2_proxy
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- UID=$PUID
- GID=$PGID
2021-10-25 14:37:10 +02:00
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/zigbee2mqtt:/app/data
- /run/udev:/run/udev:ro
< span class = "org-variable-name" > devices< / span > :
- /dev/serial/by-id/usb-Silicon_Labs_slae.sh_cc2652rb_stick_-_slaesh_s_iot_stuff_00_12_4B_00_23_93_39_57-if00-port0:/dev/ttyUSB0
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.zigbee2mqtt-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.zigbee2mqtt-rtr.rule=Host(`zigbee2mqtt.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.zigbee2mqtt-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.zigbee2mqtt-rtr.service=zigbee2mqtt-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.zigbee2mqtt-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.zigbee2mqtt-svc.loadbalancer.server.port=8080"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org3299e70" class = "outline-4" >
< h4 id = "org3299e70" > < code > node-red< / code > - Automation tool< / h4 >
< div class = "outline-text-4" id = "text-org3299e70" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > node-red< / span > :
< span class = "org-variable-name" > container_name< / span > : node-red
< span class = "org-variable-name" > image< / span > : nodered/node-red:latest
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- PUID=$PUID
- PGID=$PGID
2021-10-25 14:37:10 +02:00
- TZ=$TZ
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/node-red:/data
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.node-red-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.node-red-rtr.rule=Host(`node-red.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.node-red-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.node-red-rtr.service=node-red-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.node-red-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.node-red-svc.loadbalancer.server.port=1880"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
2022-05-09 10:05:23 +02:00
< / div >
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org19f13d2" class = "outline-4" >
< h4 id = "org19f13d2" > < code > esphome< / code > - Automation tool< / h4 >
< div class = "outline-text-4" id = "text-org19f13d2" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > esphome< / span > :
< span class = "org-variable-name" > container_name< / span > : esphome
< span class = "org-variable-name" > image< / span > : esphome/esphome:latest
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
2022-05-09 10:05:23 +02:00
- t2_proxy
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
- ESPHOME_DASHBOARD_USE_PING=true
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/esphome:/config
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.esphome-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.esphome-rtr.rule=Host(`esphome.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.esphome-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.esphome-rtr.service=esphome-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.esphome-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.esphome-svc.loadbalancer.server.port=6052"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org8c66003" class = "outline-4" >
< h4 id = "org8c66003" > < code > alfawiseu20< / code > - Web interface for 3D printing (< a href = "https://github.com/OctoPrint/OctoPrint" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org8c66003" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > octoprint< / span > :
< span class = "org-variable-name" > container_name< / span > : alfawiseu20
< span class = "org-variable-name" > image< / span > : octoprint/octoprint
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- UID=$PUID
- GID=$PGID
2022-05-09 10:05:23 +02:00
- TZ=$TZ
< span class = "org-variable-name" > privileged< / span > : < span class = "org-constant" > true< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/alfawiseu20:/octoprint
- /dev/bus/usb:/dev/bus/usb
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.alfawiseu20-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.alfawiseu20-rtr.rule=Host(`alfawiseu20.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.alfawiseu20-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.alfawiseu20-rtr.service=alfawiseu20-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.alfawiseu20-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.alfawiseu20-svc.loadbalancer.server.port=80"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org351edd0" class = "outline-4" >
< h4 id = "org351edd0" > < code > tina2< / code > - Web interface for 3D printing (< a href = "https://github.com/OctoPrint/OctoPrint" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org351edd0" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > tina2< / span > :
< span class = "org-variable-name" > container_name< / span > : tina2
< span class = "org-variable-name" > image< / span > : octoprint/octoprint
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- UID=$PUID
- GID=$PGID
2022-05-09 10:05:23 +02:00
- TZ=$TZ
< span class = "org-variable-name" > privileged< / span > : < span class = "org-constant" > true< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/tina2:/octoprint
- /dev/bus/usb:/dev/bus/usb
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
2022-05-09 10:05:23 +02:00
- < span class = "org-string" > "traefik.http.routers.tina2-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.tina2-rtr.rule=Host(`tina2.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.tina2-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.tina2-rtr.service=tina2-svc"< / span >
- < span class = "org-string" > "traefik.http.routers.tina2-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.tina2-svc.loadbalancer.server.port=80"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org5f4ffce" class = "outline-4" >
< h4 id = "org5f4ffce" > < code > ihatemoney< / code > - Tricount Alternative (< a href = "https://github.com/spiral-project/ihatemoney" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-org5f4ffce" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > tricount< / span > :
< span class = "org-variable-name" > container_name< / span > : tricount
< span class = "org-variable-name" > image< / span > : ihatemoney/ihatemoney
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
< span class = "org-variable-name" > networks< / span > :
- t2_proxy
< span class = "org-variable-name" > environment< / span > :
- UID=$PUID
- GID=$PGID
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/tricount:/database
< span class = "org-variable-name" > labels< / span > :
- < span class = "org-string" > "traefik.enable=true"< / span >
- < span class = "org-string" > "traefik.http.routers.tricount-rtr.entrypoints=https"< / span >
- < span class = "org-string" > "traefik.http.routers.tricount-rtr.rule=Host(`tricount.$DOMAINNAME`)"< / span >
- < span class = "org-string" > "traefik.http.routers.tricount-rtr.tls=true"< / span >
- < span class = "org-string" > "traefik.http.routers.tricount-rtr.service=tricount-svc"< / span >
< span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > - "traefik.http.routers.tricount-rtr.middlewares=authelia@docker"< / span >
- < span class = "org-string" > "traefik.http.services.tricount-svc.loadbalancer.server.port=8000"< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org9fd0073" class = "outline-3" >
< h3 id = "org9fd0073" > Download< / h3 >
< div class = "outline-text-3" id = "text-org9fd0073" >
< / div >
< div id = "outline-container-orgf3701ba" class = "outline-4" >
< h4 id = "orgf3701ba" > < code > gluetun< / code > - Provide VPN connection to other containers (< a href = "https://github.com/bubuntux/nordvpn" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgf3701ba" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > gluetun< / span > :
< span class = "org-variable-name" > image< / span > : qmcgaw/gluetun:v3.28.2
< span class = "org-variable-name" > container_name< / span > : gluetun
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > cap_add< / span > :
- NET_ADMIN
< span class = "org-variable-name" > network_mode< / span > : bridge
< span class = "org-variable-name" > ports< / span > :
- 8065:8065 < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > For transmission< / span >
- 9091:9091 < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > For transmission< / span >
- 51413:51413 < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > For transmission< / span >
- 51413:51413/udp < span class = "org-comment-delimiter" > # < / span > < span class = "org-comment" > For transmission< / span >
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
2022-05-09 10:05:23 +02:00
- OPENVPN_USER=$NORDVPN_NAME
- OPENVPN_PASSWORD=$NORDVPN_PASS
- VPNSP=nordvpn
- REGION=France
- SERVER_NUMBER=822
2021-10-25 14:37:10 +02:00
- TZ=$TZ
< span class = "org-variable-name" > volumes< / span > :
2022-05-09 10:05:23 +02:00
- $CONFIGDIR/gluetun:/config
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
2021-10-25 14:37:10 +02:00
< / pre >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-orgccab378" class = "outline-4" >
< h4 id = "orgccab378" > < code > transmission< / code > - Torrent client (< a href = "https://hub.docker.com/r/linuxserver/transmission" > link< / a > )< / h4 >
< div class = "outline-text-4" id = "text-orgccab378" >
2021-10-25 14:37:10 +02:00
< div class = "org-src-container" >
2022-05-09 10:05:23 +02:00
< pre class = "src src-yaml" > < span class = "org-variable-name" > transmission< / span > :
< span class = "org-variable-name" > container_name< / span > : transmission
< span class = "org-variable-name" > image< / span > : lscr.io/linuxserver/transmission
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > restart< / span > : unless-stopped
2022-05-09 10:05:23 +02:00
< span class = "org-variable-name" > network_mode< / span > : container:gluetun
< span class = "org-variable-name" > depends_on< / span > :
- gluetun
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > environment< / span > :
- PUID=$PUID
- PGID=$PGID
- TZ=$TZ
2022-05-09 10:05:23 +02:00
- USER=$TRANSMISSION_NAME
- PASS=$TRANSMISSION_PASS
- TRANSMISSION_WEB_HOME=/flood-for-transmission/
< span class = "org-variable-name" > volumes< / span > :
- $CONFIGDIR/transmission:/config
- /srv/storage/Downloads:/downloads
- /srv/storage/Downloads/watch:/watch
2021-10-25 14:37:10 +02:00
< span class = "org-variable-name" > logging< / span > : < span class = "org-function-name" > *default-logging< / span >
< / pre >
< / div >
< / div >
< / div >
< / div >
2022-05-09 10:05:23 +02:00
< / div >
2021-10-25 14:37:10 +02:00
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org8cb3958" class = "outline-2" >
< h2 id = "org8cb3958" > Cron Jobs< / h2 >
< div class = "outline-text-2" id = "text-org8cb3958" >
2021-10-25 14:37:10 +02:00
< / div >
2022-05-09 10:05:23 +02:00
< div id = "outline-container-org8ae2daa" class = "outline-3" >
< h3 id = "org8ae2daa" > Caddy Update< / h3 >
< div class = "outline-text-3" id = "text-org8ae2daa" >
2021-10-25 14:37:10 +02:00
< p >
Create a script < code > ~/cron/caddy_update.sh< / code > with:
< / p >
< div class = "org-src-container" >
< pre class = "src src-bash" > docker exec caddy /bin/sh -c < span class = "org-string" > "< / span > < span class = "org-type" > < span class = "org-string" > cd< / span > < / span > < span class = "org-string" > /srv/www & & < / span > < span class = "org-type" > < span class = "org-string" > echo< / span > < / span > < span class = "org-string" > -e \"Update repo < / span > < span class = "org-string" > < span class = "org-sh-quoted-exec" > $(< / span > < / span > < span class = "org-sh-quoted-exec" > date< / span > < span class = "org-string" > < span class = "org-sh-quoted-exec" > )< / span > < / span > < span class = "org-string" > \" & & < / span > < span class = "org-type" > < span class = "org-string" > git< / span > < / span > < span class = "org-string" > submodule update --recursive --remote --merge"< / span >
< / pre >
< / div >
< p >
Type < code > crontab -e< / code > and add this line:
< / p >
< div class = "org-src-container" >
< pre class = "src src-conf" > */5 * * * * /home/thomas/cron/caddy_update.sh > > /home/thomas/cron/caddy_update.log 2> & 1
< / pre >
< / div >
< / div >
< / div >
< / div >
< / div >
< div id = "postamble" class = "status" >
< p class = "author" > Author: Dehaeze Thomas< / p >
2022-05-09 10:05:23 +02:00
< p class = "date" > Created: 2022-05-09 lun. 10:04< / p >
2021-10-25 14:37:10 +02:00
< / div >
< / body >
< / html >