diff --git a/files/install-additional-packages.service b/files/install-additional-packages.service index f7886e9..79ae6d0 100644 --- a/files/install-additional-packages.service +++ b/files/install-additional-packages.service @@ -16,6 +16,7 @@ RemainAfterExit=yes # prevent the service from failing. ExecStart=/usr/bin/rpm-ostree install -y --allow-inactive firewalld fail2ban fail2ban-firewalld setroubleshoot-server setools smartmontools ExecStart=/bin/touch /var/lib/additional-packages.stamp +ExecStart=/bin/usermod -aG dialout homeassistant ExecStart=/bin/systemctl enable configure-firewalld.service enable-all-quadlets.service move-downloads-nextcloud.timer copy-music.timer defragment-nas.timer scrub-nas.timer ExecStart=semanage fcontext -a -t bin_t "/var/opt/bin(/.*)?" ExecStart=semanage fcontext -a -t bin_t "/root/scripts(/.*)?" diff --git a/quadlets/homeassistant/homeassistant.pod b/quadlets/homeassistant/homeassistant.pod index 26884e7..b295063 100644 --- a/quadlets/homeassistant/homeassistant.pod +++ b/quadlets/homeassistant/homeassistant.pod @@ -1,3 +1,4 @@ [Pod] PodName=homeassistant PublishPort=9003:8123 +PublishPort=9025:8080 diff --git a/quadlets/homeassistant/mosquitto-config.volume b/quadlets/homeassistant/mosquitto-config.volume new file mode 100644 index 0000000..7580643 --- /dev/null +++ b/quadlets/homeassistant/mosquitto-config.volume @@ -0,0 +1,7 @@ +[Volume] +Copy=true +Device=/var/mnt/nas/containers/homeassistant/storage/mosquitto-config +Driver=local +Options=bind +Type=none +VolumeName=mosquitto-config diff --git a/quadlets/homeassistant/mosquitto-data.volume b/quadlets/homeassistant/mosquitto-data.volume new file mode 100644 index 0000000..c2f55ca --- /dev/null +++ b/quadlets/homeassistant/mosquitto-data.volume @@ -0,0 +1,7 @@ +[Volume] +Copy=true +Device=/var/mnt/nas/containers/homeassistant/storage/mosquitto-data +Driver=local +Options=bind +Type=none +VolumeName=mosquitto-data diff --git a/quadlets/homeassistant/mosquitto-log.volume b/quadlets/homeassistant/mosquitto-log.volume new file mode 100644 index 0000000..c4b80ff --- /dev/null +++ b/quadlets/homeassistant/mosquitto-log.volume @@ -0,0 +1,2 @@ +[Volume] +VolumeName=mosquitto-log diff --git a/quadlets/homeassistant/mosquitto.container b/quadlets/homeassistant/mosquitto.container new file mode 100644 index 0000000..165d020 --- /dev/null +++ b/quadlets/homeassistant/mosquitto.container @@ -0,0 +1,21 @@ +[Unit] +Description=Mosquitto container + +[Container] +AutoUpdate=registry +ContainerName=mosquitto +Environment=TZ=Europe/Zurich +Image=docker.io/eclipse-mosquitto:2 +Label=io.containers.autoupdate=registry +Pod=homeassistant.pod +StartWithPod=true +Timezone=Europe/Zurich +Volume=mosquitto-config.volume:/mosquitto/config +Volume=mosquitto-data.volume:/mosquitto/data +Volume=mosquitto-log.volume:/mosquitto/log + +[Service] +Restart=always + +[Install] +WantedBy=default.target diff --git a/quadlets/homeassistant/zigbee2mqtt-data.volume b/quadlets/homeassistant/zigbee2mqtt-data.volume new file mode 100644 index 0000000..ab18a11 --- /dev/null +++ b/quadlets/homeassistant/zigbee2mqtt-data.volume @@ -0,0 +1,7 @@ +[Volume] +Copy=true +Device=/var/mnt/nas/containers/homeassistant/storage/zigbee2mqtt-data +Driver=local +Options=bind +Type=none +VolumeName=zigbee2mqtt-data diff --git a/quadlets/homeassistant/zigbee2mqtt.container b/quadlets/homeassistant/zigbee2mqtt.container new file mode 100644 index 0000000..3811e63 --- /dev/null +++ b/quadlets/homeassistant/zigbee2mqtt.container @@ -0,0 +1,24 @@ +[Unit] +Description=ZigBee2MQTT container +After=mosquitto.container +Requires=mosquitto.container + +[Container] +AutoUpdate=registry +ContainerName=zigbee2mqtt +AddDevice=/dev/serial/by-id/usb-SONOFF_SONOFF_Dongle_Plus_MG24_56ef89bf70f5ef11915aa1a29ed47d52-if00-port0:/dev/ttyUSB0 +Environment=TZ=Europe/Zurich +GroupAdd=keep-groups +Image=docker.io/koenkk/zigbee2mqtt:2 +Label=io.containers.autoupdate=registry +Pod=homeassistant.pod +StartWithPod=true +Timezone=Europe/Zurich +Volume=zigbee2mqtt-data.volume:/app/data +Volume=/run/udev:/run/udev:ro + +[Service] +Restart=always + +[Install] +WantedBy=default.target diff --git a/quadlets/nextcloud/nextcloud-cron.container b/quadlets/nextcloud/nextcloud-cron.container index ebd2c0e..bf4a731 100644 --- a/quadlets/nextcloud/nextcloud-cron.container +++ b/quadlets/nextcloud/nextcloud-cron.container @@ -12,7 +12,7 @@ AutoUpdate=registry ContainerName=nextcloud-cron Entrypoint=/cron.sh Environment=TZ=Europe/Zurich -Image=docker.io/nextcloud:33 +Image=docker.io/nextcloud:34 Label=io.containers.autoupdate=registry Pod=nextcloud.pod StartWithPod=true diff --git a/quadlets/nextcloud/nextcloud.container b/quadlets/nextcloud/nextcloud.container index e4e9cf9..22d8290 100644 --- a/quadlets/nextcloud/nextcloud.container +++ b/quadlets/nextcloud/nextcloud.container @@ -16,7 +16,7 @@ Environment=PHP_UPLOAD_LIMIT=100G Environment=REDIS_HOST=nextcloud-redis Environment=TRUSTED_PROXIES="192.168.0.0/16 172.16.0.0/12 169.254.0.0/16 10.0.0.0/8" Environment=TZ=Europe/Zurich -Image=docker.io/nextcloud:33 +Image=docker.io/nextcloud:34 Label=io.containers.autoupdate=registry Pod=nextcloud.pod Secret=database-user,type=env,target=MYSQL_USER diff --git a/quadlets/nginx/nginx.container b/quadlets/nginx/nginx.container index 4b3eaf4..6e6f05d 100644 --- a/quadlets/nginx/nginx.container +++ b/quadlets/nginx/nginx.container @@ -16,7 +16,6 @@ Volume=nginx-certs.volume:/etc/nginx/certs:z Volume=nginx-config.volume:/etc/nginx/conf.d Volume=nginx-html.volume:/usr/share/nginx/html Volume=nginx-stream.volume:/etc/nginx/stream.d -Volume=nginx-vhost.volume:/etc/nginx/vhost.d [Service] Restart=always diff --git a/quadlets/nginx/nginx.pod b/quadlets/nginx/nginx.pod index afd62b1..7451216 100644 --- a/quadlets/nginx/nginx.pod +++ b/quadlets/nginx/nginx.pod @@ -1,4 +1,6 @@ [Pod] PodName=nginx -PublishPort=8080:80 -PublishPort=4443:443 +PublishPort=8080:80/tcp +PublishPort=8080:80/udp +PublishPort=4443:443/tcp +PublishPort=4443:443/udp diff --git a/quadlets/overleaf/overleaf-data.volume b/quadlets/overleaf/overleaf-data.volume index 78a2eeb..2f0bb24 100644 --- a/quadlets/overleaf/overleaf-data.volume +++ b/quadlets/overleaf/overleaf-data.volume @@ -1,2 +1,7 @@ [Volume] +Copy=true +Device=/var/mnt/nas/containers/overleaf/storage/data +Driver=local +Options=bind +Type=none VolumeName=overleaf-data diff --git a/quadlets/overleaf/overleaf-database-data.volume b/quadlets/overleaf/overleaf-database-data.volume new file mode 100644 index 0000000..b20b0ae --- /dev/null +++ b/quadlets/overleaf/overleaf-database-data.volume @@ -0,0 +1,2 @@ +[Volume] +VolumeName=overleaf-database-data diff --git a/quadlets/overleaf/overleaf-database.container b/quadlets/overleaf/overleaf-database.container index cb6bdb5..799802b 100644 --- a/quadlets/overleaf/overleaf-database.container +++ b/quadlets/overleaf/overleaf-database.container @@ -3,14 +3,14 @@ Description=Overleaf MongoDB container [Container] AutoUpdate=registry -Command="--replSet overleaf" ContainerName=overleaf-database Environment=MONGO_INITDB_DATABASE=sharelatex Environment=TZ=Europe/Zurich -HealthCheck="echo 'db.stats().ok' | mongosh localhost:27017/test --quiet" -HealthCheckInterval=10s -HealthCheckTimeout=10s -HealthCheckRetries=5 +Exec="--replSet overleaf" +HealthCmd="echo 'db.stats().ok' | mongosh localhost:27017/test --quiet" +HealthInterval=10s +HealthTimeout=10s +HealthRetries=5 Image=docker.io/mongo:8.0 Label=io.containers.autoupdate=registry Pod=overleaf.pod diff --git a/quadlets/overleaf/overleaf-redis.container b/quadlets/overleaf/overleaf-redis.container index 931bca3..b443618 100644 --- a/quadlets/overleaf/overleaf-redis.container +++ b/quadlets/overleaf/overleaf-redis.container @@ -9,6 +9,7 @@ Exec=/bin/sh -c 'redis-server --appendonly yes --requirepass $${REDIS_PASSWORD}' Image=docker.io/redis:latest Label=io.containers.autoupdate=registry Pod=overleaf.pod +Secret=overleaf-redis-password,type=env,target=REDIS_PASSWORD StartWithPod=true Timezone=Europe/Zurich Volume=overleaf-redis-data.volume:/data diff --git a/users/homeassistant.bu b/users/homeassistant.bu index ceeaecb..0a9d130 100644 --- a/users/homeassistant.bu +++ b/users/homeassistant.bu @@ -30,6 +30,24 @@ storage: name: homeassistant group: name: homeassistant + - path: /var/mnt/nas/containers/homeassistant/storage/mosquitto-config + mode: 0755 + user: + name: homeassistant + group: + name: homeassistant + - path: /var/mnt/nas/containers/homeassistant/storage/mosquitto-data + mode: 0755 + user: + name: homeassistant + group: + name: homeassistant + - path: /var/mnt/nas/containers/homeassistant/storage/zigbee2mqtt-data + mode: 0755 + user: + name: homeassistant + group: + name: homeassistant files: - path: /var/lib/systemd/linger/homeassistant mode: 0644 @@ -63,5 +81,53 @@ storage: local: quadlets/homeassistant/homeassistant-ssh.volume user: name: homeassistant + group: + name: homeassistant + - path: /home/homeassistant/.config/containers/systemd/mosquitto-config.volume + mode: 0644 + contents: + local: quadlets/homeassistant/mosquitto-config.volume + user: + name: homeassistant + group: + name: homeassistant + - path: /home/homeassistant/.config/containers/systemd/mosquitto.container + mode: 0644 + contents: + local: quadlets/homeassistant/mosquitto.container + user: + name: homeassistant + group: + name: homeassistant + - path: /home/homeassistant/.config/containers/systemd/mosquitto-data.volume + mode: 0644 + contents: + local: quadlets/homeassistant/mosquitto-data.volume + user: + name: homeassistant + group: + name: homeassistant + - path: /home/homeassistant/.config/containers/systemd/mosquitto-log.volume + mode: 0644 + contents: + local: quadlets/homeassistant/mosquitto-log.volume + user: + name: homeassistant + group: + name: homeassistant + - path: /home/homeassistant/.config/containers/systemd/zigbee2mqtt.container + mode: 0644 + contents: + local: quadlets/homeassistant/zigbee2mqtt.container + user: + name: homeassistant + group: + name: homeassistant + - path: /home/homeassistant/.config/containers/systemd/zigbee2mqtt-data.volume + mode: 0644 + contents: + local: quadlets/homeassistant/zigbee2mqtt-data.volume + user: + name: homeassistant group: name: homeassistant \ No newline at end of file diff --git a/users/overleaf.bu b/users/overleaf.bu new file mode 100644 index 0000000..ef97412 --- /dev/null +++ b/users/overleaf.bu @@ -0,0 +1,107 @@ +variant: fcos +version: 1.6.0 +passwd: + users: + - name: overleaf +storage: + directories: + - path: /home/overleaf/.config/systemd/user + mode: 0755 + user: + name: overleaf + group: + name: overleaf + - path: /var/mnt/nas/containers/overleaf + mode: 0755 + user: + name: overleaf + group: + name: overleaf + + - path: /var/mnt/nas/containers/overleaf/storage/data + mode: 0755 + user: + name: overleaf + group: + name: overleaf + - path: /var/mnt/nas/containers/overleaf/storage/redis-config + mode: 0755 + user: + name: overleaf + group: + name: overleaf + files: + - path: /var/lib/systemd/linger/overleaf + mode: 0644 + - path: /home/overleaf/.config/containers/systemd/overleaf.container + mode: 0644 + contents: + local: quadlets/overleaf/overleaf.container + user: + name: overleaf + group: + name: overleaf + - path: /home/overleaf/.config/containers/systemd/overleaf-database.container + mode: 0644 + contents: + local: quadlets/overleaf/overleaf-database.container + user: + name: overleaf + group: + name: overleaf + - path: /home/overleaf/.config/containers/systemd/overleaf-database-data.volume + mode: 0644 + contents: + local: quadlets/overleaf/overleaf-database-data.volume + user: + name: overleaf + group: + name: overleaf + - path: /home/overleaf/.config/containers/systemd/overleaf-data.volume + mode: 0644 + contents: + local: quadlets/overleaf/overleaf-data.volume + user: + name: overleaf + group: + name: overleaf + - path: /home/overleaf/.config/containers/systemd/overleaf.pod + mode: 0644 + contents: + local: quadlets/overleaf/overleaf.pod + user: + name: overleaf + group: + name: overleaf + - path: /home/overleaf/.config/containers/systemd/overleaf-redis-config.volume + mode: 0644 + contents: + local: quadlets/overleaf/overleaf-redis-config.volume + user: + name: overleaf + group: + name: overleaf + - path: /home/overleaf/.config/containers/systemd/overleaf-redis.container + mode: 0644 + contents: + local: quadlets/overleaf/overleaf-redis.container + user: + name: overleaf + group: + name: overleaf + - path: /home/overleaf/.config/containers/systemd/overleaf-redis-data.volume + mode: 0644 + contents: + local: quadlets/overleaf/overleaf-redis-data.volume + user: + name: overleaf + group: + name: overleaf + - path: /var/home/overleaf/.secrets + mode: 0755 + contents: + local: home/overleaf/.secrets + user: + name: overleaf + group: + name: overleaf \ No newline at end of file