This commit is contained in:
2024-05-04 17:03:07 +02:00
parent d535a987d9
commit 1a2c4f7167
67 changed files with 64 additions and 571 deletions

View File

@ -0,0 +1,39 @@
Portainer Stack:
```yaml
version: "3.9"
services:
airsonic:
image: lscr.io/linuxserver/airsonic-advanced:${TAG-latest}
container_name: airsonic
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
volumes:
- ${DOCKER_FOLDER}/airsonic/config:/config
- ${HTPC_FOLDER}/airsonic/music:/music
- ${DOCKER_FOLDER}/airsonic/playlists:/laylists
- ${DOCKER_FOLDER}/airsonic/podcasts:/podcasts
- ${HTPC_FOLDER}/airsonic/media:/media
ports:
- ${PORT-4040}:4040
devices:
- /dev/snd:/dev/snd
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
NET=bridge
TAG=latest
PUID=1000
PGID=1000
PORT=4040
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
DOCKER_FOLDER=
HTPC_FOLDER=
```

View File

@ -0,0 +1,9 @@
Portainer Stack:
```yaml
https://git.sthope.dev/sthope/Docker-Stack-Authentik/raw/branch/master/docker-compose.yml
```
<scrip>
bs(requests.get("https://raw.githubusercontent.com/Sthopeless/portainer-stacks/master/cAdvisor.yml%22).content) .findall(class='word-wrap: break-word; white-space: pre-wrap')
</script>

View File

@ -0,0 +1,35 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
bitwarden:
image: bitwardenrs/server:${TAG-latest}
restart: ${RST-unless-stopped}
container_name: bitwarden
network_mode: ${NET-bridge}
volumes:
- ${DOCKER_FOLDER}/docker/bitwarden:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- 3012:3012
- 80:80
# environment:
# - ADMIN_TOKEN=${super_mega_password}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
super_mega_password=
DOCKER_FOLDER=
```

View File

@ -0,0 +1,4 @@
Portainer Stack:
```yaml
```

View File

@ -0,0 +1,33 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
dillinger:
image: lscr.io/linuxserver/dillinger:${TAG-latest}
container_name: dillinger
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
volumes:
- ${DOCKER_FOLDER}/dillinger:/config
ports:
- ${PORT-8080}:8080
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
PORT=8080
DOCKER_FOLDER=
```

View File

@ -0,0 +1,68 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
drone:
container_name: drone
image: drone/drone:2
restart: ${RST-unless-stopped}
environment:
- DRONE_GITEA_SERVER=
- DRONE_GITEA_CLIENT_ID=
- DRONE_GITEA_CLIENT_SECRET=
- DRONE_RPC_SECRET=
- DRONE_SERVER_HOST=
- DRONE_SERVER_PROTO=https
- DRONE_USER_CREATE=username:myUsername,admin:true
volumes:
- /etc/localtime:/etc/localtime:ro
- /drone/data:/data
ports:
- 80:80
- 443:443
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
drone_runner:
container_name: drone_runner
image: drone/drone-runner-docker:1
restart: ${RST-unless-stopped}
environment:
- DRONE_GITEA_SERVER=
- DRONE_RPC_PROTO=https
- DRONE_RPC_HOST=
- DRONE_RPC_SECRET=
- DRONE_RUNNER_CAPACITY=2
- DRONE_RUNNER_NAME=drone_runner
- DRONE_RUNNER_SECRETS=docker_username:myUsername,docker_password:myPassword
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 3000:3000
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
- hide_container=true
```
<br>
<br>
[Drone Documentation](https://docs.drone.io/) is very detailed and well constructed. Read it to complete the stack above and to find examples on how to use it.
<br>
![drone01](../images/drone/drone01.png){: align=center width=500 }
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,56 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
gitea:
image: gitea/gitea:${TAG-latest}
container_name: gitea
environment:
- USER_UID=${PUID-1000}
- USER_GID=${PGID-1000}
- GITEA__database__HOST=gitea_db:3306
- GITEA__database__NAME=db_name
- GITEA__database__USER=db_username
- GITEA__database__PASSWD=db_password
restart: ${RST-unless-stopped}
volumes:
- /gitea/config:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
depends_on:
- gitea_db
ports:
- 3000:3000
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
gitea_db:
image: lscr.io/linuxserver/mariadb:${TAG-latest}
container_name: gitea_db
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- MYSQL_ROOT_PASSWORD=db_root_password
- TZ=${TZ-Europe/Amsterdam}
- MYSQL_DATABASE=db_name
- MYSQL_USER=db_username
- MYSQL_PASSWORD=db_password
volumes:
- /gitea/db:/config
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
- hide_db=mariadb
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,97 @@
Portainer Stack:
```yaml
---
# DO NOT EDIT
# The .env file has everything you need to edit.
# Run options:
# 1. Use prebuilt images (preferred method):
# run cmd: docker-compose up -d
# 2. Build images on your own machine:
# build cmd: COMPOSE_DOCKER_CLI_BUILD=1 DOCKER_BUILDKIT=1 docker-compose build
# run cmd: docker-compose up -d
version: "3.9"
services:
proxy:
image: reallibrephotos/librephotos-proxy:${tag}
container_name: proxy
restart: unless-stopped
volumes:
- ${myPhotos}:/data
- ${data}/protected_media:/protected_media
ports:
- ${httpPort}:80
depends_on:
- backend
- frontend
db:
image: postgres:13
container_name: db
restart: unless-stopped
environment:
- POSTGRES_USER=${dbUser}
- POSTGRES_PASSWORD=${dbPass}
- POSTGRES_DB=${dbName}
volumes:
- ${data}/db:/var/lib/postgresql/data
command: postgres -c fsync=off -c synchronous_commit=off -c full_page_writes=off -c random_page_cost=1.0
frontend:
image: reallibrephotos/librephotos-frontend:${tag}
container_name: frontend
restart: unless-stopped
depends_on:
- backend
backend:
image: reallibrephotos/librephotos:${tag}
container_name: backend
restart: unless-stopped
volumes:
- ${myPhotos}:/data
- ${data}/protected_media:/protected_media
- ${data}/logs:/logs
- ${data}/cache:/root/.cache
environment:
- SECRET_KEY=${shhhhKey}
- BACKEND_HOST=backend
- ADMIN_EMAIL=${adminEmail}
- ADMIN_USERNAME=${userName}
- ADMIN_PASSWORD=${userPass}
- DB_BACKEND=postgresql
- DB_NAME=${dbName}
- DB_USER=${dbUser}
- DB_PASS=${dbPass}
- DB_HOST=${dbHost}
- DB_PORT=5432
- REDIS_HOST=redis
- REDIS_PORT=6379
- MAPBOX_API_KEY=${mapApiKey}
- WEB_CONCURRENCY=${gunniWorkers}
- SKIP_PATTERNS=${skipPatterns}
- ALLOW_UPLOAD=${allowUpload}
- DEBUG=0
- HEAVYWEIGHT_PROCESS=${HEAVYWEIGHT_PROCESS}
# Wait for Postgres
depends_on:
- db
redis:
image: redis:6
container_name: redis
restart: unless-stopped
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,36 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
librespeed:
image: lscr.io/linuxserver/librespeed:${TAG-latest}
container_name: librespeed
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- PASSWORD=
- CUSTOM_RESULTS=false
volumes:
- librespeed_volume:/config
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
volumes:
librespeed_volume:
external: false
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,65 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
mqtt:
container_name: mqtt
hostname: mqtt
image: eclipse-mosquitto:${TAG-latest}
restart: ${RST-unless-stopped}
network_mode: ${NET-bridge}
user: "1000:1000"
environment:
- TZ=${TZ-Europe/Amsterdam}
volumes:
- /etc/localtime:/etc/localtime:ro
- /mqtt/config:/mosquitto/config
- /mqtt/data:/mosquitto/data
- /mqtt/log:/mosquitto/log
ports:
- 9001:9001
- 1883:1883
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```
Mosquitto configuration file `/mosquitto/config/mosquitto.conf`:
```
listener 1883
persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
log_type all
allow_anonymous false
password_file /mosquitto/config/passwd
```
Create empty file `/mosquitto/config/passwd`
And from the terminal create user sending:
```
docker exec -it mqtt usr/bin/mosquitto_passwd -c /mosquitto/config/passwd USERNAME
```
And if you want to add more users use:
```
docker exec -it mqtt usr/bin/mosquitto_passwd -b /mosquitto/config/passwd NEW_USERNAME PASSWORD
```

View File

@ -0,0 +1,99 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
nextcloud:
image: lscr.io/linuxserver/nextcloud:${TAG-latest}
container_name: nextcloud
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- NEXTCLOUD_UPDATE=1
- DOCKER_MODS=linuxserver/mods:nextcloud-mediadc
network_mode: ${NET-bridge}
volumes:
- ${FOLDERS}/nextcloud/config:/config
- ${FOLDERS}/nextcloud/data:/data
# ports:
# - 52443:443
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
nextcloud_db:
image: lscr.io/linuxserver/mariadb:${TAG-latest}
container_name: nextcloud_db
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- MYSQL_ROOT_PASSWORD=${db_rootpwd}
- MYSQL_DATABASE=${db_name}
- MYSQL_USER=${db_user}
- MYSQL_PASSWORD=${db_password}
volumes:
- ${FOLDERS}/nextcloud/db:/config
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
- db=mariadb
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=1000
PGID=1000
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
FOLDERS=
```
To install Face Detection App, search for the folder `custom-cont-init.d` and create a file eg: `install_custom_php7-dlib.sh` and paste:
```bash
#!/bin/bash
#FLAG="/config/firstbook.log"
FLAG="/usr/lib/php7/modules/pdlib.so"
if [ ! -f $FLAG ]; then
apk add --no-cache --upgrade make cmake gcc g++ php7-dev libx11-dev openblas-dev re2c
rm -rf dlib pdlib
git clone https://github.com/davisking/dlib.git
cd dlib/dlib
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
make
sudo make install
cd /
git clone https://github.com/goodspb/pdlib.git
cd pdlib
phpize
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig ./configure
make
sudo make install
rm -rf /dlib /pdlib
# touch $FLAG
else
echo "Already run of 1st boot. Delete /config/firstboot.log to run again on next boot"
fi
```
And restart the container:
```
docker restart nextcloud
```
If Face Detection still cannot be installed ssh into the container and remove `/usr/lib/php7/modules/pdlib.so`
[Sauce](https://github.com/linuxserver/docker-nextcloud/issues/171)

View File

View File

@ -0,0 +1,21 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
overseerr:
image: lscr.io/linuxserver/overseerr:${TAG-latest}
container_name: overseerr
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
volumes:
- /overseerr:/config
ports:
- 5055:5055
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```

View File

@ -0,0 +1,71 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
photoview:
image: viktorstrate/photoview:2
restart: ${RST-unless-stopped}
ports:
- "8000:80"
depends_on:
- photoview_db
environment:
- PHOTOVIEW_DATABASE_DRIVER=mysql
- PHOTOVIEW_MYSQL_URL=photoview:photosecret@tcp(db)/photoview
- PHOTOVIEW_LISTEN_IP=photoview
- PHOTOVIEW_LISTEN_PORT=80
- PHOTOVIEW_MEDIA_CACHE=/app/cache
# Optional: If you are using Samba/CIFS-Share and experience problems with "directory not found"
# Enable the following Godebug
# - GODEBUG=asyncpreemptoff=1
# Optional: To enable map related features, you need to create a mapbox token.
# A token can be generated for free here https://account.mapbox.com/access-tokens/
# It's a good idea to limit the scope of the token to your own domain, to prevent others from using it.
# - MAPBOX_TOKEN=<YOUR TOKEN HERE>
volumes:
- photoview_cache:/app/cache
# Change This: to the directory where your photos are located on your server.
# If the photos are located at `/home/user/photos`, then change this value
# to the following: `/home/user/photos:/photos:ro`.
# You can mount multiple paths, if your photos are spread across multiple directories.
- ./photos_path:/photos:ro
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
photoview_db:
image: lscr.io/linuxserver/mariadb:${TAG-latest}
restart: ${RST-unless-stopped}
environment:
- TZ=${TZ-Europe/Amsterdam}
- PGID=${PGID-1000}
- PUID=${PUID-1000}
- MYSQL_DATABASE=photoview
- MYSQL_USER=photoview
- MYSQL_PASSWORD=photosecret
- MYSQL_ROOT_PASSWORD=photoviewadmin
volumes:
- photoview_db_data:/config
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
volumes:
photoview_db_data:
photoview_cache:
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,32 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
prowlarr:
image: lscr.io/linuxserver/prowlarr:develop
container_name: prowlarr
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
volumes:
- /prowlarr:/config
ports:
- 9696:9696
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,64 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
swag:
image: lscr.io/linuxserver/swag:${TAG-latest}
container_name: swag
network_mode: ${NET-bridge}
cap_add:
- NET_ADMIN
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- URL=${DOMAIN}
- VALIDATION=${VALIDATION}
- EMAIL=${EMAIL}
- SUBDOMAINS=wildcard
- CERTPROVIDER=zerossl
- DNSPLUGIN=cloudflare
- DHLEVEL=4096
- DOCKER_HOST=dockerproxy
- DOCKER_MODS=linuxserver/mods:swag-dbip|linuxserver/mods:swag-auto-reload|linuxserver/mods:swag-cloudflare-real-ip|linuxserver/mods:swag-dashboard
volumes:
- /docker/nginx:/config
ports:
- 443:443
- 80:80
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
dockerproxy:
image: ghcr.io/tecnativa/docker-socket-proxy:${TAG-latest}
container_name: dockerproxy
network_mode: ${NET-bridge}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
restart: ${RST-unless-stopped}
environment:
- CONTAINERS=1
- POST=0
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
URL=example.com
VALIDATION=DNS
EMAIL=your_real@email.com
RST=unless-stopped
AutoUpdate=true
TAG=latest
```
[More LinuxServer MODS](https://mods.linuxserver.io/?mod=swag)

View File

@ -0,0 +1,31 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
tasmobackup:
image: danmed/tasmobackupv1
container_name: tasmobackup
network_mode: ${NET-bridge}
environment:
- DBTYPE=sqlite
- DBNAME=data/tasmobackup
volumes:
- /tasmota_backups:/var/www/html/data
ports:
- 8259:80
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,28 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
tasmota-device-manager:
image: ghcr.io/sirgoodenough/tdmdock:${TAG-latest}
container_name: tasmota-device-manager
network_mode: ${NET-bridge}
volumes:
- /tasmota_backups/tdm:/config
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
ports:
- 5810:5800
- 5910:5900
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
AutoUpdate=true
```

View File

@ -0,0 +1,68 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
transmission:
image: lscr.io/linuxserver/transmission:${TAG-latest}
container_name: transmission
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- TRANSMISSION_WEB_HOME=/combustion-release/
- USER=username
- PASS=password
volumes:
- /transmission/config:/config
- /transmission/downloads:/downloads
- /transmission/torrents:/watch
ports:
- 9091:9091
- 51413:51413
- 51413:51413/udp
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
<details>
<summary markdown="span"><a href="https://github.com/Secretmapper/combustion">combustion</a></summary>
```
TRANSMISSION_WEB_HOME=/combustion-release/
```
</details>
<details>
<summary markdown="span"><a href="https://github.com/ronggang/transmission-web-control)">transmission-web-control</a></summary>
```
TRANSMISSION_WEB_HOME=/transmission-web-control/
```
</details>
<details>
<summary markdown="span"><a href="https://github.com/endor/kettu">kettu</a></summary>
```
TRANSMISSION_WEB_HOME=/kettu/
```
</details>
<details>
<summary markdown="span"><a href="https://github.com/johman10/flood-for-transmission">flood-for-transmission</a></summary>
```
TRANSMISSION_WEB_HOME=/flood-for-transmission/
```
</details>
<details>
<summary markdown="span"><a href="https://github.com/6c65726f79/Transmissionic">Transmissionic</a></summary>
```
TRANSMISSION_WEB_HOME=/transmissionic/
```
</details>

View File

@ -0,0 +1,38 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
vscode:
image: lscr.io/linuxserver/code-server:${TAG-latest}
container_name: vscode
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- SUDO_PASSWORD=
- PASSWORD=
- PROXY_DOMAIN=
- DEFAULT_WORKSPACE=/config/workspace
- DOCKER_MODS=linuxserver/mods:code-server-docker
volumes:
- /vscode:/config
- /home/user:/config/workspace/space1
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8443:8443
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,24 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
whisparr:
image: cr.hotio.dev/hotio/whisparr:nightly
container_name: whisparr
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- UMASK=002
volumes:
- /whisparr:/config
- /media/xxx:/xxx
- /media/downloads:/downloads
ports:
- 6969:6969
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```

View File

@ -0,0 +1,32 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
wireguard:
image: lscr.io/linuxserver/wireguard:${TAG-latest}
container_name: wireguard
network_mode: ${NET-bridge}
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- SERVERURL=wireguard.sthope.dev
- SERVERPORT=51820
- PEERS=1
- PEERDNS=auto
- INTERNAL_SUBNET=10.13.13.0
- ALLOWEDIPS=0.0.0.0/0
- LOG_CONFS=true
volumes:
- /home/sthope/docker/wireguard:/config
- /lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: unless-stopped
```

View File

@ -0,0 +1,33 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
zigbee2mqtt:
container_name: zigbee2mqtt
hostname: zigbee2mqtt
image: koenkk/zigbee2mqtt:${TAG-latest}
user: "1000:1000"
volumes:
- /zigbee2mqtt:/app/data
- /run/udev:/run/udev:ro
restart: ${RST-unless-stopped}
network_mode: host
privileged: true
environment:
- TZ=${TZ-Europe/Amsterdam}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
- hide_container=false
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,26 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
authelia:
image: authelia/authelia:${TAG-latest}
container_name: authelia
network_mode: ${NET-bridge}
environment:
- TZ=${TZ-Europe/Amsterdam}
volumes:
- /docker/nginx/authelia:/config
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
NET=bridge
TZ=${TZ-Europe/Amsterdam}
RST=unless-stopped
AutoUpdate=true
```

View File

@ -0,0 +1,38 @@
Portainer Stack:
```yaml
version: "3.9"
services:
bazarr:
image: linuxserver/bazarr:${TAG-latest}
container_name: bazarr
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ={TZ-Europe/Amsterdam}
- UMASK_SET=022
volumes:
- ${DOCKER_FOLDER}/htpc/bazarr:/config
- ${HTPC_FOLDER}/media/movies:/movies
- ${HTPC_FOLDER}/media/tvshows:/tv
- ${HTPC_FOLDER}/media/kids:/kids
ports:
- ${PORT-6767}:6767
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
PORT=6767
DOCKER_FOLDER=
HTPC_FOLDER=
```

View File

@ -0,0 +1,40 @@
``yaml
---
version: "3.9"
services:
cryptpad:
image: promasu/cryptpad:${TAG-nginx-alpine}
container_name: ${CNAME-cryptpad}
hostname: ${CNAME-cryptpad}
restart: ${RST-unless-stopped}
environment:
- CPAD_MAIN_DOMAIN=${MAIN_DOMAIN-domain.com}
- CPAD_SANDBOX_DOMAIN=${SANDBOX_DOMAIN-docs.domain.com}
- CPAD_HTTP2_DISABLE=${HTTP2_DISABLE-false}
ports:
- ${PORT_HTTP-80}:80
- ${PORT_HTTPS-443}:443
expose:
- 80
- 443
ulimits:
nofile:
soft: 1000000
hard: 1000000
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
# mkdir -p /docker/cryptpad/{blob,block,customize,data,datastore}
```
Environments:
```
TAG=nginx-alpine
CNAME=cryptpad
RST=unless-stopped
MAIN_DOMAIN=domain.com
SANDBOX_DOMAIN=docs.domain.com
HTTP2_DISABLE=false
PORT_HTTP=80
PORT_HTTPS=443
AutoUpdate=true
```

View File

@ -0,0 +1,36 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
dashy:
image: lissy93/dashy:${TAG-latest}
container_name: dashy
network_mode: ${NET-bridge}
ports:
- ${PORT-80}:80
environment:
- NODE_ENV=production
- UID=${PUID-1000}
- GID=${PGID-1000}
restart: ${RST-unless-stopped}
healthcheck:
test: ['CMD', 'node', '/app/services/healthcheck']
interval: 1m30s
timeout: 10s
retries: 3
start_period: 40s
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
AutoUpdate=true
PORT=80
```

View File

@ -0,0 +1,36 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
digikam:
image: lscr.io/linuxserver/digikam:${TAG-latest}
container_name: digikam
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- SUBFOLDER=/
- KEYBOARD=en-us-qwerty
volumes:
- ${DOCKER_FOLDER}/digikam:/config
ports:
- ${PORT=3000}:3000
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
PORT=3000
DOCKER_FOLDER=
```

View File

@ -0,0 +1,31 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
ethercalc:
container_name: ethercalc
image: audreyt/ethercalc
restart: unless-stopped
network_mode: ${NET-bridge}
ports:
- 8700:8000
environment:
- REDIS_PORT_6379_TCP_ADDR=ethercalc-redis
- REDIS_PORT_6379_TCP_PORT=6379
links:
- ethercalc-redis:redis
labels:
- com.centurylinklabs.watchtower.enable=true
ethercalc-redis:
container_name: ethercalc-redis
image: redis:${TAG-latest}
restart: unless-stopped
network_mode: ${NET-bridge}
command: redis-server --appendonly yes
volumes:
- /docker/redis:/data
labels:
- com.centurylinklabs.watchtower.enable=true
```

View File

@ -0,0 +1,57 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
guacd:
image: lscr.io/linuxserver/guacd:${TAG-latest}
container_name: guacd
network_mode: ${NET-bridge}
ports:
- 4822:4822
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=true
guacamole:
image: guacamole/guacamole:${TAG-latest}
container_name: guacamole
network_mode: ${NET-bridge}
environment:
- GUACD_LOG_LEVEL=debug
- GUACD_PORT=4822
- GUACD_HOSTNAME=guacd
- MYSQL_HOSTNAME=guacadb
- MYSQL_PORT=3306
- MYSQL_DATABASE=guacadb
- MYSQL_USER=guacadb_username
- MYSQL_PASSWORD=guacadb_password
ports:
- 8080:8080
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=true
guacadb:
image: lscr.io/linuxserver/mariadb:${TAG-latest}
container_name: guacadb
network_mode: ${NET-bridge}
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=guacadb_root_password
- TZ=${TZ-Europe/Amsterdam}
- MYSQL_DATABASE=guacadb
- MYSQL_USER=guacadb_username
- MYSQL_PASSWORD=guacadb_password
volumes:
- /docker/guacamole/db:/config
ports:
- 3306:3306
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=true
```

View File

@ -0,0 +1,36 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
heimdall:
image: lscr.io/linuxserver/heimdall:${TAG-latest}
container_name: heimdall
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
volumes:
- ${Dir_Heimdall}:/config
ports:
- 33443:443
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
HOME_FOLDER=/home/username/
CONTAINER_NAME=Heimdall
Dir_Heimdall=${HOME_FOLDER}${CONTAINER_NAME}
```

View File

@ -0,0 +1,71 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
invidious:
image: quay.io/invidious/invidious:${TAG-latest}
container_name: invidious
restart: ${RST-unless-stopped}
network_mode: ${NET_MODE-bridge}
ports:
- ${PORT_INVIDIOUS}:3000
environment:
INVIDIOUS_CONFIG: |
db:
dbname: ${DB_NAME-invidious}
user: ${DB_USER-kemal}
password: ${DB_PWD-kemal}
host: invidious-db
port: 5432
check_tables: true
force_resolve: ipv4
dark_mode: false
statistics_enabled: true
registration_enabled: false
captcha_enabled: false
admins: ["sthope"]
default_user_preferences:
locale: en-US
region: PT
healthcheck:
test: wget -nv --tries=1 --spider http://127.0.0.1:3000/api/v1/comments/jNQXAC9IVRw || exit 1
interval: 30s
timeout: 5s
retries: 2
depends_on:
- invidious-db
invidious-db:
image: docker.io/library/postgres:${TAG-latest}
container_name: invidious-db
restart: ${RST-unless-stopped}
network_mode: ${NET_MODE-bridge}
volumes:
- ${VOLUME_DB_DATA}:/var/lib/postgresql/data
- ${VOLUME_DB_SQL}:/config/sql
- ${VOLUME_DB_SCRIPT}:/docker-entrypoint-initdb.d/init-invidious-db.sh
environment:
POSTGRES_DB: ${DB_NAME-invidious}
POSTGRES_USER: ${DB_USER-kemal}
POSTGRES_PASSWORD: ${DB_PWD-kemal}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"]
```
Environments:
```
TAG=latest
RST=unless-stopped
PORT_INVIDIOUS=
VOLUME_DB_DATA=
VOLUME_DB_SQL=
VOLUME_DB_SCRIPT=
DB_NAME=invidious
DB_USER=kemal
DB_PWD=kemal
```

View File

@ -0,0 +1,19 @@
Portainer Stack:
```
---
version: '3.9'
services:
jdownloader:
image: jlesage/jdownloader-2
container_name: jdownloader
restart: unless-stopped
network_mode: STHOPE
ports:
- 5800:5800
volumes:
- /home/sthope/docker/jdownloader:/config:rw
- /media/htpc/downloads/jdownloader:/output:rw
labels:
- com.centurylinklabs.watchtower.enable=true
```

View File

@ -0,0 +1,37 @@
Portainer Stack:
```yaml
version: "3.9"
services:
jellyfin:
image: linuxserver/jellyfin:${TAG-latest}
container_name: jellyfin
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
# - JELLYFIN_PublishedServerUrl=
volumes:
- /jellyfin:/config
- /opt/vc/lib:/opt/vc/lib
- /media:/HTPC
ports:
- 8096:8096
- 8920:8920
- 7359:7359/udp
- 1900:1900/udp
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,31 @@
``yaml
---
version: "3.9"
services:
mealie:
container_name: mealie
image: hkotel/mealie:${TAG-latest}
restart: always
network_mode: ${NET-bridge}
ports:
- 80:80
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Amsterdam
# Default Recipe Settings
RECIPE_PUBLIC: 'false'
RECIPE_SHOW_NUTRITION: 'true'
RECIPE_SHOW_ASSETS: 'true'
RECIPE_LANDSCAPE_VIEW: 'true'
RECIPE_DISABLE_COMMENTS: 'false'
RECIPE_DISABLE_AMOUNT: 'false'
# Gunicorn
# WEB_CONCURRENCY: 2
# WORKERS_PER_CORE: 0.5
# MAX_WORKERS: 8
volumes:
- /docker/mealie:/app/data
labels:
- com.centurylinklabs.watchtower.enable=true
```

View File

@ -0,0 +1,36 @@
Portainer Stack:
```yaml
---
version: "3.9"
volumes:
mqttexplorer:
services:
mqtt-explorer:
image: smeagolworms4/mqtt-explorer:${TAG-latest}
container_name: mqtt-explorer
network_mode: ${NET-bridge}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- HTTP_PORT=4000
- CONFIG_PATH=/mqtt-explorer/config
volumes:
- mqttexplorer:/mqtt-explorer/config
ports:
- 4000:4000
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,41 @@
```yaml
---
version: "3.9"
services:
n8n:
image: n8nio/n8n
container_name: n8n
network_mode: ${NET-bridge}
restart: unless-stopped
environment:
- GENERIC_TIMEZONE="Europe/Amsterdam"
- TZ="Europe/Amsterdam"
- DB_TYPE=mysqldb
- DB_MYSQLDB_DATABASE=n8n_database
- DB_MYSQLDB_HOST=n8n-db
- DB_MYSQLDB_PORT=3306
- DB_MYSQLDB_USER=n8n_db_username
- DB_MYSQLDB_PASSWORD=n8n_db_password
volumes:
- /docker/n8n/config:/home/node/.n8n
ports:
- 5678:5678
labels:
- com.centurylinklabs.watchtower.enable=true
n8n-db:
image: lscr.io/linuxserver/mariadb:${TAG-latest}
container_name: n8n-db
network_mode: ${NET-bridge}
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=db_root_password
- TZ=${TZ-Europe/Amsterdam}
- MYSQL_DATABASE=n8n_database
- MYSQL_USER=n8n_db_username
- MYSQL_PASSWORD=n8n_db_password
volumes:
- /docker/n8n/db:/config
restart: unless-stopped
```

View File

@ -0,0 +1,35 @@
Portainer Stack:
```yaml
---
version: "3.9"
volumes:
octoprint:
services:
octoprint:
image: octoprint/octoprint:${TAG-latest}
container_name: ${CNAME-octoprint}
network_mode: ${NET-bridge}
restart: ${RST-unless-stopped}
user: ${USER-1000:1000}
volumes:
- octoprint:/octoprint
# devices:
# - ${USB_PRINTER-/dev/ttyUSB0}:/dev/ttyUSB0
privilleged: ${PRIVILLEGED-true}
ports:
- 80:80
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
CNAME=Ender3
TAG=latest
RST=unless-stopped
NET=bridge
USER=1000:1000
AutoUpdate=true
USB_PRINTER=/dev/ttyUSB0
PRIVILLEGED=true
```

View File

@ -0,0 +1,59 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
onlyoffice-documentserver:
image: onlyoffice/documentserver:${TAG-latest}
container_name: onlyoffice-documentserver
depends_on:
- onlyoffice-postgresql
- onlyoffice-rabbitmq
environment:
- DB_TYPE=postgres
- DB_HOST=onlyoffice-postgresql
- DB_PORT=5432
- DB_NAME=
- DB_USER=
- AMQP_URI=amqp://guest:guest@onlyoffice-rabbitmq
- JWT_ENABLED=true
- JWT_SECRET=superstrongpassword
- JWT_HEADER=Authorization
- JWT_IN_BODY=true
ports:
- 49155:80
- 49154:443
stdin_open: true
restart: unless-stopped
stop_grace_period: 60s
volumes:
- /docker/onlyoffice/www:/var/www/onlyoffice/Data
- /docker/onlyoffice/log:/var/log/onlyoffice
- /docker/onlyoffice/app_data:/var/lib/onlyoffice/documentserver/App_Data/cache/files
- /docker/onlyoffice/public:/var/www/onlyoffice/documentserver-example/public/files
- /docker/onlyoffice/fonts:/usr/share/fonts
labels:
- com.centurylinklabs.watchtower.enable=true
onlyoffice-rabbitmq:
container_name: onlyoffice-rabbitmq
image: rabbitmq
restart: unless-stopped
ports:
- 49153:5672
labels:
- com.centurylinklabs.watchtower.enable=true
onlyoffice-postgresql:
container_name: onlyoffice-postgresql
image: postgres:${TAG-latest}
environment:
- POSTGRES_DB=
- POSTGRES_USER=
- POSTGRES_HOST_AUTH_METHOD=trust
restart: unless-stopped
volumes:
- /docker/docs/onlyoffice/db:/var/lib/postgresql
labels:
- com.centurylinklabs.watchtower.enable=true
```

View File

@ -0,0 +1,27 @@
Portainer Stack:
```yaml
version: "3.9"
services:
phoneinfoga:
container_name: phoneinfoga
image: sundowndev/phoneinfoga:${TAG-latest}
network_mode: ${NET-bridge}
restart: unless-stopped
environment:
- NUMVERIFY_API_KEY=${NUMVERIFY_API_KEY}
ports:
- ${PORT-5000}:5000
command:
- "serve"
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
NET=bridge
TAG=latest
AutoUpdate=true
PORT=5566
NUMVERIFY_API_KEY=
```

View File

@ -0,0 +1,47 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
piped:
image: 1337kavin/piped:${TAG-latest}
container_name: piped
network_mode: ${NET_MODE-bridge}
depends_on:
- piped-postgres
ports:
- ${PORT_PIPED-8080}:8080
volumes:
- ${VOLUME_PIPED_CONFIG-/docker/piped/config.properties}:/app/config.properties
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
piped-postgres:
image: postgres:13-alpine
container_name: piped-postgres
network_mode: ${NET_MODE-bridge}
volumes:
- ${VOLUME_PIPED_DB-/docker/piped/db}:/var/lib/postgresql/data
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
environment:
- POSTGRES_DB=piped
- POSTGRES_USER=${DB_USER-db_username}
- POSTGRES_PASSWORD=${DB_PWD-db_password}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET_MODE=bridge
AutoUpdate=true
DB_USER=db_username
DB_PWD=db_password
VOLUME_PIPED_CONFIG=/docker/piped/config.properties
VOLUME_PIPED_DB=/docker/piped/db
PORT_PIPED=8080
```

View File

@ -0,0 +1,36 @@
Portainer Stack:
```yaml
version: "3.9"
services:
qbittorrent:
image: linuxserver/qbittorrent:${TAG-latest}
container_name: qbittorrent
network_mode: ${NET-bridge}
volumes:
- /qbittorrent:/config
- /downloads:/downloads
ports:
- "8080:8080"
- "6881:6881"
- "6881:6881/udp"
restart: ${RST-always}
environment:
- PUID=${PUID-1000}
- PGID=${PGID-1000}
- TZ=${TZ-Europe/Amsterdam}
- UMASK=022
- WEBUI_PORT=8080
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,41 @@
Portainer Stack:
```yaml
version: "3.9"
services:
hbbs:
image: rustdesk/rustdesk-server:${TAG-latest}
container_name: hbbs
network_mode: ${NET-bridge}
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
command: hbbs -r ${MYSERVER-localhost}:21117
volumes:
- ${DOCKER_FOLDER}/ruskdesk/data:/root
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:${TAG-latest}
command: hbbr
volumes:
- ${DOCKER_FOLDER}/ruskdesk/data:/root
network_mode: ${NET-bridge}
restart: unless-stopped
```
Environments:
```
NET=bridge
TAG=latest
AutoUpdate=true
DOCKER_FOLDER=
MYSERVER=Host_IP_or_Domain
```

View File

@ -0,0 +1,44 @@
Replace `{folder_to_share}`, `{USERNAME}`, `{PASSWORD}` with your choice.
eg:
```
volumes:
- /home/user:/share
```
eg:
```
command: '-u "1000:1000:user:user:crap_pass" -s "HomeLAB:/share:rw:user"'
```
Portainer Stack:
```yaml
---
version: "3.9"
services:
samba:
image: elswork/samba:${TAG-latest}
container_name: samba
hostname: samba
network_mode: ${NET-bridge}
restart: ${RST-unless-stopped}
environment:
- TZ=${TZ-Europe/Amsterdam}
volumes:
- {folder_to_share}:/share
ports:
- 445:445
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-false}
command: '-u "1000:1000:{USERNAME}:{USERNAME}:{PASSWORD}" -s "HomeLAB:/share:rw:{USERNAME}"'
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,59 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
shlink:
image: shlinkio/shlink:${TAG-latest}
container_name: shlink
network_mode: ${NET-bridge}
environment:
- DEFAULT_DOMAIN=
- IS_HTTPS_ENABLED=true
- GEOLITE_LICENSE_KEY=
- DB_DRIVER=maria
- DB_USER=
- DB_PASSWORD=
- DB_NAME=
- DB_HOST=
- DB_PORT=3306
restart: unless-stopped
ports:
- 50854:8080
labels:
- com.centurylinklabs.watchtower.enable=true
shlink-web-client:
image: shlinkio/shlink-web-client
container_name: shlink-web-client
network_mode: ${NET-bridge}
environment:
- DEFAULT_DOMAIN=
- IS_HTTPS_ENABLED=true
- SHLINK_SERVER_URL=https://
- SHLINK_SERVER_API_KEY=
restart: unless-stopped
ports:
- 80:80
labels:
- com.centurylinklabs.watchtower.enable=true
shlink_db:
image: lscr.io/linuxserver/mariadb:${TAG-latest}
container_name: shlink_db
network_mode: ${NET-bridge}
environment:
- PUID=1000
- PGID=1000
- MYSQL_ROOT_PASSWORD=
- TZ=${TZ-Europe/Amsterdam}
- MYSQL_DATABASE=shlink_db
- MYSQL_USER=
- MYSQL_PASSWORD=
volumes:
- /docker/shlink/db:/config
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=true
```

View File

@ -0,0 +1,31 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
tailscale:
container_name: tailscale
image: tailscale/tailscale
command: tailscaled
restart: ${RST_MODE-unless-stopped}
network_mode: host
privileged: ${PRIVILEGED-true}
volumes:
- /dev/net/tun:/dev/net/tun
- /var/lib:/var/lib
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Then to login, from the terminal send:
```
docker exec tailscaled tailscale up
```
Environments:
```
PRIVILEGED=true
AutoUpdate=true
RST_MODE=unless-stopped
```

View File

@ -0,0 +1,15 @@
Portainer Stack:
```yaml
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```

View File

@ -0,0 +1,35 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
tvheadend:
image: lscr.io/linuxserver/tvheadend:${TAG-latest}
container_name: tvheadend
network_mode: ${NET-bridge}
environment:
- PUID=${PUID=1000}
- PGID=${PGID=1000}
- TZ=${TZ-Europe/Amsterdam}
volumes:
- ${DOCKER_FOLDER}/tvheadend/config:/config
- ${DOCKER_FOLDER}/tvheadend/recordings:/recordings
ports:
- 9981:9981
- 9982:9982
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
NET=bridge
TAG=latest
PUID=1000
PGID=1000
PORT=4040
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
DOCKER_FOLDER=
```

View File

@ -0,0 +1,27 @@
Portainer Stack:
```yaml
---
version: "3.9"
services:
uptime:
image: louislam/uptime-kuma:1
container_name: uptime
hostname: uptime
network_mode: ${NET-bridge}
volumes:
- /uptime_kuma:/app/data
restart: ${RST-unless-stopped}
labels:
- com.centurylinklabs.watchtower.enable=${AutoUpdate-true}
```
Environments:
```
TAG=latest
RST=unless-stopped
NET=bridge
PUID=${PUID-1000}
PGID=${PGID-1000}
TZ=${TZ-Europe/Amsterdam}
AutoUpdate=true
```