added quadlets for foundryvtt, netboot.xyz and joplin #1

Merged
sudo-kraken merged 1 commit from feature/additional-quadlets into main 2024-12-04 14:49:23 +00:00
10 changed files with 147 additions and 0 deletions
Showing only changes of commit 34bdae1bb8 - Show all commits

View file

@ -0,0 +1,36 @@
[Unit]
Description=Foundry VTT Quadlet
Wants=network-online.target
redbeardymcgee commented 2024-12-04 02:11:53 +00:00 (Migrated from github.com)
Review

User services can't see system services, so network-online.target and local-fs.target are actually just ignored. Quadlets include a workaround using another service to provide this target. It's on by default, and to disable you must set DefaultDependencies=false

User services can't see system services, so `network-online.target` and `local-fs.target` are actually just ignored. Quadlets include a workaround using another service to provide this target. It's on by default, and to disable you must set `DefaultDependencies=false`
After=network-online.target
After=local-fs.target
[Service]
Restart=always
TimeoutStartSec=900
[Install]
WantedBy=multi-user.target default.target
[Container]
Image=docker.io/felddy/foundryvtt:release
ContainerName=foundryvtt
HostName=foundryvtt
#AutoUpdate=registry
# Set this instead to expose it locally for asset uploads etc
Volume=./foundryvtt:/data:z
redbeardymcgee commented 2024-12-04 02:18:56 +00:00 (Migrated from github.com)
Review

Named volumes are located at ~/.local/share/containers/storage/volumes/<volume>/ with a _data directory inside. I think named volumes need better documentation and exposure, but you don't need to mount ./foundryvtt:/data. You can use the named volume location to drop in assets just the same. I am trying to default to named volumes for this repository because foo.volume does the mkdir for the user. Feedback for a missing path is not great for quadlets (it's in the system journal) and will cause a failure to launch, so forgetting to run mkdir foundryvtt can lead to frustration.

Named volumes are located at `~/.local/share/containers/storage/volumes/<volume>/` with a `_data` directory inside. I think named volumes need better documentation and exposure, but you don't need to mount `./foundryvtt:/data`. You can use the named volume location to drop in assets just the same. I am trying to default to named volumes for this repository because `foo.volume` does the `mkdir` for the user. Feedback for a missing path is not great for quadlets (it's in the system journal) and will cause a failure to launch, so forgetting to run `mkdir foundryvtt` can lead to frustration.
#Volume=foundryvtt-data:/data
Network=foundryvtt.network
PublishPort=30000:30000
Environment=TIMEZONE=
Environment=FOUNDRY_UID=
Environment=FOUNDRY_GID=
Environment=FOUNDRY_PASSWORD=
Environment=FOUNDRY_USERNAME=
Environment=FOUNDRY_ADMIN_KEY=
Environment=FOUNDRY_LICENSE_KEY=XXXX-XXXX-XXXX-XXXX-XXXX-XXXX
Environment=FOUNDRY_HOT_RELOAD=true
Environment=CONTAINER_PRESERVE_CONFIG=true
Environment=CONTAINER_CACHE="/data/container_cache"

View file

@ -0,0 +1,4 @@
[Network]
Subnet=10.20.40.0/24
Gateway=10.20.40.1
Label=app=foundryvtt

View file

@ -0,0 +1,2 @@
[Volume]
VolumeName=foundryvtt-data

View file

@ -0,0 +1,27 @@
[Unit]
Description=Joplin DB Quadlet
WantedBy=joplin.service
Wants=network-online.target
After=network-online.target
After=local-fs.target
[Service]
Restart=always
TimeoutStartSec=900
[Install]
WantedBy=multi-user.target default.target
[Container]
Image=docker.io/library/postgres:15
ContainerName=joplin-db
HostName=joplin-db
#AutoUpdate=registry
Network=joplin.network
Volume=joplindb-data:/var/lib/postgresql/data
Environment=POSTGRES_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Environment=POSTGRES_USER=postgres
Environment=POSTGRES_DB=joplin

View file

@ -0,0 +1,31 @@
[Unit]
Description=Joplin Server Quadlet
Wants=network-online.target
After=network-online.target
After=local-fs.target
[Service]
Restart=always
TimeoutStartSec=900
[Install]
WantedBy=multi-user.target default.target
[Container]
Image=docker.io/etechonomy/joplin-server:latest
ContainerName=joplin-server
HostName=joplin-server
Network=joplin.network
#AutoUpdate=registry
Network=joplin.network
PublishPort=22300:22300
Environment=APP_BASE_URL=https://xxxxx.xxx
Environment=APP_PORT=22300
Environment=DB_CLIENT=pg
Environment=POSTGRES_PASSWORD=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Environment=POSTGRES_DATABASE=joplin
Environment=POSTGRES_USER=postgres
Environment=POSTGRES_PORT=5432
Environment=POSTGRES_HOST=joplin-db

View file

@ -0,0 +1,4 @@
[Network]
Subnet=10.20.10.0/24
Gateway=10.20.10.1
Label=app=joplin

View file

@ -0,0 +1,2 @@
[Volume]
VolumeName=joplindb-data

View file

@ -0,0 +1,35 @@
[Unit]
Description=Netbook.xyz Quadlet
Wants=network-online.target
After=network-online.target
After=local-fs.target
[Service]
Restart=always
TimeoutStartSec=900
[Install]
WantedBy=multi-user.target default.target
[Container]
Image=lscr.io/linuxserver/netbootxyz:latest
ContainerName=netboot-xyz
HostName=netboot-xyz
#AutoUpdate=registry
Volume=netboot-xyz-config:/config
Volume=./netboot-xyz/assets:/assets:z
Network=netboot-xyz.network
PublishPort=3000:3000
PublishPort=8082:80
PublishPort=69:69/udp
Environment=PUID=
Environment=PGID=
Environment=TZ=
Environment=PORT_RANGE=30000:30010
Environment=SUBFOLDER=/
Environment=WEB_APP_PORT=3000

View file

@ -0,0 +1,4 @@
[Network]
Subnet=10.20.30.0/24
Gateway=10.20.30.1
Label=app=netboot-xyz

View file

@ -0,0 +1,2 @@
[Volume]
VolumeName=netboot-xyz-config