From ff4a0334cd0dbd88711e2f67796333c513157d15 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Wed, 21 Feb 2024 09:30:33 -0700 Subject: [PATCH 1/2] Add initial home server service scripts --- asterisk.sh | 9 +++++++++ authentik.sh | 32 ++++++++++++++++++++++++++++++++ booksonic-air.sh | 11 +++++++++++ collabora.sh | 9 +++++++++ docker-mailserver.sh | 20 ++++++++++++++++++++ firefly-csv-importer-dev.sh | 13 +++++++++++++ firefly-csv-importer.sh | 11 +++++++++++ firefly-iii-dev.sh | 12 ++++++++++++ firefly-iii.sh | 12 ++++++++++++ freeipa.sh | 22 ++++++++++++++++++++++ gitea.sh | 15 +++++++++++++++ habitica-client.sh | 13 +++++++++++++ habitica-server.sh | 13 +++++++++++++ jellyfin.sh | 14 ++++++++++++++ maddy.sh | 15 +++++++++++++++ mailpile.sh | 12 ++++++++++++ monica.sh | 12 ++++++++++++ murmur.sh | 11 +++++++++++ nextcloud.sh | 12 ++++++++++++ oauth2-proxy-dev.sh | 10 ++++++++++ oauth2-proxy.sh | 10 ++++++++++ openeats.sh | 28 ++++++++++++++++++++++++++++ paperless-ngx.sh | 35 +++++++++++++++++++++++++++++++++++ photoprism.sh | 13 +++++++++++++ piped.sh | 24 ++++++++++++++++++++++++ plex.sh | 24 ++++++++++++++++++++++++ roundcube.sh | 14 ++++++++++++++ stalwart.sh | 18 ++++++++++++++++++ stop-authentik.sh | 6 ++++++ stop-openeats.sh | 6 ++++++ synapse.sh | 14 ++++++++++++++ tandoor-recipes.sh | 13 +++++++++++++ unifi.sh | 20 ++++++++++++++++++++ vaultwarden.sh | 9 +++++++++ wiki-ribbles.sh | 11 +++++++++++ wiki-suvereno.sh | 11 +++++++++++ 36 files changed, 534 insertions(+) create mode 100755 asterisk.sh create mode 100755 authentik.sh create mode 100755 booksonic-air.sh create mode 100755 collabora.sh create mode 100755 docker-mailserver.sh create mode 100755 firefly-csv-importer-dev.sh create mode 100755 firefly-csv-importer.sh create mode 100755 firefly-iii-dev.sh create mode 100755 firefly-iii.sh create mode 100755 freeipa.sh create mode 100755 gitea.sh create mode 100755 habitica-client.sh create mode 100755 habitica-server.sh create mode 100755 jellyfin.sh create mode 100755 maddy.sh create mode 100755 mailpile.sh create mode 100755 monica.sh create mode 100755 murmur.sh create mode 100755 nextcloud.sh create mode 100755 oauth2-proxy-dev.sh create mode 100755 oauth2-proxy.sh create mode 100755 openeats.sh create mode 100755 paperless-ngx.sh create mode 100755 photoprism.sh create mode 100755 piped.sh create mode 100755 plex.sh create mode 100755 roundcube.sh create mode 100755 stalwart.sh create mode 100755 stop-authentik.sh create mode 100755 stop-openeats.sh create mode 100755 synapse.sh create mode 100755 tandoor-recipes.sh create mode 100755 unifi.sh create mode 100755 vaultwarden.sh create mode 100755 wiki-ribbles.sh create mode 100755 wiki-suvereno.sh diff --git a/asterisk.sh b/asterisk.sh new file mode 100755 index 0000000..e24a17d --- /dev/null +++ b/asterisk.sh @@ -0,0 +1,9 @@ +#!/usr/bin/bash +podman run -d \ + --name asterisk \ + --net slirp4netns:port_handler=slirp4netns \ + -p 5060:5060 \ + -p 5061:5061 \ + --restart=unless-stopped \ + -v /etc/asterisk:/etc/asterisk \ + andrius/asterisk:alpine_glibc-18.x diff --git a/authentik.sh b/authentik.sh new file mode 100755 index 0000000..cf53632 --- /dev/null +++ b/authentik.sh @@ -0,0 +1,32 @@ +#!/bin/bash +podman pod create \ + --name authentik \ + --network slirp4netns:port_handler=slirp4netns +podman run \ + --add-host postgresql:192.168.1.1 \ + --add-host redis:192.168.1.1 \ + --conmon-pidfile /opt/run/authentik-server.pid \ + -d \ + --env-file /opt/podman/env-authentik \ + --name authentik-server \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10030:9000 \ + --pod authentik \ + --restart unless-stopped \ + -v authentik-media:/media \ + -v authentik-templates:/templates \ + ghcr.io/goauthentik/server:2022.4.1 \ + server +podman run \ + --add-host postgresql:192.168.1.1 \ + --conmon-pidfile /opt/run/authentik-worker.pid \ + -d \ + --env-file /opt/podman/env-authentik \ + --name authentik-worker \ + --pod authentik \ + --restart unless-stopped \ + -v authentik-certs:/certs \ + -v authentik-media:/media \ + -v authentik-templates:/templates \ + ghcr.io/goauthentik/server:2022.4.1 \ + worker diff --git a/booksonic-air.sh b/booksonic-air.sh new file mode 100755 index 0000000..4b88957 --- /dev/null +++ b/booksonic-air.sh @@ -0,0 +1,11 @@ +#!/usr/bin/bash +podman run -d \ + -e CONTEXT_PATH=https://audiobooks.theribbles.org \ + --name booksonic-air \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10110:4040 \ + --restart=unless-stopped \ + -v /etc/booksonic-air:/config \ + -v /var/lib/audiobooks:/audiobooks \ + -v /var/lib/podcasts:/podcasts \ + linuxserver/booksonic-air diff --git a/collabora.sh b/collabora.sh new file mode 100755 index 0000000..69354fb --- /dev/null +++ b/collabora.sh @@ -0,0 +1,9 @@ +#!/bin/bash +podman run \ + --conmon-pidfile /opt/run/collabora.pid \ + -d \ + --env-file /opt/podman/env-collabora \ + --name collabora \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10170:9980 \ + collabora/code diff --git a/docker-mailserver.sh b/docker-mailserver.sh new file mode 100755 index 0000000..f4cb386 --- /dev/null +++ b/docker-mailserver.sh @@ -0,0 +1,20 @@ +#!/usr/bin/bash +podman run -d \ + --add-host ldap:192.168.1.1 \ + --env-file=/opt/podman/env-mailserver \ + --conmon-pidfile=/opt/run/mailserver.pid \ + --hostname mail.theribbles.org \ + --name mailserver \ + --net slirp4netns:port_handler=slirp4netns \ + -p 25:25 \ + -p 143:143 \ + -p 587:587 \ + -p 993:993 \ + -p 4190:4190 \ + --restart=unless-stopped \ + -v /var/opt/mail/data:/var/mail/ \ + -v /var/opt/mail/state:/var/mail-state \ + -v /var/log/mail:/var/log/mail \ + -v /etc/mail:/tmp/docker-mailserver \ + -v /etc/letsencrypt:/certs:ro \ + mailserver/docker-mailserver:10.4.0 diff --git a/firefly-csv-importer-dev.sh b/firefly-csv-importer-dev.sh new file mode 100755 index 0000000..e5c52e0 --- /dev/null +++ b/firefly-csv-importer-dev.sh @@ -0,0 +1,13 @@ +#!/bin/bash +podman run \ + -it \ + --rm \ + -e FIREFLY_III_URL=http://192.168.1.1:10060 \ + -e FIREFLY_III_ACCESS_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIyMSIsImp0aSI6IjRhMGFmNmIwMDFmMzAyN2Q4Mzk1OTNhYmZjOTE2NDU3OWI4ZWUxOGFhODdkYWY1OWZmMGI5MjUyYWZjMzkwOTY5Y2ViMjNhYjYxYWE1Y2QzIiwiaWF0IjoxNjE5MDE5NjU2LjY5NDE0OCwibmJmIjoxNjE5MDE5NjU2LjY5NDE1NiwiZXhwIjoxNjUwNTU1NjU2LjY0MzYxNSwic3ViIjoiMSIsInNjb3BlcyI6W119.MRpHIGEUzJeVZblgqc1-X50JhMa2tiGTHbCAAe0kGR2xBDvF__BdDhHRUJuync8zzof69EY6GvjrdRh3GlEL6YGY1fDm-JXTGcQLIW3yS0pt_UvpRiQyMhsy6f9kbhv0J8mufqiRlEDKpZMOkJd3FEg2jkXiu2ae3wsYPiwZ6SGd1X3_tSVE3capfgoFSHLUWCj1WRb3-J6fQ-uYyRLX5mquVxfXFrlEee4WraUczOkIXt9JP4bJiLKgLUuuv1zoc6jdtLpbS7tg4TkFjzyvTgVJ-QgS5FnFGkdeaAtaGLMPYMGMW5sfwFJ6jcU27-6GaQyjLeA73-iqOTheiEBu3qFykSL2iWOkFpXzn12FubnmtmwN90JCJvn9hNSHokllBHqalzO-GBNDwrI-x3JO6y-q3xXwSMweqOvZYwOBOtIMYVO4SLyf9vC8PH_Sr2P5xJDc4XJVdM4YGoCt9-DwlZr__WW2o5KbAbcZy5_L1zR15kJoLVCQYZKM_NQQsepOaoRZQSKEudodgzkc_JhvCZiBxOgFFR3BaJw6rQV9TQ4ZyDSBN02H5aR1YXasqg8-YccQpXmU6tjqBldNjruJpmVyI_yyBe7vpApHjdkFd3YjZLLeI6Y1v_bQQLa3jYBsJM0h4NZqD7lAy1S8kRtReybM_jiOkHg8-KcrSIsVWEE \ + -e TRUSTED_PROXIES="**" \ + -e VANITY_URL=https://money-import.theribbles.org \ + --name firefly-csv-importer \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10061:8080 \ + --entrypoint /bin/bash fireflyiii/csv-importer:latest + # default entrypoint is /usr/local/bin/entrypoint.sh diff --git a/firefly-csv-importer.sh b/firefly-csv-importer.sh new file mode 100755 index 0000000..df643bc --- /dev/null +++ b/firefly-csv-importer.sh @@ -0,0 +1,11 @@ +#!/bin/bash +podman run \ + -d \ + -e FIREFLY_III_URL=http://192.168.1.1:10060 \ + -e FIREFLY_III_ACCESS_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiIyMSIsImp0aSI6IjRhMGFmNmIwMDFmMzAyN2Q4Mzk1OTNhYmZjOTE2NDU3OWI4ZWUxOGFhODdkYWY1OWZmMGI5MjUyYWZjMzkwOTY5Y2ViMjNhYjYxYWE1Y2QzIiwiaWF0IjoxNjE5MDE5NjU2LjY5NDE0OCwibmJmIjoxNjE5MDE5NjU2LjY5NDE1NiwiZXhwIjoxNjUwNTU1NjU2LjY0MzYxNSwic3ViIjoiMSIsInNjb3BlcyI6W119.MRpHIGEUzJeVZblgqc1-X50JhMa2tiGTHbCAAe0kGR2xBDvF__BdDhHRUJuync8zzof69EY6GvjrdRh3GlEL6YGY1fDm-JXTGcQLIW3yS0pt_UvpRiQyMhsy6f9kbhv0J8mufqiRlEDKpZMOkJd3FEg2jkXiu2ae3wsYPiwZ6SGd1X3_tSVE3capfgoFSHLUWCj1WRb3-J6fQ-uYyRLX5mquVxfXFrlEee4WraUczOkIXt9JP4bJiLKgLUuuv1zoc6jdtLpbS7tg4TkFjzyvTgVJ-QgS5FnFGkdeaAtaGLMPYMGMW5sfwFJ6jcU27-6GaQyjLeA73-iqOTheiEBu3qFykSL2iWOkFpXzn12FubnmtmwN90JCJvn9hNSHokllBHqalzO-GBNDwrI-x3JO6y-q3xXwSMweqOvZYwOBOtIMYVO4SLyf9vC8PH_Sr2P5xJDc4XJVdM4YGoCt9-DwlZr__WW2o5KbAbcZy5_L1zR15kJoLVCQYZKM_NQQsepOaoRZQSKEudodgzkc_JhvCZiBxOgFFR3BaJw6rQV9TQ4ZyDSBN02H5aR1YXasqg8-YccQpXmU6tjqBldNjruJpmVyI_yyBe7vpApHjdkFd3YjZLLeI6Y1v_bQQLa3jYBsJM0h4NZqD7lAy1S8kRtReybM_jiOkHg8-KcrSIsVWEE \ + -e TRUSTED_PROXIES="**" \ + -e VANITY_URL=https://money-import.theribbles.org \ + --name firefly-csv-importer \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10061:8080 \ + fireflyiii/csv-importer:latest diff --git a/firefly-iii-dev.sh b/firefly-iii-dev.sh new file mode 100755 index 0000000..a1781c4 --- /dev/null +++ b/firefly-iii-dev.sh @@ -0,0 +1,12 @@ +#!/bin/bash +podman run \ + --rm \ + -it \ + --add-host postgresql:192.168.1.1 \ + --env-file /opt/podman/env-firefly-iii \ + --name firefly \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10060:8080 \ + -v /var/lib/firefly:/var/www/html/storage/upload \ + jc5x/firefly-iii:version-5.5.8 + diff --git a/firefly-iii.sh b/firefly-iii.sh new file mode 100755 index 0000000..2e60ba7 --- /dev/null +++ b/firefly-iii.sh @@ -0,0 +1,12 @@ +#!/bin/bash +podman run \ + -d \ + --add-host postgresql:192.168.1.1 \ + --env-file /opt/podman/env-firefly-iii \ + --name firefly \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10060:8080 \ + --restart=unless-stopped \ + -v /var/lib/firefly:/var/www/html/storage/upload \ + jc5x/firefly-iii:version-5.5.8 + diff --git a/freeipa.sh b/freeipa.sh new file mode 100755 index 0000000..16b5e56 --- /dev/null +++ b/freeipa.sh @@ -0,0 +1,22 @@ +#!/usr/bin/bash +PASSWORD=let_freeipa_in + # --entrypoint /bin/bash \ + # freeipa/freeipa-server:fedora-33 no-exit +podman run \ + --add-host ipa.theribbles.org:10.0.2.100 \ + --cap-add=SYS_TIME \ + --conmon-pidfile=/opt/run/freeipa.pid \ + -d \ + --env-file /opt/podman/env-freeipa \ + -h ipa.theribbles.org \ + --ip 10.0.2.100 \ + --name freeipa-server \ + --net slirp4netns:port_handler=slirp4netns \ + -v /var/lib/ipa-data:/data:Z \ + -p 88:88 \ + -p 464:464 \ + -p 389:389 \ + -p 636:636 \ + -p 10020:80 \ + -p 10021:443 \ + freeipa/freeipa-server:centos-8 no-exit ipa-server-install --unattended --realm theribbles.org --admin-password $PASSWORD --ds-password $PASSWORD --no-ssh --no-sshd --ip-address=10.0.2.100 --no-ntp diff --git a/gitea.sh b/gitea.sh new file mode 100755 index 0000000..691e6f5 --- /dev/null +++ b/gitea.sh @@ -0,0 +1,15 @@ +#!/bin/bash +podman run \ + --add-host postgresql:192.168.1.1 \ + --conmon-pidfile /opt/run/gitea.pid \ + -d \ + --env-file /opt/podman/env-gitea \ + --name gitea \ + --net slirp4netns:port_handler=slirp4netns \ + -p 127.0.0.1:10110:3000 \ + -p 127.0.0.1:2222:22 \ + --restart unless-stopped \ + -v gitea-data:/data \ + -v /etc/timezone:/etc/timezone:ro \ + -v /etc/localtime:/etc/localtime:ro \ + docker.io/gitea/gitea:latest diff --git a/habitica-client.sh b/habitica-client.sh new file mode 100755 index 0000000..1a834f7 --- /dev/null +++ b/habitica-client.sh @@ -0,0 +1,13 @@ +#!/bin/bash +podman run \ + -d \ + --name habitica-client \ + --net slirp4netns:port_handler=slirp4netns \ + --publish=10091:8080/tcp \ + -e BASE_URL=http://192.168.1.1:10090 \ + -e TZ=America/Denver \ + -h habitica-client.theribbles.org \ + -v /home/eliribble/src/habitica:/usr/src/habitica \ + -v /usr/src/habitica/node_modules \ + -v /usr/src/habitica/website/client/node_modules \ + eliribble/habitica:develop npm run client:dev diff --git a/habitica-server.sh b/habitica-server.sh new file mode 100755 index 0000000..64b5855 --- /dev/null +++ b/habitica-server.sh @@ -0,0 +1,13 @@ +#!/bin/bash +podman run \ + -d \ + --add-host mongodb:192.168.1.1 \ + --name habitica-server \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10090:3000 \ + -e NODE_DB_URI=mongodb://habitica_user:let_habitica_in@mongodb/habitica_db?authSource=admin \ + -e TZ=America/Denver \ + -h habitica-client.theribbles.org \ + -v /home/eliribble/src/habitica:/usr/src/habitica \ + eliribble/habitica:develop node website/server/index.js + # eliribble/habitica:v4.190.0-dev npm start diff --git a/jellyfin.sh b/jellyfin.sh new file mode 100755 index 0000000..4740ab8 --- /dev/null +++ b/jellyfin.sh @@ -0,0 +1,14 @@ +#!/bin/bash +podman run \ + --conmon-pidfile /opt/run/jellyfin-server.pid \ + -d \ + --name jellyfin \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10170:8096 \ + -p 1900 \ + -p 7359 \ + --restart unless-stopped \ + -v jellyfin-config:/config \ + -v jellyfin-cache:/cache \ + -v /var/opt/plex/data:/media \ + docker.io/jellyfin/jellyfin:latest diff --git a/maddy.sh b/maddy.sh new file mode 100755 index 0000000..4a225ca --- /dev/null +++ b/maddy.sh @@ -0,0 +1,15 @@ +#!/usr/bin/bash +podman run -d \ + -e MADDY_HOSTNAME=mx.theribbles.org \ + -e MADDY_DOMAIN=theribbles.org \ + --name maddy \ + --net slirp4netns:port_handler=slirp4netns \ + -p 25:25 \ + -p 143:143 \ + -p 465:465 \ + -p 587:587 \ + -p 993:993 \ + --restart=unless-stopped \ + -v /var/lib/maddy:/data \ + -v /etc/letsencrypt:/certs \ + foxcpp/maddy:0.4.4 diff --git a/mailpile.sh b/mailpile.sh new file mode 100755 index 0000000..51ac509 --- /dev/null +++ b/mailpile.sh @@ -0,0 +1,12 @@ +#!/usr/bin/bash +podman run \ + -d \ + -e MAILPILE_TOR=/usr/sbin/tor \ + -e MAILPILE_OPENSSL=/usr/bin/openssl \ + -e MAILPILE_GPG_AGENT=/usr/bin/gpg-agent \ + --name mailpile \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10120:33411 \ + -v /var/lib/mailpile:/mailpile-data \ + -v /opt/src/mailpile:/ + eliribble/mailpile:2 diff --git a/monica.sh b/monica.sh new file mode 100755 index 0000000..5b4a12e --- /dev/null +++ b/monica.sh @@ -0,0 +1,12 @@ +#!/usr/bin/bash +podman run -d \ + --add-host mariadbhost:192.168.1.1 \ + --conmon-pidfile /opt/run/monica.pid \ + --env-file=/opt/podman/env-monica \ + --name monica \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10200:80 \ + --restart=unless-stopped \ + -v storage:/var/www/html/storage \ + -v /opt/podman/env-monica:/var/www/html/.env \ + monica:4.0.0-apache diff --git a/murmur.sh b/murmur.sh new file mode 100755 index 0000000..c8685f3 --- /dev/null +++ b/murmur.sh @@ -0,0 +1,11 @@ +#!/bin/bash +podman run \ + -d \ + --name murmur \ + --net slirp4netns:port_handler=slirp4netns \ + -p 64738:64738 \ + --restart=unless-stopped \ + --user 0 \ + -v /etc/letsencrypt:/certs \ + -v /var/lib/murmur:/data \ + derenderkeks/murmur diff --git a/nextcloud.sh b/nextcloud.sh new file mode 100755 index 0000000..6d22bc8 --- /dev/null +++ b/nextcloud.sh @@ -0,0 +1,12 @@ +#!/bin/bash +podman run \ + -d \ + --add-host postgresql:192.168.1.1 \ + --conmon-pidfile /opt/run/nextcloud.pid \ + --env-file /opt/podman/env-nextcloud \ + --name nextcloud \ + --network slirp4netns:port_handler=slirp4netns \ + -p 10070:80 \ + --restart=unless-stopped \ + -v nextcloud:/var/www/html \ + localhost/eliribble/nextcloud-27-apache:latest diff --git a/oauth2-proxy-dev.sh b/oauth2-proxy-dev.sh new file mode 100755 index 0000000..15cba05 --- /dev/null +++ b/oauth2-proxy-dev.sh @@ -0,0 +1,10 @@ +#!/bin/bash +podman run \ + --rm \ + -it \ + --hostname oauth.theribbles.org \ + --name oauth \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10031:4180 \ + -v /etc/oauth2-proxy.cfg:/etc/oauth2-proxy.cfg \ + quay.io/oauth2-proxy/oauth2-proxy:v7.1.2 --config=/etc/oauth2-proxy.cfg --set-xauthrequest diff --git a/oauth2-proxy.sh b/oauth2-proxy.sh new file mode 100755 index 0000000..7563880 --- /dev/null +++ b/oauth2-proxy.sh @@ -0,0 +1,10 @@ +#!/bin/bash +podman run \ + --conmon-pidfile /opt/run/oauth2-proxy.pid \ + -d \ + --hostname oauth.theribbles.org \ + --name oauth2-proxy \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10031:4180 \ + -v /etc/oauth2-proxy.cfg:/etc/oauth2-proxy.cfg \ + quay.io/oauth2-proxy/oauth2-proxy:v7.1.2 --config=/etc/oauth2-proxy.cfg --set-xauthrequest diff --git a/openeats.sh b/openeats.sh new file mode 100755 index 0000000..c4cb532 --- /dev/null +++ b/openeats.sh @@ -0,0 +1,28 @@ +#!/bin/bash +podman pod create \ + --name openeats \ + --network slirp4netns:port_handler=slirp4netns +podman run \ + --add-host mysql:192.168.1.1 \ + --conmon-pidfile /opt/run/openeats-web.pid \ + -d \ + --entrypoint='["yarn", "dev"]' \ + --env-file /opt/podman/env-openeats \ + --name openeats-web \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10050:8080 \ + --pod openeats \ + -v /opt/src/openeats/web:/code \ + localhost/eliribble/openeats-web:latest +podman run \ + --add-host mysql:192.168.1.1 \ + --conmon-pidfile /opt/run/openeats-api.pid \ + -d \ + --env-file /opt/podman/env-openeats \ + --name openeats-api \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10051:8000 \ + --pod openeats \ + --restart unless-stopped \ + -v /opt/src/openeats/api:/code \ + localhost/eliribble/openeats-api:latest diff --git a/paperless-ngx.sh b/paperless-ngx.sh new file mode 100755 index 0000000..7cd13e3 --- /dev/null +++ b/paperless-ngx.sh @@ -0,0 +1,35 @@ +#!/bin/bash +podman pod create \ + --name paperless \ + --network slirp4netne:port_handler=slirp4netns +podman run \ + --add-host postgresql:192.168.1.1 \ + --add-host redis:192.168.1.1 \ + --conmon-pidfile /opt/run/paperless-ngx.pid \ + -d \ + --env-file /opt/podman/env-paperless-ngx \ + --name paperless-ngx \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10190:8000 \ + --pod paperless \ + --restart unless-stopped \ + -v paperless-data:/usr/src/paperless/data \ + -v paperless-media:/usr/src/paperless/media \ + -v /var/opt/paperless/consume:/usr/src/paperless/consume \ + -v /var/opt/paperless/export:/usr/src/paperless/export \ + paperlessngx/paperless-ngx:1.13 +podman run \ + --conmon-pidfile /opt/run/paperless-gotenberg.pid \ + -d \ + --name paperless-gotenberg \ + --pod paperless \ + --restart unless-stopped \ + docker.io/gotenberg/gotenberg:7.8 \ + gotenberg --chromium-disable-javascript=true --chromium-allow-list=file:///tmp/.* +podman run \ + --conmon-pidfile /opt/run/paperless-tika.pid \ + -d \ + --name paperless-tika \ + --pod paperless \ + --restart unless-stopped \ + ghcr.io/paperless-ngx/tika:latest diff --git a/photoprism.sh b/photoprism.sh new file mode 100755 index 0000000..6865cc6 --- /dev/null +++ b/photoprism.sh @@ -0,0 +1,13 @@ +#!/usr/bin/bash +podman run -d \ + --add-host mariadbhost:192.168.1.1 \ + --conmon-pidfile /opt/run/photoprism.pid \ + --env-file=/opt/podman/env-photoprism \ + --name photoprism \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10080:2342 \ + --restart=unless-stopped \ + -v /photoprism/storage \ + -v /var/lib/pictures:/photoprism/originals \ + -v /var/lib/picture-import:/photoprism/import \ + photoprism/photoprism diff --git a/piped.sh b/piped.sh new file mode 100755 index 0000000..fdfb4c2 --- /dev/null +++ b/piped.sh @@ -0,0 +1,24 @@ +#!/usr/bin/bash +podman run \ + --add-host postresql:192.168.1.1 \ + --conmon-pidfile /opt/run/piped-backend.pid \ + --env-file=/opt/podman/env-piped \ + --name piped-backend \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10220:3000 \ + -it --rm \ + -v /etc/piped/config.properties:/app/config.properties:ro \ + docker.io/1337kavin/piped:latest +#podman run -d \ + #--add-host postresql:192.168.1.1 \ + #--conmon-pidfile /opt/run/piped-frontend.pid \ + #--entrypoint "ash -c 'sed -i s/pipedapi.kavin.rocks/piped-api.theribbles.org/g /usr/share/nginx/html/assets/* && /docker-entrypoint.sh && nginx -g \"daemon off;\"'" + #--env-file=/opt/podman/env-piped \ + #--name piped-frontend \ + #--net slirp4netns:port_handler=slirp4netns \ + #-p 10220:3000 \ + #--restart=unless-stopped \ + #-v /photoprism/storage \ + #-v /var/lib/pictures:/photoprism/originals \ + #-v /var/lib/picture-import:/photoprism/import \ + #quay.io/invidious/invidious:latest diff --git a/plex.sh b/plex.sh new file mode 100755 index 0000000..6f79b49 --- /dev/null +++ b/plex.sh @@ -0,0 +1,24 @@ +#!/bin/bash +podman run \ + --conmon-pidfile /opt/run/plex.pid \ + -d \ + -e TZ=America/Denver \ + -e PLEX_CLAIM=claim-W_q7K9mcDMkYUr-x6wFm \ + -e ADVERTISE_IP=192.168.1.1:32400,plex.theribbles.org:32400 \ + -h plex.theribbles.org \ + --healthcheck-command "curl --connect-timeout 15 --max-time 100 --silent --show-error --fail http://localhost:32400/identity" \ + --name plex \ + --net slirp4netns:port_handler=slirp4netns \ + --publish=32400:32400/tcp \ + --publish=1900:1900/udp \ + --publish=3005:3005/tcp \ + --publish=8324:8324/tcp \ + --publish=32410:32410/udp \ + --publish=32412:32412/udp \ + --publish=32413:32413/udp \ + --publish=32414:32414/udp \ + --publish=32469:32469/tcp \ + -v /var/opt/plex/config:/config \ + -v /var/tmp/plex/transcode:/transcode \ + -v /var/opt/plex/data:/data \ + plexinc/pms-docker:1.24.3.5033-757abe6b4 diff --git a/roundcube.sh b/roundcube.sh new file mode 100755 index 0000000..11e8996 --- /dev/null +++ b/roundcube.sh @@ -0,0 +1,14 @@ +#!/usr/bin/bash +podman run \ + -d \ + --add-host email:192.168.1.1 \ + --conmon-pidfile /opt/run/roundcube.pid \ + --env-file=/opt/podman/env-roundcube \ + --hostname email.theribbles.org \ + --name roundcube \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10120:9000 \ + --restart=unless-stopped \ + -v /var/opt/roundcube/db:/var/roundcube/db \ + -v roundcube-web:/var/www/html \ + eliribble/roundcube:1.4.13-fpm-alpine diff --git a/stalwart.sh b/stalwart.sh new file mode 100755 index 0000000..adeb77b --- /dev/null +++ b/stalwart.sh @@ -0,0 +1,18 @@ +#!/usr/bin/bash +podman run -it --rm \ + --add-host postgresql:192.168.1.1 \ + --env-file=/opt/podman/env-stalwart \ + --conmon-pidfile=/opt/run/stalwart.pid \ + --hostname mail.theribbles.org \ + --name stalwart \ + --net slirp4netns:port_handler=slirp4netns \ + -p 25:25 \ + -p 143:143 \ + -p 465:465 \ + -p 587:587 \ + -p 993:993 \ + -p 4190:4190 \ + -p 10230:8080 \ + -v /var/opt/mail/stalwart:/opt/stalwart-mail \ + -v /etc/letsencrypt:/certs:ro \ + stalwartlabs/mail-server:latest diff --git a/stop-authentik.sh b/stop-authentik.sh new file mode 100755 index 0000000..3d8e3cf --- /dev/null +++ b/stop-authentik.sh @@ -0,0 +1,6 @@ +#!/bin/bash +podman stop authentik-worker +podman stop authentik-server +podman rm authentik-worker +podman rm authentik-server +podman pod rm authentik diff --git a/stop-openeats.sh b/stop-openeats.sh new file mode 100755 index 0000000..fdfaa77 --- /dev/null +++ b/stop-openeats.sh @@ -0,0 +1,6 @@ +#!/bin/bash +podman stop openeats-web +podman stop openeats-api +podman rm openeats-web +podman rm openeats-api +podman pod rm openeats diff --git a/synapse.sh b/synapse.sh new file mode 100755 index 0000000..3aa6299 --- /dev/null +++ b/synapse.sh @@ -0,0 +1,14 @@ +#!/bin/bash +podman run \ + -it \ + --rm \ + --add-host postgresql:192.168.1.1 \ + --conmon-pidfile /opt/run/synapse.pid \ + --env-file /opt/podman/env-synapse \ + --name synapse \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10180:8008 \ + -v /var/lib/synapse:/data \ + matrixdotorg/synapse:latest +# --restart unless-stopped \ +# -d \ diff --git a/tandoor-recipes.sh b/tandoor-recipes.sh new file mode 100755 index 0000000..223588f --- /dev/null +++ b/tandoor-recipes.sh @@ -0,0 +1,13 @@ +#!/bin/bash +podman run \ + --add-host postgres:192.168.1.1 \ + --conmon-pidfile /opt/run/tandoor-recipes.pid \ + -d \ + --env-file /opt/podman/env-tandoor-recipes \ + --name tandoor-recipes \ + --net slirp4netns:port_handler=slirp4netns \ + --rm \ + -p 10050:8080 \ + -v /home/eliribble/src/tandoor-recipes:/opt/recipes \ + -v /home/eliribble/src/django-allauth/allauth:/opt/venv/lib/python3.10/site-packages/allauth \ + localhost/eliribble/tandoor-recipes:develop diff --git a/unifi.sh b/unifi.sh new file mode 100755 index 0000000..a8ca4fe --- /dev/null +++ b/unifi.sh @@ -0,0 +1,20 @@ +#!/usr/bin/bash +podman run -d \ + --name unifi-controller \ + -e PUID=1000 \ + -e PGID=1000 \ + -e MEM_LIMIT=1024M \ + -e MEM_STARTUP=1024M \ + -p 3478:3478 \ + -p 10001:10001 \ + -p 8080:8080 \ + -p 8443:8443 \ + -p 1900:1900 \ + -p 8843:8843 \ + -p 8880:8880 \ + -p 6789:6789 \ + -p 5514:5514 \ + -v /etc/unifi-controller:/config \ + --net slirp4netns:port_handler=slirp4netns \ + --restart=unless-stopped \ + ghcr.io/linuxserver/unifi-controller diff --git a/vaultwarden.sh b/vaultwarden.sh new file mode 100755 index 0000000..3bbea91 --- /dev/null +++ b/vaultwarden.sh @@ -0,0 +1,9 @@ +#!/usr/bin/bash +podman run \ + -it \ + --conmon-pidfile /opt/run/vaultwarden.pid \ + --name vaultwarden \ + --net slirp4netns:port_handler=slirp4netns \ + -p 10040:80 \ + -v /var/lib/vaultwarden:/data/ \ + vaultwarden/server:1.29.1 diff --git a/wiki-ribbles.sh b/wiki-ribbles.sh new file mode 100755 index 0000000..61b8cd8 --- /dev/null +++ b/wiki-ribbles.sh @@ -0,0 +1,11 @@ +#!/usr/bin/bash +podman run -d \ + --add-host postgresql:192.168.1.1 \ + --conmon-pidfile /opt/run/wiki-ribbles.pid \ + --env-file=/opt/podman/env-wiki-ribbles \ + --name wiki-ribbles \ + --net slirp4netns:port_handler=slirp4netns \ + --restart=unless-stopped \ + -p 10130:3000 \ + -v /var/opt/wiki-ribbles:/var/opt/wiki \ + ghcr.io/requarks/wiki:2.5.277 diff --git a/wiki-suvereno.sh b/wiki-suvereno.sh new file mode 100755 index 0000000..4ed8587 --- /dev/null +++ b/wiki-suvereno.sh @@ -0,0 +1,11 @@ +#!/usr/bin/bash +podman run -d \ + --add-host postgresql:192.168.1.1 \ + --conmon-pidfile /opt/run/wiki-suvereno.pid \ + --env-file=/opt/podman/env-wiki-suvereno \ + --name wiki-suvereno \ + --net slirp4netns:port_handler=slirp4netns \ + --restart=unless-stopped \ + -p 11100:3000 \ + -v /var/opt/wiki-suvereno:/var/opt/wiki \ + ghcr.io/requarks/wiki:2.5.277 From dc70df7014337d639ea2e20e0bdbc36aaea3d6b2 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Wed, 21 Feb 2024 09:33:43 -0700 Subject: [PATCH 2/2] Add environment files, redacted --- env-authentik | 9 +++++++++ env-collabora | 4 ++++ env-firefly-iii | 15 +++++++++++++++ env-freeipa | 1 + env-gitea | 7 +++++++ env-mailserver | 32 ++++++++++++++++++++++++++++++++ env-monica | 13 +++++++++++++ env-nextcloud | 9 +++++++++ env-openeats | 14 ++++++++++++++ env-paperless-ngx | 12 ++++++++++++ env-photoprism | 9 +++++++++ env-piped | 0 env-roundcube | 4 ++++ env-stalwart | 0 env-synapse | 4 ++++ env-tandoor-recipes | 10 ++++++++++ env-wiki-ribbles | 9 +++++++++ env-wiki-suvereno | 9 +++++++++ 18 files changed, 161 insertions(+) create mode 100644 env-authentik create mode 100644 env-collabora create mode 100644 env-firefly-iii create mode 100644 env-freeipa create mode 100644 env-gitea create mode 100644 env-mailserver create mode 100644 env-monica create mode 100644 env-nextcloud create mode 100644 env-openeats create mode 100644 env-paperless-ngx create mode 100644 env-photoprism create mode 100644 env-piped create mode 100644 env-roundcube create mode 100644 env-stalwart create mode 100644 env-synapse create mode 100644 env-tandoor-recipes create mode 100644 env-wiki-ribbles create mode 100644 env-wiki-suvereno diff --git a/env-authentik b/env-authentik new file mode 100644 index 0000000..36d2ee5 --- /dev/null +++ b/env-authentik @@ -0,0 +1,9 @@ +AUTHENTIK_DEBUG=false +AUTHENTIK_ERROR_REPORTING__ENABLED=true +AUTHENTIK_LOG_LEVEL=debug +AUTHENTIK_POSTGRESQL__HOST=postgresql +AUTHENTIK_POSTGRESQL__NAME=authentik +AUTHENTIK_POSTGRESQL__PASSWORD=secret +AUTHENTIK_POSTGRESQL__USER=authentik_user +AUTHENTIK_REDIS__HOST=redis +AUTHENTIK_SECRET_KEY=secret diff --git a/env-collabora b/env-collabora new file mode 100644 index 0000000..e1e1245 --- /dev/null +++ b/env-collabora @@ -0,0 +1,4 @@ +COLLABORA_PASSWORD=secret +COLLABORA_USERNAME=eliribble +COLLABORA_DOMAIN=docs.theribbles.org +EXTRA_PARAMS=--o:ssl.enable=true diff --git a/env-firefly-iii b/env-firefly-iii new file mode 100644 index 0000000..20601c4 --- /dev/null +++ b/env-firefly-iii @@ -0,0 +1,15 @@ +APP_DEBUG=true +APP_KEY=secret +APP_URL=https://money.theribbles.org +AUTHENTICATION_GUARD=remote_user_guard +AUTHENTICATION_GUARD_HEADER=remote_user +AUTHENTICATION_GUARD_EMAIL=HTTP_X_EMAIL +DB_HOST=postgresql +DB_PORT=5432 +DB_CONNECTION=pgsql +DB_DATABASE=fireflyiii +DB_USERNAME=firefly_user +DB_PASSWORD=secret +SITE_OWNER=admin@theribbles.org +TRUSTED_PROXIES=** +TZ=America/Denver diff --git a/env-freeipa b/env-freeipa new file mode 100644 index 0000000..379c408 --- /dev/null +++ b/env-freeipa @@ -0,0 +1 @@ +PASSWORD=secret diff --git a/env-gitea b/env-gitea new file mode 100644 index 0000000..a14ca02 --- /dev/null +++ b/env-gitea @@ -0,0 +1,7 @@ +GITEA__service__DISABLE_REGISTRATION=true +GITEA__mailer__ENABLED=true +GITEA__database__DB_TYPE=postgres +GITEA__database__HOST=postgresql:5432 +GITEA__database__NAME=gitea +GITEA__database__USER=gitea_user +GITEA__database__PASSWD=secret diff --git a/env-mailserver b/env-mailserver new file mode 100644 index 0000000..a8828b9 --- /dev/null +++ b/env-mailserver @@ -0,0 +1,32 @@ +DMS_DEBUG=1 +DOVECOT_PASS_FILTER=(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n)) +DOVECOT_USER_FILTER=(&(objectClass=PostfixBookMailAccount)(uniqueIdentifier=%n)) +ENABLE_CLAMAV=1 +ENABLE_FAIL2BAN=1 +ENABLE_LDAP=0 +ENABLE_MANAGESIEVE=1 +ENABLE_POSTGREY=0 +ENABLE_SASLAUTHD=1 +ENABLE_SPAMASSASSIN=1 +LDAP_SEARCH_BASE=cn=users,cn=accounts,dc=theribbles,dc=org +LDAP_SERVER_HOST=ldap # your ldap container/IP/ServerName +LDAP_BIND_DN=uid=system,cn=sysaccounts,cn=etc,dc=theribbles,dc=org +LDAP_BIND_PW=HAL5nc67iXf8v5 +LDAP_QUERY_FILTER_USER=(&(mail=%s)(mailEnabled=TRUE)) +LDAP_QUERY_FILTER_GROUP=(&(mailGroupMember=%s)(mailEnabled=TRUE)) +LDAP_QUERY_FILTER_ALIAS=(|(&(mailAlias=%s)(objectClass=PostfixBookMailForward))(&(mailAlias=%s)(objectClass=PostfixBookMailAccount)(mailEnabled=TRUE))) +LDAP_QUERY_FILTER_DOMAIN=(mail=*@%s) +LDAP_QUERY_FILTER_USER=(mail=%s) +LDAP_QUERY_FILTER_ALIAS=(|) +LDAP_QUERY_FILTER_GROUP=(|) +LDAP_QUERY_FILTER_SENDERS=(|(mail=%s)(mail=admin@*)) +NETWORK_INTERFACE=tap0 +ONE_DIR=1 +POSTMASTER_ADDRESS=postmaster@localhost.localdomain +POSTFIX_MESSAGE_SIZE_LIMIT=100000000 +SASLAUTHD_MECHANISMS=rimap +SASLAUTHD_MECH_OPTIONS=127.0.0.1 +SPAMASSASSIN_SPAM_TO_INBOX=1 +SSL_CERT_PATH=/certs/live/theribbles.org/fullchain.pem +SSL_KEY_PATH=/certs/live/theribbles.org/privkey.pem +SSL_TYPE=manual diff --git a/env-monica b/env-monica new file mode 100644 index 0000000..80d1206 --- /dev/null +++ b/env-monica @@ -0,0 +1,13 @@ +APP_ENV=production +APP_KEY=base64:8IzDPFR0/ydvfHiu5jmMI+9LvLciwluF0IstUefY+W0= +APP_TRUSTED_PROXIES=* +APP_URL=https://contacts.theribbles.org +DAV_ENABLED=true +DB_DATABASE=monica_db +DB_USERNAME=monica_user +DB_PASSWORD=secret +DB_HOST=mariadbhost +CACHE_DRIVER=database +LOG_CHANNEL=stdout +QUEUE_DRIVER=sync +SESSION_DRIVER=database diff --git a/env-nextcloud b/env-nextcloud new file mode 100644 index 0000000..1a27cfd --- /dev/null +++ b/env-nextcloud @@ -0,0 +1,9 @@ +APACHE_DISABLE_REWRITE_IP=1 +OVERWRITEPROTOCOL=https +POSTGRES_DB=nextcloud +POSTGRES_USER=nextcloud_user +POSTGRES_PASSWORD=secret +POSTGRES_HOST=postgresql +NEXTCLOUD_ADMIN_USER=eliribble@theribbles.org +NEXTCLOUD_TRUSTED_DOMAINS=theribbles.org +TRUSTED_PROXIES=* diff --git a/env-openeats b/env-openeats new file mode 100644 index 0000000..d693f30 --- /dev/null +++ b/env-openeats @@ -0,0 +1,14 @@ +ALLOWED_HOST=recipes.theribbles.org +API_PORT=8000 +API_URL=0.0.0.0:8000 +DJANGO_SECRET_KEY=secret +HTTP_X_FORWARDED_PROTO=True +MYSQL_DATABASE=openeats +MYSQL_HOST=mysql +MYSQL_PORT=3306 +MYSQL_ROOT_PASSWORD=secret +MYSQL_USER=openeats_user +NODE_API_URL=https://recipes.theribbles.org +NODE_ENV=dev +NODE_LOCALE=en +NODE_URL=recipes.theribbles.org diff --git a/env-paperless-ngx b/env-paperless-ngx new file mode 100644 index 0000000..ad04898 --- /dev/null +++ b/env-paperless-ngx @@ -0,0 +1,12 @@ +PAPERLESS_REDIS=redis://redis:6379 +PAPERLESS_DBENGINGE=postgres +PAPERLESS_DBHOST=postgresql +PAPERLESS_DBPASS=secret +PAPERLESS_DBUSER=paperless_user +PAPERLESS_URL=https://docs.theribbles.org +PAPERLESS_SECRET_KEY=secret +PAPERLESS_TIME_ZONE=America/Phoenix +PAPERLESS_OCR_LANGUAGE=eng +PAPERLESS_TIKA_ENABLED=1 +PAPERLESS_TIKA_GOTENBERG_ENDPOINT=http://gotenberg:3000 +PAPERLESS_TIKA_ENDPOINT=http://tika:9998 diff --git a/env-photoprism b/env-photoprism new file mode 100644 index 0000000..ef27560 --- /dev/null +++ b/env-photoprism @@ -0,0 +1,9 @@ +PHOTOPRISM_ADMIN_PASSWORD=secret +PHOTOPRISM_DATABASE_DRIVER=mariadb +PHOTOPRISM_DATABASE_NAME=photoprism +PHOTOPRISM_DATABASE_PASSWORD=secret +PHOTOPRISM_DATABASE_SERVER=mariadbhost +PHOTOPRISM_DATABASE_USER=photoprism_user +PHOTOPRISM_SITE_URL=https://photos.theribbles.org +PHOTOPRISM_UPLOAD_NSFW=true +PHOTOPRISM_IMPORT_PATH=/photoprism/import diff --git a/env-piped b/env-piped new file mode 100644 index 0000000..e69de29 diff --git a/env-roundcube b/env-roundcube new file mode 100644 index 0000000..59acdac --- /dev/null +++ b/env-roundcube @@ -0,0 +1,4 @@ +ROUNDCUBEMAIL_DEFAULT_HOST=ssl://home.theribbles.org +ROUNDCUBEMAIL_SMTP_SERVER=ssl://home.theribbles.org +ROUNDCUBEMAIL_SKIN=classic +ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE=100M diff --git a/env-stalwart b/env-stalwart new file mode 100644 index 0000000..e69de29 diff --git a/env-synapse b/env-synapse new file mode 100644 index 0000000..4a16e29 --- /dev/null +++ b/env-synapse @@ -0,0 +1,4 @@ +SYNAPSE_SERVER_NAME=matrix.theribbles.org +SYNAPSE_REPORT_STATS=yes +SYNAPSE_HTTP_PORT=8008 + diff --git a/env-tandoor-recipes b/env-tandoor-recipes new file mode 100644 index 0000000..3cf9e9b --- /dev/null +++ b/env-tandoor-recipes @@ -0,0 +1,10 @@ +SECRET_KEY=secret +DB_ENGINE=django.db.backends.postgresql +DEBUG=1 +POSTGRES_HOST=postgres +POSTGRES_PORT=5432 +POSTGRES_USER=tandoor_recipes_user +POSTGRES_PASSWORD=secret +POSTGRES_DB=tandoor_recipes +SOCIAL_PROVIDERS=allauth.socialaccount.providers.authentik +SOCIALACCOUNT_PROVIDERS={"authentik":{"SERVERS":[{"id":"ribblesso","name":"Ribble SSO","openid_configuration_url":"https://auth.theribbles.org/application/o/recipes/.well-known/openid-configuration"}]}} diff --git a/env-wiki-ribbles b/env-wiki-ribbles new file mode 100644 index 0000000..6f9f83a --- /dev/null +++ b/env-wiki-ribbles @@ -0,0 +1,9 @@ +DB_TYPE=postgres +DB_HOST=postgresql +DB_PORT=5432 +DB_USER=wiki_user +DB_PASS=secret +DB_NAME=wiki +DB_SSL=0 +SSL_ACTIVE=0 +HA_ACTIVE=0 diff --git a/env-wiki-suvereno b/env-wiki-suvereno new file mode 100644 index 0000000..a33ada0 --- /dev/null +++ b/env-wiki-suvereno @@ -0,0 +1,9 @@ +DB_TYPE=postgres +DB_HOST=postgresql +DB_PORT=5432 +DB_USER=suvereno_wiki_user +DB_PASS=secret +DB_NAME=suvereno_wiki +DB_SSL=0 +SSL_ACTIVE=0 +HA_ACTIVE=0