Compare commits

310 Commits

Author SHA1 Message Date
94c6059dbb update traefik config
Some checks are pending
Deploy Containers / Prepare (push) Waiting to run
2026-02-16 23:43:49 -05:00
f1875ed26b fix cloudflared task
All checks were successful
Deploy Containers / Prepare (push) Successful in 25s
2026-02-16 23:35:53 -05:00
79060a21d4 add cloudflared to main
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
2026-02-16 23:35:15 -05:00
9906e6ec87 start cloudflare tunnel
Some checks failed
Deploy Containers / Prepare (push) Has been cancelled
2026-02-16 23:33:36 -05:00
f9ff703312 add audiobookshelf
All checks were successful
Deploy Containers / Prepare (push) Successful in 29s
2026-02-16 14:57:33 -05:00
a04fc5432b publish ersatz port
All checks were successful
Deploy Containers / Prepare (push) Successful in 30s
2026-02-15 18:18:44 -05:00
6aa331c2b3 fix syntax
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m25s
2026-02-14 19:01:54 -05:00
984bada205 add ersatztv
Some checks failed
Deploy Containers / Prepare (push) Failing after 5s
2026-02-14 18:59:57 -05:00
27dfcae9eb disable turnstile
All checks were successful
Deploy Containers / Prepare (push) Successful in 35s
2026-02-14 16:11:51 -05:00
528f07f180 fix ambiguous option
All checks were successful
Deploy Containers / Prepare (push) Successful in 35s
2026-02-14 16:10:39 -05:00
55de2bd8ae secure cobalt
Some checks failed
Deploy Containers / Prepare (push) Failing after 14s
2026-02-14 16:10:03 -05:00
b598991248 run plex in host networking mode
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m10s
2026-02-14 14:49:16 -05:00
c14c64f3b7 fix runner template path
All checks were successful
Deploy Containers / Prepare (push) Successful in 26s
2026-02-14 14:45:25 -05:00
3b1904c60a use traefik router for ple
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m12s
2026-02-14 14:44:45 -05:00
5f7d22874f start tinyauth first
Some checks failed
Deploy Containers / Prepare (push) Has been cancelled
2026-02-14 14:44:03 -05:00
3141559f48 cleanup
Some checks failed
Deploy Containers / Prepare (push) Failing after 4s
2026-02-14 14:35:29 -05:00
4a71f2e7df add docs
All checks were successful
Deploy Containers / Prepare (push) Successful in 36s
2026-01-31 18:52:20 -05:00
67d17294dc fucking stop autocapitalizing
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-28 20:33:30 -05:00
90cc197c20 pass host header to wings
Some checks failed
Deploy Containers / Prepare (push) Failing after 5s
2026-01-28 20:32:51 -05:00
cc80eae7f3 update vars
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
2026-01-28 20:09:46 -05:00
fdab1a7187 deploy pelican
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-28 20:09:03 -05:00
e16f922362 deploy pterodactyl
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-28 20:00:10 -05:00
8aac1e67ce update wings load balancer
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m17s
2026-01-28 19:31:32 -05:00
284ed2c808 fix caddyfile not writable
All checks were successful
Deploy Containers / Prepare (push) Successful in 47s
2026-01-28 19:19:49 -05:00
bb4aee9a84 fix missing caddyfile
Some checks failed
Deploy Containers / Prepare (push) Failing after 8s
2026-01-28 19:18:02 -05:00
852a040e8a deploy pelican to bear
Some checks failed
Deploy Containers / Prepare (push) Failing after 20s
2026-01-28 19:15:06 -05:00
2570402c1d add token
All checks were successful
Deploy Containers / Prepare (push) Successful in 38s
2026-01-27 21:23:48 -05:00
2ec7d85ca4 remove lidarr
All checks were successful
Deploy Containers / Prepare (push) Successful in 38s
2026-01-19 15:24:33 -05:00
0621fb00cd update servarr container names
All checks were successful
Deploy Containers / Prepare (push) Successful in 2m31s
2026-01-18 18:20:19 -05:00
7a751d2345 add cobalt
All checks were successful
Deploy Containers / Prepare (push) Successful in 29s
2026-01-18 16:25:01 -05:00
de4cc24458 fix language
All checks were successful
Deploy Containers / Prepare (push) Successful in 47s
2026-01-18 16:17:43 -05:00
be4bd3dc02 add marreta url
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
2026-01-18 16:10:07 -05:00
9182ca99f9 deploy marreta
Some checks failed
Deploy Containers / Prepare (push) Failing after 9s
2026-01-18 16:09:15 -05:00
a9ac725cbe update tinyauth secrets
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-18 15:58:19 -05:00
5562702fc7 add tinyauth to jackson
All checks were successful
Deploy Containers / Prepare (push) Successful in 27s
2026-01-18 15:53:36 -05:00
05ee187d24 remove host
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-18 15:48:36 -05:00
d680d8d86c run nzbget on user
All checks were successful
Deploy Containers / Prepare (push) Successful in 34s
2026-01-17 21:17:50 -05:00
d19542df43 fix network name
All checks were successful
Deploy Containers / Prepare (push) Successful in 46s
2026-01-11 19:52:49 -05:00
56685c1ae9 fix url
Some checks failed
Deploy Containers / Prepare (push) Failing after 35s
2026-01-11 19:51:58 -05:00
0e2067b16f fix name
Some checks failed
Deploy Containers / Prepare (push) Failing after 12s
2026-01-11 19:51:20 -05:00
00c6fc8c5e maybe?
Some checks failed
Deploy Containers / Prepare (push) Failing after 12s
2026-01-11 19:49:30 -05:00
ebad76b5e4 fix config
Some checks failed
Deploy Containers / Prepare (push) Failing after 14s
2026-01-11 19:48:48 -05:00
45776f7528 deploy floof
Some checks failed
Deploy Containers / Prepare (push) Failing after 12s
2026-01-11 19:47:40 -05:00
074ebdfebc add env var for frigate
All checks were successful
Deploy Containers / Prepare (push) Successful in 39s
2026-01-10 18:56:11 -05:00
6f0db19d1a use image for api
All checks were successful
Deploy Containers / Prepare (push) Successful in 56s
2026-01-10 18:52:43 -05:00
a7451c31ec remove nvr from traefik config
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m8s
2026-01-10 18:49:26 -05:00
0b1b88c831 fix timeouts in traefik config
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m22s
2026-01-10 18:38:10 -05:00
ecd8d4f20e update vars
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-10 18:26:52 -05:00
27bf6a9caf fix tag spread
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-10 18:15:30 -05:00
8c3835288c migrate to pocketid v2
All checks were successful
Deploy Containers / Prepare (push) Successful in 26s
2026-01-10 18:12:48 -05:00
c66daac36a fix servarr media path
All checks were successful
Deploy Containers / Prepare (push) Successful in 27s
2026-01-10 16:56:13 -05:00
8cfb10a2a9 run as self
All checks were successful
Deploy Containers / Prepare (push) Successful in 26s
2026-01-10 16:53:35 -05:00
0cb9abf64a log commang running
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-10 16:52:18 -05:00
b645bf320d fix servarr downloads path
All checks were successful
Deploy Containers / Prepare (push) Successful in 28s
2026-01-10 16:51:14 -05:00
5631aa016b fix gitea
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2026-01-10 16:47:00 -05:00
48676d4417 stop deploying fivem
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2026-01-10 16:06:52 -05:00
608ba23c31 update jackson
Some checks failed
Deploy Containers / Prepare (push) Failing after 5s
2026-01-10 15:55:37 -05:00
f4e6fe6ba7 fix homebridge dir name
Some checks failed
Deploy Containers / Prepare (push) Failing after 7s
2026-01-10 15:31:19 -05:00
57e03af1d9 do i suck at python or what
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-10 15:29:47 -05:00
248af84c40 Update deploy_containers.py
Some checks failed
Deploy Containers / Prepare (push) Failing after 4s
2026-01-10 15:29:26 -05:00
1057e5599b account for deployed not being defined
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
2026-01-10 15:28:52 -05:00
fb29fbce8d don't run deployment if no tasks
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
2026-01-10 15:28:03 -05:00
490b910e53 whoops
Some checks failed
Deploy Containers / Prepare (push) Failing after 4s
2026-01-10 15:27:30 -05:00
506064d863 clean up deployment script
Some checks failed
Deploy Containers / Prepare (push) Failing after 4s
2026-01-10 15:26:46 -05:00
b2fbe75290 run as user
Some checks failed
Deploy Containers / Prepare (push) Failing after 15s
2026-01-10 01:52:44 -05:00
836d6ba38f update database credentials
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2026-01-10 01:51:01 -05:00
1ab98cfbdd add image tag
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2026-01-10 01:48:46 -05:00
8f05f962f7 migrate to role system
Some checks failed
Deploy Containers / Prepare (push) Failing after 8s
2026-01-10 01:48:15 -05:00
97a07edb13 update db creds
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2026-01-10 01:46:54 -05:00
a25ed32a4d remove booklore network
Some checks failed
Deploy Containers / Prepare (push) Failing after 27s
2026-01-10 01:40:16 -05:00
d115aabb12 restore immich
Some checks failed
Deploy Containers / Prepare (push) Failing after 16s
2026-01-10 01:33:23 -05:00
c688faaaee only start db
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2026-01-10 01:18:22 -05:00
bc230e2038 add puid/guid
Some checks failed
Deploy Containers / Prepare (push) Failing after 16s
2026-01-10 01:06:28 -05:00
f51ac48bdf move rest of needed services
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-10 01:03:21 -05:00
06b4c78195 fix other actions
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
2026-01-10 00:59:23 -05:00
86f22e6fc2 remove jade
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-10 00:58:24 -05:00
0a21b6f6cc update db url
Some checks failed
Deploy Containers / Prepare (push) Failing after 8s
2026-01-10 00:53:10 -05:00
159b0e46d4 ffs
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
2026-01-10 00:52:45 -05:00
b90e42a182 Revert "fix database url in booklore"
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
This reverts commit 0c7da39896.
2026-01-10 00:52:23 -05:00
0c7da39896 fix database url in booklore
All checks were successful
Deploy Containers / Prepare (push) Successful in 2s
2026-01-10 00:51:43 -05:00
45f5b2a963 define shell
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
2026-01-10 00:48:33 -05:00
2655c222b3 remove shell
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
2026-01-10 00:45:58 -05:00
e26677cda9 use ansible image
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2026-01-10 00:44:56 -05:00
e8b8c7f689 use ansible container image
Some checks failed
Deploy Containers / Prepare (push) Failing after 16s
2026-01-10 00:39:22 -05:00
950464db7e add yes args
All checks were successful
Deploy Containers / Prepare (push) Successful in 53s
2026-01-10 00:36:35 -05:00
8489ebe6df fix deploy action
Some checks failed
Deploy Containers / Prepare (push) Failing after 15s
2026-01-10 00:35:56 -05:00
9be0b01696 try dis
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2026-01-10 00:09:47 -05:00
cce38c758b fix duped runners
Some checks failed
Deploy Containers / Prepare (push) Has been cancelled
2026-01-10 00:04:05 -05:00
0cfe059b22 add moar label
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-09 17:48:07 -05:00
fce4639204 remove redundant variable
Some checks failed
Deploy Containers / Prepare (push) Failing after 4s
2026-01-09 17:33:19 -05:00
21594d0ca3 dang
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-09 17:32:58 -05:00
60228b1597 fix f strings
Some checks failed
Deploy Containers / Prepare (push) Failing after 4s
2026-01-09 17:31:47 -05:00
2ed3b848a3 Revert "remove redundant variable"
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
This reverts commit 7f116bcb84.
2026-01-09 17:26:56 -05:00
7f116bcb84 remove redundant variable
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
2026-01-09 17:25:21 -05:00
e68d90e6e2 fix bad line
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
2026-01-09 17:25:00 -05:00
aed0dedf49 Revert "remove redundant variable"
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
This reverts commit 53ea87701a.
2026-01-09 17:24:31 -05:00
53ea87701a remove redundant variable
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
2026-01-09 17:22:32 -05:00
8eb3cfef8b fix deploy script
Some checks failed
Deploy Containers / Prepare (push) Failing after 3s
2026-01-09 17:21:18 -05:00
cc11de52a5 fix runner labels
Some checks failed
Deploy Containers / Prepare (push) Failing after 49s
2026-01-09 17:19:01 -05:00
105383320a bunch of updates
Some checks failed
Deploy Containers / Prepare (push) Failing after 38s
2026-01-09 15:08:31 -05:00
db4de63f86 gitea in docker
Some checks failed
Deploy Containers / Prepare (push) Failing after 36s
2026-01-07 20:27:12 -05:00
6f50604fb3 add a few more services
Some checks failed
Deploy Containers / Prepare (push) Failing after 6s
2026-01-07 19:55:10 -05:00
40e3ace8eb add tautulli
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-07 01:22:30 -05:00
8a47deb337 add vw + monitoring to new server
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2026-01-07 01:09:35 -05:00
2f43eabcb7 update vars
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2026-01-07 00:43:21 -05:00
b8f2eccb10 fix wrong task name
All checks were successful
Deploy Containers / Prepare (push) Successful in 10s
2026-01-07 00:36:47 -05:00
f192675fc9 scrobbling
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2026-01-07 00:31:23 -05:00
adde9eec15 add koito to bear
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2026-01-07 00:29:14 -05:00
2a65a44ca2 use host
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2026-01-07 00:03:49 -05:00
80bbe1975e add bear
Some checks failed
Deploy Containers / Prepare (push) Failing after 31s
2026-01-07 00:02:09 -05:00
e3368e4865 remove owncloud
All checks were successful
Deploy Containers / Prepare (push) Successful in 49s
2025-12-28 17:54:19 -05:00
a7c3c46337 fix name
Some checks failed
Deploy Containers / Prepare (push) Has been cancelled
2025-12-28 17:39:49 -05:00
5711544692 use file config
All checks were successful
Deploy Containers / Prepare (push) Successful in 3s
2025-12-28 17:38:20 -05:00
b03a4e3589 create directories
All checks were successful
Deploy Containers / Prepare (push) Successful in 30s
2025-12-28 17:36:30 -05:00
550f86de0a add secrets
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-28 17:35:15 -05:00
5f3e57ba37 add lastfm as source
Some checks failed
Deploy Containers / Prepare (push) Failing after 10s
2025-12-28 17:32:46 -05:00
673d64b476 add scrobbler env vars
All checks were successful
Deploy Containers / Prepare (push) Successful in 31s
2025-12-28 17:21:20 -05:00
77b745346f add multi-scrobbler
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m6s
2025-12-28 17:15:44 -05:00
747dcb1f9b create directories
All checks were successful
Deploy Containers / Prepare (push) Successful in 41s
2025-12-28 17:00:26 -05:00
f62396b1d0 copy prometheus config
Some checks failed
Deploy Containers / Prepare (push) Failing after 12s
2025-12-28 16:58:18 -05:00
fa8fba6fb6 lmao..
All checks were successful
Deploy Containers / Prepare (push) Successful in 41s
2025-12-28 16:53:52 -05:00
b986c2a395 readd promtail
All checks were successful
Deploy Containers / Prepare (push) Successful in 41s
2025-12-28 16:46:46 -05:00
21e8d6f6f9 disable loki
All checks were successful
Deploy Containers / Prepare (push) Successful in 33s
2025-12-28 16:27:20 -05:00
07b786da00 drop loki batch size
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-28 16:15:47 -05:00
600a837d89 fix spelling mistakes
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-12-28 16:09:09 -05:00
415672cdb2 don't start jackett
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-28 16:08:06 -05:00
0cf01278ad restart always
All checks were successful
Deploy Containers / Prepare (push) Successful in 6s
2025-12-28 16:04:22 -05:00
a0221b1be4 remove promtail
Some checks failed
Deploy Containers / Prepare (push) Failing after 1m20s
2025-12-27 21:31:00 -05:00
ad90a5c31e default to loki as docker logger driver
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-27 21:24:23 -05:00
88c718eb77 add loki + promtail
All checks were successful
Deploy Containers / Prepare (push) Successful in 52s
2025-12-27 21:20:31 -05:00
95766317e3 fix update script
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-27 21:05:12 -05:00
4d815c7e19 move booklore to main database
All checks were successful
Deploy Containers / Prepare (push) Successful in 27s
2025-12-26 21:05:40 -05:00
44714d41cd ugh
All checks were successful
Deploy Containers / Prepare (push) Successful in 35s
2025-12-26 20:55:05 -05:00
e8c1a509dd fix database name
All checks were successful
Deploy Containers / Prepare (push) Successful in 23s
2025-12-26 20:36:18 -05:00
c92d2e0e40 move postgres services to global postgres
All checks were successful
Deploy Containers / Prepare (push) Successful in 54s
2025-12-26 20:25:55 -05:00
086f29d62d lmao
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-12-26 20:08:34 -05:00
58c0e75630 maybe?
Some checks failed
Deploy Containers / Prepare (push) Failing after 13s
2025-12-26 20:07:01 -05:00
fbb7c1ed61 add global mariadb/postgres instances
All checks were successful
Deploy Containers / Prepare (push) Successful in 49s
2025-12-26 20:03:14 -05:00
86e5bf1e0e remove termix
All checks were successful
Deploy Containers / Prepare (push) Successful in 15s
2025-12-26 19:51:44 -05:00
f26c84f589 update glance to adguard
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-12-26 19:50:28 -05:00
0cee1586a8 docs lied..
All checks were successful
Deploy Containers / Prepare (push) Successful in 25s
2025-12-26 19:44:44 -05:00
9007128bc5 implement adguard, remove pihole
Some checks failed
Deploy Containers / Prepare (push) Failing after 20s
2025-12-26 19:42:34 -05:00
9b7773d5f5 remove unused file hosts
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m5s
2025-12-26 19:35:17 -05:00
6d4a5b7a28 pull latest traefik image
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m22s
2025-12-26 19:33:15 -05:00
92d1cdb00a remove excalidraw x3
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-26 19:27:27 -05:00
e7e3b5f8c9 decode string to utf8
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-26 19:27:15 -05:00
8a3f1b9834 Revert "remove excalidraw x2"
All checks were successful
Deploy Containers / Prepare (push) Successful in 22s
This reverts commit c6c79c087c.
2025-12-26 19:26:13 -05:00
c6c79c087c remove excalidraw x2
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-12-26 19:25:42 -05:00
b60cf30c9d strip blank space at end of command list
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-26 19:25:21 -05:00
2132fc635e Revert "remove excalidraw"
All checks were successful
Deploy Containers / Prepare (push) Successful in 28s
This reverts commit cddcc057df.
2025-12-26 19:24:31 -05:00
cddcc057df remove excalidraw
All checks were successful
Deploy Containers / Prepare (push) Successful in 6s
2025-12-26 19:23:35 -05:00
707e461e7c use docker ps for removal search
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-26 19:19:14 -05:00
f3dedf19a0 don't deploy owncloud on jackson
All checks were successful
Deploy Containers / Prepare (push) Successful in 7s
2025-12-22 17:07:30 -05:00
62648e9b2d mount at different path
All checks were successful
Deploy Containers / Prepare (push) Successful in 34s
2025-12-22 14:28:44 -05:00
88406887cb add public key to duplicati
All checks were successful
Deploy Containers / Prepare (push) Successful in 32s
2025-12-22 14:09:42 -05:00
09051f2ef7 add encryption key
All checks were successful
Deploy Containers / Prepare (push) Successful in 34s
2025-12-22 14:04:22 -05:00
dab5bc78a4 add ssh key
All checks were successful
Deploy Containers / Prepare (push) Successful in 32s
2025-12-22 14:01:53 -05:00
ef6c1dfc73 add duplicati
All checks were successful
Deploy Containers / Prepare (push) Successful in 38s
2025-12-22 14:00:25 -05:00
af42ecc081 use docker volume
All checks were successful
Deploy Containers / Prepare (push) Successful in 32s
2025-12-22 11:23:05 -05:00
68965215b7 launch as user
All checks were successful
Deploy Containers / Prepare (push) Successful in 32s
2025-12-22 11:21:08 -05:00
c7ba7b6e5c add missing grafana volume
All checks were successful
Deploy Containers / Prepare (push) Successful in 31s
2025-12-22 11:17:38 -05:00
8e1b20fb18 fix tag
All checks were successful
Deploy Containers / Prepare (push) Successful in 33s
2025-12-22 11:14:48 -05:00
85daedfd70 add cadvisor to monitoring stack
Some checks failed
Deploy Containers / Prepare (push) Failing after 18s
2025-12-22 11:13:57 -05:00
765d7bbe68 add tinyauth middleware to grafana
All checks were successful
Deploy Containers / Prepare (push) Successful in 29s
2025-12-22 11:00:07 -05:00
514c47de89 add prometheus to homelab net
All checks were successful
Deploy Containers / Prepare (push) Successful in 29s
2025-12-22 10:58:01 -05:00
65f313c5c7 fix server application url var
All checks were successful
Deploy Containers / Prepare (push) Successful in 30s
2025-12-21 21:38:32 -05:00
acf6a43803 fix oidc variable
All checks were successful
Deploy Containers / Prepare (push) Successful in 32s
2025-12-21 21:37:07 -05:00
4ff97ffe87 fix romm arg
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-12-21 21:34:25 -05:00
f99c73740d wrong variables
All checks were successful
Deploy Containers / Prepare (push) Successful in 28s
2025-12-21 21:28:53 -05:00
dbb9a8492c add password to jdbc url
All checks were successful
Deploy Containers / Prepare (push) Successful in 28s
2025-12-21 21:26:45 -05:00
a90d5f76db ahaaaa
All checks were successful
Deploy Containers / Prepare (push) Successful in 26s
2025-12-21 21:21:23 -05:00
893a1e7b67 add volumes
All checks were successful
Deploy Containers / Prepare (push) Successful in 25s
2025-12-21 21:12:51 -05:00
1dd1e662d0 lmao typo
All checks were successful
Deploy Containers / Prepare (push) Successful in 33s
2025-12-21 21:07:46 -05:00
a99600de27 use list
Some checks failed
Deploy Containers / Prepare (push) Failing after 28s
2025-12-21 21:06:46 -05:00
b6943995ba whoops
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2025-12-21 21:06:10 -05:00
b82f61864d add kotio
Some checks failed
Deploy Containers / Prepare (push) Failing after 11s
2025-12-21 21:05:41 -05:00
e2b104614c mount config for prom
All checks were successful
Deploy Containers / Prepare (push) Successful in 28s
2025-12-21 20:56:11 -05:00
9a255bb470 add network, fix var
All checks were successful
Deploy Containers / Prepare (push) Successful in 53s
2025-12-21 20:53:59 -05:00
6ff3599bcf add monitoring stack
Some checks failed
Deploy Containers / Prepare (push) Failing after 30s
2025-12-21 20:52:33 -05:00
df1d70aa0c add booklore deploy script
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-12-21 20:25:24 -05:00
06cd56e26f clean up
All checks were successful
Deploy Containers / Prepare (push) Successful in 6s
2025-12-21 20:22:30 -05:00
6b382f2b29 add booklore
All checks were successful
Deploy Containers / Prepare (push) Successful in 25s
2025-12-06 13:55:22 -05:00
9d643b8eb1 use jade wings
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m29s
2025-11-27 20:35:38 -05:00
61474c72fc traefik madness
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m20s
2025-11-27 20:26:35 -05:00
581be1e7ca add api preface
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-27 17:04:47 -05:00
845291b499 update variables
Some checks failed
Deploy Containers / Prepare (push) Has been cancelled
2025-11-27 17:04:23 -05:00
a00f93c2df add host/port
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-11-27 14:03:42 -05:00
7b384c6358 add to network
All checks were successful
Deploy Containers / Prepare (push) Successful in 21s
2025-11-27 14:00:54 -05:00
a04a4ebded wrong port
All checks were successful
Deploy Containers / Prepare (push) Successful in 25s
2025-11-27 14:00:06 -05:00
7a828308d4 add phpmyadmin
All checks were successful
Deploy Containers / Prepare (push) Successful in 36s
2025-11-27 13:57:29 -05:00
8cd245121d add etc folder
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-11-27 00:21:03 -05:00
04ee0f97e7 publish sql port
All checks were successful
Deploy Containers / Prepare (push) Successful in 21s
2025-11-26 23:40:29 -05:00
71b1939f98 deploy mariadb
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-11-26 23:36:34 -05:00
c653c2ac43 use ip
All checks were successful
Deploy Containers / Prepare (push) Successful in 48s
2025-11-26 22:56:00 -05:00
75fd16c532 add config for traefik wings
All checks were successful
Deploy Containers / Prepare (push) Successful in 48s
2025-11-26 22:54:06 -05:00
9634a94cd4 i fix!!! i fix!!!!!!
All checks were successful
Deploy Containers / Prepare (push) Successful in 53s
2025-11-26 22:43:40 -05:00
a5fcd5463e fuck it
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-26 22:34:41 -05:00
7e5ebad8c6 add trusted proxies
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-11-26 22:33:19 -05:00
6c2f523779 try other port
All checks were successful
Deploy Containers / Prepare (push) Successful in 21s
2025-11-26 22:19:06 -05:00
9ebe5268f9 are u kidding me..
All checks were successful
Deploy Containers / Prepare (push) Successful in 21s
2025-11-26 22:17:49 -05:00
fcc42b9b7c back to 80
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-11-26 22:09:11 -05:00
83268558ae try
All checks were successful
Deploy Containers / Prepare (push) Successful in 22s
2025-11-26 22:03:11 -05:00
a11bd28c4e update service/router name
All checks were successful
Deploy Containers / Prepare (push) Successful in 22s
2025-11-26 22:00:33 -05:00
62e149632e use docker volumes
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-11-26 21:59:00 -05:00
018a212ad1 let it create it on its own
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-11-26 21:52:38 -05:00
6474804095 add user
All checks were successful
Deploy Containers / Prepare (push) Successful in 22s
2025-11-26 21:51:15 -05:00
5cdfe44d6c change data path
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-11-26 21:49:30 -05:00
008cd10523 fix key name
All checks were successful
Deploy Containers / Prepare (push) Successful in 35s
2025-11-26 21:46:31 -05:00
9472336a4b add pelican
Some checks failed
Deploy Containers / Prepare (push) Failing after 33s
2025-11-26 21:45:21 -05:00
16b6d9467d use app url
All checks were successful
Deploy Containers / Prepare (push) Successful in 55s
2025-11-26 20:15:07 -05:00
4d54e0b5d1 use config name
All checks were successful
Deploy Containers / Prepare (push) Successful in 55s
2025-11-26 20:12:46 -05:00
ff54cc17c1 deploy ptero to jackson
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-26 20:11:09 -05:00
f48d7b1d4c remove published port
All checks were successful
Deploy Containers / Prepare (push) Successful in 23s
2025-11-25 19:54:14 -05:00
7f1afe75b0 knew that'd bite me in the ass
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-25 15:55:57 -05:00
c1d083d51c take down my entire network cause why not
Some checks failed
Deploy Containers / Prepare (push) Failing after 6s
2025-11-25 15:53:00 -05:00
8c6f545195 add vars to api
Some checks failed
Deploy Containers / Prepare (push) Failing after 44s
2025-11-24 19:48:22 -05:00
2ab47a4085 Merge pull request 'Automated Template Extraction' (#13) from template-extraction-309 into main
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
Reviewed-on: #13
2025-11-22 22:40:40 +00:00
4808bafb15 Automated template extraction 2025-11-22 22:39:58 +00:00
7806dbb7ef update extraction script
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-22 17:39:26 -05:00
610c62b75a fix update script
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-22 17:20:46 -05:00
60ef84f37d migrate immich
All checks were successful
Deploy Containers / Prepare (push) Successful in 25s
2025-11-22 17:20:33 -05:00
993fd8eee7 fix api
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-22 16:54:31 -05:00
a32a59ca0a lmao
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-22 16:43:37 -05:00
909631952b update api db version
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-22 16:41:37 -05:00
5995621767 add omit to networks
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-22 01:04:50 -05:00
77504eeffd fix update script
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 21:52:00 -05:00
078cb8edff show stdout
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 21:47:22 -05:00
023b48ace0 migrate gitea
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-21 21:45:47 -05:00
20362a069a remove pull command, ansible does this
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 21:39:03 -05:00
4c878661e8 migrate owncloud
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-21 21:33:45 -05:00
fb19e9eefe migrate termix
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-21 21:26:03 -05:00
9c32a10144 migrate storage api
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-21 21:24:53 -05:00
18d632e4ce migrate servarr
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-21 21:23:15 -05:00
ea30d599a9 migrate obsidian
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-21 21:20:48 -05:00
390a571fa4 migrate frigate
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-21 21:18:54 -05:00
70fa7c77a8 migrate ersatz
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-21 21:17:19 -05:00
1b1d0181c7 fix weird formatting in actions
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-21 21:15:51 -05:00
7724c47528 whoops
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-21 21:14:48 -05:00
2ed283ae54 migrate drop
Some checks failed
Deploy Containers / Prepare (push) Failing after 6s
2025-11-21 21:14:01 -05:00
f5a2b4c6c8 clean up logging
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-21 03:33:05 -05:00
f6b850574d forgot directories
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m5s
2025-11-21 03:31:40 -05:00
5ea7ad74cd fix
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-21 03:30:00 -05:00
2897d67957 always pull image
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 03:28:00 -05:00
681a876dae migrate vaultwarden
All checks were successful
Deploy Containers / Prepare (push) Successful in 13s
2025-11-21 03:23:35 -05:00
a19de4c6a5 migrate uptime kuma
All checks were successful
Deploy Containers / Prepare (push) Successful in 12s
2025-11-21 03:22:34 -05:00
5efa6934e3 migrate tinyauth
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-21 03:21:45 -05:00
183fb0f237 migrate tautulli
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-21 03:20:17 -05:00
4805cca2ce migrate pocketid
All checks were successful
Deploy Containers / Prepare (push) Successful in 15s
2025-11-21 03:18:57 -05:00
30cb6e8786 migrate pihole
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-21 03:17:11 -05:00
a8e6ec48a6 migrate nzbget
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-21 03:13:17 -05:00
50c6c57372 migrate homebridge
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
2025-11-21 03:10:33 -05:00
903e786b99 test
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 03:04:08 -05:00
465d46fd45 wait no that doesn't make sense
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 03:01:58 -05:00
cd68af81c6 delete branch after creation
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 03:01:44 -05:00
447f06dd8e don't auto-run template generation
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-21 02:59:27 -05:00
949b82b67f lmao forgot my placeholders
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-21 02:59:13 -05:00
3d3c4c109d clean up deployment script
Some checks failed
Deploy Containers / Prepare (push) Has been cancelled
2025-11-21 02:58:25 -05:00
3e07981021 remove helium
All checks were successful
Deploy Containers / Prepare (push) Successful in 16s
2025-11-19 17:06:57 -05:00
d60435c66e migrate glance
All checks were successful
Deploy Containers / Prepare (push) Successful in 20s
2025-11-19 17:05:42 -05:00
e41f2ba5be migrate excalidraw
All checks were successful
Deploy Containers / Prepare (push) Successful in 18s
2025-11-19 17:04:33 -05:00
3a812ce86f migrate dozzle
All checks were successful
Deploy Containers / Prepare (push) Successful in 19s
2025-11-19 17:03:16 -05:00
0a9ac7cfaf migrate dashdot
All checks were successful
Deploy Containers / Prepare (push) Successful in 30s
2025-11-19 17:01:20 -05:00
118bd4bcbd migrate cup
All checks were successful
Deploy Containers / Prepare (push) Successful in 19s
2025-11-19 16:51:12 -05:00
70ecb1f6d6 make some fields optional
All checks were successful
Deploy Containers / Prepare (push) Successful in 56s
2025-11-19 16:48:42 -05:00
31f2b51b37 add ability to build image
Some checks failed
Deploy Containers / Prepare (push) Failing after 19s
2025-11-19 16:44:47 -05:00
a8e6ed70ab add docker role, convert codeserver
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-11-19 16:36:15 -05:00
57efba5cb3 add remote config for traefik
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-19 16:21:50 -05:00
2c7eb799f8 add tinyauth middleware to file provider
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-19 15:59:39 -05:00
fa6e8c4b5c update traefik url
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-19 15:51:11 -05:00
4b93172b53 update cf key
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
Create New Secrets Template / Extract updated template (push) Successful in 6s
2025-11-19 12:39:42 -05:00
ecd7285ff7 use docker network name
All checks were successful
Deploy Containers / Prepare (push) Successful in 29s
2025-11-19 10:38:38 -05:00
8a04d9adaf update wings url
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
Create New Secrets Template / Extract updated template (push) Successful in 7s
2025-11-19 10:38:13 -05:00
095bb14b00 add wings to jackson
Some checks failed
Deploy Containers / Prepare (push) Failing after 23s
Create New Secrets Template / Extract updated template (push) Successful in 6s
2025-11-19 10:36:36 -05:00
2f4c43cb96 add script to update containers
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-13 12:22:49 -05:00
ecb7963443 additional guard
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-13 11:29:28 -05:00
80b1fbe629 guard
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-13 11:29:14 -05:00
09cfb8e0d2 add tinyauth to nvr, remove from cup
Some checks failed
Deploy Containers / Prepare (push) Failing after 5s
2025-11-13 11:28:23 -05:00
c0ff714238 don't use owner
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m13s
2025-11-12 18:58:45 -08:00
84d088443b add termix
Some checks failed
Deploy Containers / Prepare (push) Failing after 10s
2025-11-12 18:56:25 -08:00
00429c89fe sync mirror
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-07 02:13:54 -05:00
d19b952c16 sync mirror 2
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-07 02:07:36 -05:00
6bf421bdc8 sync mirror
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-11-07 02:06:52 -05:00
4d5922ca58 don't run deployment if task was removed
All checks were successful
Deploy Containers / Prepare (push) Successful in 5s
2025-11-07 02:04:25 -05:00
2eb2fc9eb0 remove some unused services
All checks were successful
Deploy Containers / Prepare (push) Successful in 38s
2025-11-07 02:01:49 -05:00
7bc5fa6e2c Merge pull request 'Automated Template Extraction' (#7) from template-extraction-229 into main
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
Reviewed-on: #7
Reviewed-by: Alex Frantz <alex@alexav.gg>
2025-11-04 03:46:44 +00:00
fb96864437 Automated template extraction 2025-11-04 03:46:26 +00:00
d5c5a31bf5 add ptero/wings
All checks were successful
Deploy Containers / Prepare (push) Successful in 45s
Create New Secrets Template / Extract updated template (push) Successful in 7s
2025-11-03 22:45:25 -05:00
07534790a3 add render device to ersatz
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-10-26 20:23:08 -04:00
d0685d63ed update tinyauth to v4
All checks were successful
Deploy Containers / Prepare (push) Successful in 21s
Create New Secrets Template / Extract updated template (push) Successful in 7s
2025-10-26 20:00:55 -04:00
7f387d410f add iptv to traefik config
Some checks failed
Deploy Containers / Prepare (push) Failing after 26s
2025-10-26 16:45:18 -04:00
0ae9867846 move back to nas
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-10-26 16:42:54 -04:00
2d633491cb move to jade
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-10-26 16:33:50 -04:00
4d0a37afbd add ersatztv
Some checks failed
Deploy Containers / Prepare (push) Failing after 1m19s
2025-10-26 16:30:58 -04:00
d261c0eb4f use address
All checks were successful
Deploy Containers / Prepare (push) Successful in 37s
2025-10-22 22:05:47 -04:00
ad74f0d77b change port
All checks were successful
Deploy Containers / Prepare (push) Successful in 38s
2025-10-22 22:04:14 -04:00
6766b01d49 remove command
All checks were successful
Deploy Containers / Prepare (push) Successful in 42s
2025-10-22 22:02:20 -04:00
3081861414 fix traefik labels
All checks were successful
Deploy Containers / Prepare (push) Successful in 38s
2025-10-22 21:52:28 -04:00
ce5c2afa85 add encryption vars
All checks were successful
Deploy Containers / Prepare (push) Successful in 33s
Create New Secrets Template / Extract updated template (push) Successful in 7s
2025-10-22 21:50:16 -04:00
c7e1a21363 add mastodon to deploy
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-10-22 21:43:51 -04:00
2018de4ddb mastodon, don't recreate for now
All checks were successful
Deploy Containers / Prepare (push) Successful in 17s
Create New Secrets Template / Extract updated template (push) Successful in 6s
2025-10-22 21:41:42 -04:00
b8d1b9432d add database name
All checks were successful
Deploy Containers / Prepare (push) Successful in 22s
2025-10-20 13:45:06 -04:00
f12104707b update db/redis images
All checks were successful
Deploy Containers / Prepare (push) Successful in 49s
2025-10-20 13:42:15 -04:00
a7e2ada228 use updated image
All checks were successful
Deploy Containers / Prepare (push) Successful in 1m40s
2025-10-20 12:12:09 -04:00
4de181f01b whoops
Some checks failed
Deploy Containers / Prepare (push) Has been cancelled
2025-10-20 12:11:13 -04:00
f00be47d24 specify version
Some checks failed
Deploy Containers / Prepare (push) Failing after 13s
2025-10-20 12:10:11 -04:00
fa1b627345 pull latest immich image
All checks were successful
Deploy Containers / Prepare (push) Successful in 24s
2025-10-20 12:06:37 -04:00
c578d0c71e test updating secret
All checks were successful
Deploy Containers / Prepare (push) Successful in 3m24s
Create New Secrets Template / Extract updated template (push) Successful in 6s
2025-10-18 18:30:26 -04:00
d176da1e3f only run on specific secret files
All checks were successful
Deploy Containers / Prepare (push) Successful in 4s
2025-10-18 18:29:03 -04:00
208e81ee81 Merge pull request 'Automated Template Extraction' (#1) from template-extraction-200 into main
Some checks failed
Deploy Containers / Prepare (push) Failing after 3m35s
Create New Secrets Template / Extract updated template (push) Successful in 6s
Reviewed-on: #1
2025-10-18 22:24:37 +00:00
32141db102 Automated template extraction 2025-10-18 22:23:59 +00:00
78 changed files with 2291 additions and 1641 deletions

View File

@@ -6,7 +6,7 @@ on:
jobs:
deploy:
name: Prepare
runs-on: runner
runs-on: ansible
steps:
- name: Checkout Repo
uses: actions/checkout@v4
@@ -14,6 +14,7 @@ jobs:
fetch-depth: 0
- name: Deploy
shell: sh
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KNOWN_HOSTS }}" >> ~/.ssh/known_hosts
@@ -23,4 +24,4 @@ jobs:
echo "HOST *" > ~/.ssh/config
echo "${{ secrets.VAULT_PASS }}" > ~/.vault_pass.txt
chmod 600 ansible.cfg
/usr/bin/ansible-playbook main.yml --vault-password-file ~/.vault_pass.txt
/usr/bin/ansible-playbook main.yml -l jackson --vault-password-file ~/.vault_pass.txt

View File

@@ -8,7 +8,7 @@ on:
jobs:
deploy:
name: Prepare
runs-on: runner
runs-on: ansible
steps:
- name: Checkout Repo
uses: actions/checkout@v4
@@ -16,6 +16,7 @@ jobs:
fetch-depth: 0
- name: Deploy
shell: sh
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KNOWN_HOSTS }}" >> ~/.ssh/known_hosts

View File

@@ -0,0 +1,17 @@
name: Update Images
on:
workflow_dispatch:
jobs:
run-update:
name: Run update script
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run update script
run: |
echo "${{ secrets.VAULT_PASS }}" > ~/.vault_pass.txt
python3 scripts/run_updates.py

View File

@@ -1,17 +1,12 @@
name: Create New Secrets Template
on:
push:
branches:
- main
paths:
- "host_vars/**"
workflow_dispatch:
jobs:
create-pr:
name: Extract updated template
runs-on: runner
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

176
host_vars/all.template.yml Normal file
View File

@@ -0,0 +1,176 @@
ansible_user:
data_dir:
docker_network_name:
TZ:
PUID:
PGID:
ansible_become_pass:
media_path:
# api
API_CONTACT_WEBHOOK:
API_JWT_KEY:
API_STEAM_API_KEY:
API_LASTFM_API_KEY:
API_DATABASE_URL:
API_POSTGRES_PASSWORD:
API_ADMIN_KEY:
# plausible
PLAUSIBLE_BASE_URL:
PLAUSIBLE_SECRET_KEY_BASE:
# owncloud
OWNCLOUD_APP_URL:
OWNCLOUD_DB_PASSWORD:
OWNCLOUD_DB_USER:
OWNCLOUD_DB_DATABASE:
OWNCLOUD_DB_HOST:
OWNCLOUD_ADMIN_USERNAME:
OWNCLOUD_ADMIN_PASSWORD:
# traefik
TRAEFIK_DASH_URL:
TRAEFIK_CF_API_EMAIL:
TRAEFIK_CF_API_KEY:
TRAEFIK_HOST_IP:
TRAEFIK_VIDEO_MACHINE:
TRAEFIK_ENABLE_DASH:
# fivem
FIVEM_LICENSE_KEY:
# mastodon
MASTODON_DB_PASS:
MASTODON_LOCAL_DOMAIN:
MASTODON_SECRET_KEY_BASE:
MASTODON_OTP_SECRET:
MASTODON_VAPID_PRIVATE_KEY:
MASTODON_VAPID_PUBLIC_KEY:
MASTODON_ARE_DETERMINISTIC:
MASTODON_ARE_KEY_DERIVATION:
MASTODON_ARE_PRIMARY:
# wings
WINGS_URL:
WINGS_CONTAINER_DIR:
# glance
GLANCE_PIHOLE_TOKEN:
GLANCE_VIDEO_MACHINE:
GLANCE_JELLYFIN_URL:
GLANCE_JELLYFIN_TOKEN:
# tinyauth
TINYAUTH_USERS:
TINYAUTH_SECRET:
TINYAUTH_APP_URL:
TINYAUTH_GENERIC_CLIENT_ID:
TINYAUTH_GENERIC_CLIENT_SECRET:
TINYAUTH_GENERIC_AUTH_URL:
TINYAUTH_GENERIC_TOKEN_URL:
TINYAUTH_GENERIC_USER_URL:
TINYAUTH_GENERIC_SCOPES:
TINYAUTH_GENERIC_NAME:
TINYAUTH_REDIRECT_URL:
TINYAUTH_OAUTH_WHITELIST:
TINYAUTH_APP_TITLE:
TINYAUTH_BACKGROUND_IMAGE:
# code-server
CODE_PROXY_DOMAIN:
CODE_DEFAULT_WORKSPACE:
# dozzle
DOZZLE_ACTIONS:
DOZZLE_SHELL:
# gluetun
GLUETUN_VPN_SERVICE_PROVIDER:
GLUETUN_VPN_TYPE:
GLUETUN_WIREGUARD_PRIVATE_KEY:
GLUETUN_WIREGUARD_ADDRESSES:
GLUETUN_SERVER_COUNTRIES:
GLUETUN_SERVER_CITIES:
GLUETUN_SERVER_HOSTNAMES:
# immich
IMMICH_UPLOAD_LOCATION:
IMMICH_DB_DATA_LOCATION:
IMMICH_VERSION:
IMMICH_DB_PASSWORD:
IMMICH_DB_USERNAME:
IMMICH_DB_DATABASE_NAME:
# jellyfin
JELLYFIN_TV_PATH:
JELLYFIN_MOVIE_PATH:
JELLYFIN_MUSIC_PATH:
# navidrome
NAVIDROME_MUSIC_PATH:
# ntfy
NTFY_UPSTREAM_BASE_URL:
NTFY_BASE_URL:
# nzbget
NZBGET_USER:
NZBGET_PASS:
NZBGET_DOWNLOADS_PATH:
# pihole
PIHOLE_FTLCONF_WEBSERVER_API_PASSWORD:
# pocketid
POCKETID_APP_URL:
POCKETID_TRUST_PROXY:
# romm
ROMM_AUTH_SECRET_KEY:
ROMM_LIBRARY_PATH:
ROMM_IGDB_CLIENT_ID:
ROMM_IGDB_CLIENT_SECRET:
ROMM_OIDC_ENABLED:
ROMM_OIDC_PROVIDER:
ROMM_OIDC_CLIENT_ID:
ROMM_OIDC_CLIENT_SECRET:
ROMM_OIDC_REDIRECT_URL:
ROMM_SERVER_APPLICATION_URL:
# servarr
SERVARR_MEDIA_PATH:
# vaultwarden
VAULTWARDEN_DOMAIN:
# gitea runner
GITEA_INSTANCE_URL:
GITEA_RUNNER_REGISTRATION_TOKEN:
GITEA_RUNNER_NAME:
GITEA_RUNNER_LABELS:
# monitoring
GRAFANA_AUTH_ANONYMOUS_ENABLED:
# drop
DROP_GIANT_BOMB_API_KEY:
# obsidian
COUCHDB_USER:
COUCHDB_PASSWORD:
# helium
HELIUM_BASE_URL:
HELIUM_EXT_HMAC_SECRET:
# pterodactyl
PTERODACTYL_APP_URL:
PTERODACTYL_MYSQL_PASSWORD:
PTERODACTYL_MYSQL_ROOT_PASSWORD:
# frigate
FRIGATE_RECORDINGS_PATH:
# plex
PLEX_CLAIM_TOKEN:

20
host_vars/ash-1.yml Normal file
View File

@@ -0,0 +1,20 @@
$ANSIBLE_VAULT;1.1;AES256
63396333353166316666616661613532383538393239303966633336363361613332343437376566
3265326538643839326262386165623639353130656164320a323536333037353664646163386335
33336631303336616636343538353865383531316561623166323762396262643930376231616638
6638613961313364390a366564343030633665646666626165383334356364623761383032633963
39393264353635626539393831323530366630343665623561653836303065633965316163386166
63353836333639363765616164383133623330653762333762623632653535623438313831653365
32393732306135323062666539663839656563306133393031643766626666323534626638653236
63613832333833626439653034366336633534323131356262396138373938383039336263356531
36323432653634366365663039336231343239626539393961636562366263653934613333633535
61613937336336323135376663336364386533366537626133316130353862633862336530633339
33663439663332653461643839353564333765646537363864653765303933393562383134316434
38333134646362663837653461646661633539623734316635383163313363653730653763326262
65326365383661306466663930646162343033383932633866383862626339366631633862346334
36366161636663653136383439333461366264383533346461613631623730326437376537373638
64323863333364613039613533393232373162346436613864336237336439353134313361653634
64366663303265386663623139636131383432343238306631333436373939393832616262393232
33376466613639396436396166363032653434653730643734356432653063303762333230323431
34313338303838346466666463376636323433663038363935633362656164383762343531633563
386432323237313039376531653362326337

246
host_vars/bear.yml Normal file
View File

@@ -0,0 +1,246 @@
$ANSIBLE_VAULT;1.1;AES256
63333930363165636336333436323334356133663963653934393535326438643432646364653939
6131623532616539386464663065383863323234393436650a343730633664643833393735316538
33613663353332363766626465316165646435616431333731336165323830646234656539633537
3162323134633236610a353536313065313230303539363364656433653065373539623939363666
63656232666132316239336533333737623333376336366262643466626263356163336162613430
36616462383864376135363939623838656664353630626236393663376436633033366638313564
31656636626237343136383333373133383164336138666165336530323064383162333136363535
32636538363161336435643862633365336664643031306631656436323030643662386430333165
66353134653037376434666530343266333463623639303432323862363130633736646265366539
36363333303932303962326235303432316534343461313831623132646437313436663537393036
63323261336430336539333932633933643234653835393238383466386239376661353065613266
65613632333265396335323065303462663363326330356333663236353637313534363065363561
31373632383363653563366334346438626331653666373535363133333161343835623165663737
34336466303038376435303261373632306166623938616466386537363765643335643762383966
32343765623332616136386239366235613237333835326438396434613364656637376638316563
36356335336363326539646538303562303633343639666163306565316332643964393939356563
66303263316361653838323234393031623039353434366537653832613762373062386464306530
65313162666236646562663235653361613766623466663263303935643339343839393437653531
33303066323034333135373665323934393263326634636462316336666264323234373234396266
62373635616536393437373831386539376462303039313865363965333663343932383465626465
30373463353232643363663632373130653163326432613139393165656534663531353966636536
63303036653962303330303862633931393230643232353162333430316664383436643037306434
63346664626666343135626231653232346662313864626336326238393339633033363533396636
62313333663733653433623166633965316439653666376638356566623535306436663866316633
63656433343965333633666233333139373964353964643331353230343464633535333934653936
63373964613161303035336433663230306233363264356537353036376361353231666539663830
38383563666364323966633730353239326462303034326363646463386265633164363431376661
39326231373538653062316435323762663336386364316464343662393037323438313739666235
63383330333661626533663364363166303563316364326634353434633130336161636266393262
66323330333465613565363032376631616662393462663838373235393237313335393437393135
39666463393363656239396564656564616264636533653132666635653762303265323138613334
35326232383462373833643531383134376462393164383032336434323462316534386134643264
39396161666465383033623965666132333964656530396139616335363366376465313663313861
66666332663432306234386565393230386338353566656666373538646638393465323865303332
66333535386338346530386231353031313534353138343039326566633564653430666266666362
66663933633139656636373463383639616235646633343666313562636539383264363762383631
31353230646335663134666531303063663966316664356131306332613834373335316637363232
62393630383063363633633039633831386337363662393366333531633738336333373635653732
31616338343134333139666436333132653262303236366137666237366235363363616664333366
39643166353935636630663464666561613837343962353238623263356664666430376663653234
61663265386664343463383639306361666261623133393332343563643630663033333363323162
61323464363932353034623339633237363932393764356662636463376566366134383633616332
35353266326237353239333438633661613031623737373038616665663333393136666564366331
32613465663464366164356132343635653264353664393837353037303665633634343765653638
30333330343233386164343136303436656137333539393230336338396337616135653964303833
38613737393539366139353662343233336133653234323162626165383230623962656332303333
30373338383239653331633337383166643237336164396638353134623131336362376531373130
62336335653433383530336638633762396631333439323666393162313663663738613031336562
64343430353939623737653061633930306336373832373230643561396337633931623333626536
33313664396630663631386630343033383032306536323166653532663733646237663930393734
62663136643331376462383634303132353035663735333166643361303030636530613338373361
61316365326433613666323361313937313631333065343764356237373236616234306639323736
37396562343861643937646535356265303638656234323063653630643435326432376261646532
39646166343761396566356135393164633962393663303961363065323134363836633835653861
33316564623439386233376138316264316530366532393764626537373731326438636237653533
35633737663165356536363834303333343865353038303936626536363266333130653730306336
64306436646166396466313731386264323936323037303162333439626637336162343630356538
36633630306233343330303466346363343166643035313563323138386435333735323461663331
37363836303630633666666431376331616165663835663333323238353762336663366331623838
31376138646335646434363732373733383139616438616136623635633261613232623733623030
38663934613939383133386362316338313434663431656266373033643761613264633232333833
65663132303661346334666563623930376536333265636262643333386561303461363961343831
37346132386435613138303931356438383639353038323265333265336539303538613233396434
30303937376330656335326465653631343134333538636137346162376638373733663336376663
35323135346136366263323031383266353738383939376330373866623839376666656235396632
32306638666663323637373461373034353538356161343534663862303261396361343634616664
37383936613363646136343666373534656263346534323736393230633934633764653232343766
32353563353162646335353263346530323430383631636561326634383763306638316264356262
38386633653831643233396337303562396335316435353933303661646137343334353730333736
33393334366533326663386630356430666430326234363637303664346366616466626338356233
33616238333864613635396533373034303162666365343366393137363838323863653866363564
31616338626666343465613438383937303431343735373264343963326464303932336632346538
30373662646136323335396533656330623833643637386661353562343435343338656261653633
65636262653366386437383034323731623265313730323966656339663936396266333430373934
62323338343661613332393736323665393134353361363162643830393831653833353131383366
61616663336165613166343631633761353261353865653438613664316166303462366231393636
34316436396463346661343830396433376164323466343966353936303664653734666534626365
66646563376133363266313438383766626364386261376638366632343631613033636632366437
35663434306630383433666430626539633536356461633032303339353561363835636266626535
38366636393034363235343837643164356232343334626631636137616236623665333931653031
30663834643830623161613865373662383164626636653162323962306562353562396136346234
37313461663538326264303165313438663561323465373639393834333337666630306335353535
32376438333435623632343531306561383437643634353064383863663337653037613536393862
30346430613065663634643434633837623839623435396338633161373361303034373636616637
38323535316631383030653231353639613536353366373462336664373264636138353537376137
39306133616534323435303735313530376264333765326533393435613965376465343332356336
63313461303266383234363332633337623637376262363464333164366532646162386236613034
35653461666563373434663865396365373232396332333234373265343333323932666335376162
37343963373033353234323438326638633863666532356261616163633834386139336166626131
65636337373236616164363430636232306635303330316533623237646131303239633936376232
39313333393861383037346561393866346638336265343035663061386130623030623037623033
62303438356663643366323565303530393938396133393236326161316533373766643231393535
66396234653930393437393834336131653635393035383631666461356265343131346162346564
32666137653962616636316261623964346137303664663131653231306136633564356633613232
30356163356538346663613263613338396636363739383762373730643465613863346334666564
65356532616539353739353939636433653430613230633663373963313535653339373632363063
33303565663535326532663134353064633064356234346534363831653364356630373262663738
66303836363461376232313830626662373339656131616635313265383635366566396361343630
63343839653137646464396363316439373363663633663663326464346463323763356634393562
61393235636563353066633935303361646230373063323764343463343036376561306463383436
65666132316666363538336631333163653136616632643431376537353763336332633337643135
61336432343962346562353365303162366639633939333634333033336336663834663665316365
66366166306166366234303661616565653863623236376164346361393136633561303961336634
34393263653432346362306333396263303064336634636361313834633465613431303932623334
39663866623762653838353165333161393364303530643530343661356130613565636462313064
64393033626332376138356662366131633438646266666134366535643761366362623963643866
39656536633230316530626132653939646463666132353566633762383864326531343934316363
35653537343135653664646364633638363830303836616661333231386466333131633033376461
64663362613437313337343039336137326264353962653530313762373961326634346661633061
36396336643666326563623736353134326138323161396130396237623331313361393130666335
32646465373366653636656533323034313066636331353865363634376565323935653666356366
32396566383935303363396261383731633737326166626233376361386463363461333636666436
33613361393930386533356537373966383966366562343037373333383363333036626533393765
37376132303038633339656264643437643238376662666661633366333631303737303662316637
30333736616335643164323238326135353736643762326434373262336363643030633537386537
39663535366533636365343830623537646434386261356664653530363236663362363663356632
30623037303136343039626562656531313533366261366131616239326135613063383930383933
32396662336263643032643635316539346162333262396432376266326335363762653266363862
64366332323336346431653838333365353236656463336131323636303063323063333065383639
38306233663935636436366361366235643531373765383033343837363164656638313161366135
62663532666236373463393532373237373733353830623632373535646266633739633261353636
31656434396432393035346562346637326636346164646536663437666232666463373135353433
61373434373432383935613730656336336261353631366430323836303339383066383136643633
64353639353937313234393761376665633039623762633038646464313738656133666132313538
62393863613461356635633633636638323962336430313838666564373966633165343166393964
31343735336339663132643962656331646231303364396162613134333939303638663138643637
33663263616538383935656430613838663765356536396336653831656635613736653332346134
34326266366262363362613162313232343661303265303464613034323735343561326466386530
61376332643863373438323966323835336539663338636130623866616134633637323238306637
62623062333963313030323230653730653239663534356263316235363337613766613636356635
65303733653465373630363937366361313763323930393337633331643864336561316636343364
35613030333236643530333439633565346634313366343634346665373264373131656536393065
30613065643266313935653633663133373738653233393939396663633661366635356363346561
30396331316438396563333531333264333731643539643962343933376638326633363962303764
30396431343237666232643861343163613333363631653731633665343862663639663764666332
61616361393837373065393439393861343139353663396664636133386565653337383832353666
66336335633135336466653162356361303838663037656164353161396635663663666462653731
62303366326231323635343332373430623762306339316361353137356565316331346562633131
66343534303539333733316262373936626138633265346564363236633366666135643037306136
31376233326665653834313337303461383566306439303630316466383134633063663033356462
32343638393832303361306237653036623539363134643237333336353134653236373261623038
63393230633262633235653963316338613132363631643031343034643864626639353337306136
32633262386533363161663062663035383831306663326330376661323336393662323066656133
30353535343966313231653631353263613037633833346461366232333061646366656132653133
61373235623730663537306362616239383264623637313566623030306135366439366133633533
63653235643065343536616233616637303163356436356130326462376139303134623830333261
34313234323734303937363433643931393461393338656338363965316434323062333435613337
37383163613265336631343437643236616532306564636565313836323265626333636165663738
32656166323137636665666338343738353331336130323264613635626566616133326465343231
34356262356137613333386136333232343966383963333333306634616665633932336639623234
65353363333632313765353938656535616338393438346536636236333266366136323438393038
37623961336661623033343634373862363836313063383564336438343563666366616263656161
37623761353934386131336339356433363966376430643565653930373934643564316336333735
62306166653064646366616564303932373165633964636664663931663231393736346430623037
63343738353231373762613466313337363136373262353863313761626537656330633161653330
65326332623066393732373632656139376334613333633636343638613362383636663665336330
66316230653363323461646134326564363266663830633239656165323634666638333931623336
33363631316665663862383163313833363930636430313134373834666262663730313532323032
37633931666134316636356265323563616531356432396163353730653735656462663163393739
64663538663361316265323665333433303166646665623731363262323737383232336535303632
31383064623762366137636637306633646339353265356639383639336636623635383635336338
63316433636233383439303036313364366631316464313561646635333463636436623737346230
30306364343735353737333162353532303636643330326532326130326237666334643634336331
63376235643761323764653666356566663433316565613939306564656434363932393066346331
37396232333130613736393961643166306366333430343939303266646361356233623934333534
35306631383839646537353931393066336232383938313863323966323733646666343034646431
35653137383539616662613337386231306333363939613237613736626532363161636539623534
38393234303835333165323137313035363533636561303962623938616633393734333462396266
37376132643537326139653064356339333030393136383937393539383536393562353335626634
38313637633463386566666331383939313064343561653031373936376366393034613565636632
39306336393038313461353530346439356138626630653861326337393565343235633330623838
62393662636339373761313761343266656561666338393338356438353839653237616439316565
64633064373666353765396133383161623036643038376434393332666362376364646634316331
36316139646662643661636237313031353062383439343335323531343662643130303063396135
37363432626439383038623836663239346665363662353262376638643435623330303562666532
39653337613534306637306631633732376139656435386564373936303030623530386661326465
39313763643564646335356430373738343233316531666265306165343161323462666638616631
64343366323131633563323761623434363435306537616536363231313566646664343163653435
32643630376335376234303864623163373664396639313263353939616235396231373665313332
33656664623362393465666662356261333433636235666263616661336566373966653834653934
62663334393034333663646334656661656433623434363635313837393630326338653437326562
62613161636437613862336530623234326661313231306136613866613665366638303263346332
30633830613736626237656337383061353630363332343934303633313233643962666630326264
31643535383335643062656233626134653530323166363830353138386135316539306563333035
37663331663139643432373766643863303965366261663130363536393263383039356438316134
39383637623137346633386230336162613733666430623930653631306333376461656437313332
66353639663964623730623865616136373937616465306433313063386364373763343437636166
33643337386362323732393239626138613861313234356661613730656430663436633165633762
34386464333033373165316633633030343062323161333562663132316638373962353531613531
38386231343337643865326130313163623535623163386435646465373561663430633931633865
31653832623631363632643661316265353336636338316536633739643763306530396139663162
61326334626630643638383137313437376364353466666265653662333461623166386561333434
35306330653061343134366338306266663661336262653833613736623462336238303036303031
30393033653839376439336639626136356565373533373435326237373731633337323634366364
61366231323937643134333161633631633333386265626237653736396665333730326364633866
37373937333965333338306438306332366533626465356637306235303564383266333631383936
33666634613030353861376364316337386661303261323235323534306364646139316634343931
33653836386532326133653538306165623664363839383466343233313665646635336234633539
39616262626138303762633466323830613061653835373766663430366431383930643063373663
36613835336337623464306339353432346530393964323739313734316439323665623463653362
66336535626636653262323865623332373438393737653739336533656165336438663930396262
66393162636561643834343936303964636664386433303635383164373163303061663836643532
63393563663432653334326230613863303133306564643838393138643034373939306636316232
36643861356438663266303864313161396263356362653466636336626532616637323464353536
66376465346466633466653964313433623838353136383261333733633863303832303466393466
33323030643333343034636432633238393237633830663235316561313132386261633333356231
31353534346236333064393038633664353664623866643238653732626265666338306333623931
39376130616130663036393861646131353831316665613662613462616563356433386365386631
64353466366164326162363835613731356263323336343561633839616335653264633431336163
35383465306434373237383738333266303564653134663861393635313736336430646637636637
63336138633839393631376536633536663739356365643663363230633232356131386663376232
30323431353439376131613039383336303161333437636132663464346633656436616135653864
30363333623738353933366330623364333062386431653336666561366466643639363065393630
30373930383861616130626666663965343730356562363337653033613062323234396565336663
31326438386232383132623437663766643134333631363038323665636663623632323865323266
62356236383534656134616266663366653139626130303431306634356133393661636561363462
35333231656138613934613436613563663461313232646566633535653434343536303637333230
39616363363862343237383631636335333761663136633561386661353461643237616432363433
39613662666230353837383530343037373833663532383032373565663036616230303534303634
32306330656161643662356435643430633765306438386236303364356139386563616538336637
66653364363561636264306564383963336361343535313865636465643265376261303266663630
64653137643461316664626131333063356531666438626434323765393566633337396239643436
66636536303333356661363236656435623762306339333537303965316433336663623137373933
33346631666136633138366563333162363637396661613737366433356164343235396133623031
33353435613535643833363032303936613864653664633062333533396131656431363662363838
62613264343532303830356333303434633730646162333736336263313936373133666565653933
64626263383861376630333835306635653234366137343730326434396534383435316162306662
62386131373830323037376638376362333435343134666132353439353232336630393034646133
64653162333566663234643238343534663231366663303662336566333361613236373761376333
31646362333162613131386338383039336163633663663539396534356161613932313039663137
64616536363465356461383661333235373638333433343061363266376437616365303064356338
37393133386535386661303038363234383365356235616339396234626137396431356461626262
33663034366264366533303132353032383164323766303435636339646535313365663139666664
61383333613635353763626538623538636337343737303133376664636231633932663336623063
38396335616136343863316561363032613332383033396536616166306133626435356361653436
34313635653064616131316562373230306634323363356264333038333363323836333933636539
36663561666464613966336435323834356430326366373965336233633337643135376235326432
38643963363732313936316132373364393138616632313632613863303864373861633762366365
65303662386164363964366366336430306566376130333633323866306365636331616331356532
30643462396364373037373662313537303333646633336636633738343639316631313635656630
61663739326262323738656462616533386231316439313830303131313930303362653439366362
63383164383363616330326430356463353130383535616430326435636664343765376435626164
61363465366266383837306163323961636538353761343831336365346466643665633638356232
31633264666235326162623066386431366561343662643465313661663434303438393264363838
66373861396562353764376134386533376565633861323331666335316334636632

View File

@@ -1,70 +1,221 @@
$ANSIBLE_VAULT;1.1;AES256
66306532353835666663633632373037633561613261613139306436626532656366336362343465
3966653330313132663633663462363361373230623262370a623661366633623762656363616537
66323464363164323131663335313264396538313237303432653532393631306635666138316261
3738653338316132640a643935646530393362346431653966643061643334316238333632346265
66633336316466356566336132626332623661316337613634373036646236363736376561643733
66383830386336653236633933623037316632326266363136613031373439383834653134336237
66363039316661353837383964363163353433383734656564313139383764346533313564616333
36336231363661326638373963393265323365636665653034373536663232353266656365656338
66313034646236356364323238326265633933346530393430373364393837376437623138306630
35306266643835316136323232393630336330346133313963646539636463323862306236653335
30356335366365356439653130376139616336346363656436356333333538373036313266353163
39306365303630636135373731366334623165363336383261386334313061356461303664343133
63383763633566393662623833346662366235323836353639306266383532333736386161393138
36666662306233306439386639666434353639343137653831343666393463323865316464396636
33646238363236303531323131613731343262353365306232343634313637613634626162363566
64326238383331316365343566623464383732653333326534636365386230343836396234396634
63646235356639363036313839643632333066653634323661313263313331393332656131393065
65303338323466383161333237643433303961613266623134383936663866363337653535326133
62323464636638643163313064373736353263356638666434333135656133336534343932613234
32356361346366316262383232653835396435333837633737356335353837336632376337616364
35616365633738366466623835653866663461393738396633343235316231636138333663383364
63376164646563353335333133333665396132343439363861623734336335356663393735313837
34323034336431643362313332633665653837353635303061376235306665336362323630376132
36313539326336656134633564343538636264623932626164366138653035343732396464633863
32613363383366326332383835316666366430623235636536353337373035386361373236363036
31353865333933356561623661353133353864643038626366666431313831353234653430396331
35653864633263613963333734636364366336613430623032666666666266613538663665623437
30643562333561626636646337626234653936616438623738623364653561396638383564333262
39323265346263366530643132303033343835353334373865373561613539613461343962316663
32636461316234313832313635636431326134323638646164396537383963326439633063313063
37353062616233323932343033376636613039343734336630303139616331626431616330396363
65623565653235303630383534343739346234316337343233366530313238623139666538363430
61613833663666386161356331656131356462376463373432316331626531393136393838313065
34323361323836323561633032663833343537663637346330326337363165306237616335333233
35656530303666633438303732623232383965633038616632633164663461393465336233643635
30363334646161363234393533663064363364343838396562626232383036623236343664313366
35646532383164393365343366633134393061633362303164393034653862653535613761356630
65633634393033653363373235323933333766306165326237636530663737393063623664343031
63643538366238363066666566333236653362633861346136663036373731626136383530356466
33326230303864353838333136373736373963386638663164363139386638396265626365356535
35396236306639316631366461373235326665643565326539333739393264373733363163366537
31656366343831616339393065323331636136346236386131306533383436356566633830623163
37303036663935376132323733353433306361383234343962633165616538626564653239393137
65346236656266383130323662636565643033663933346337663836643765656266623563656430
31386365646437306362643965653631373862623266303165386666626430663130666130323062
36326331313838316339653231666138616332653564323635356366316237313662353531336636
31666263313134656136663862303536366631663965343565646637663566656466646435613839
39656230616465653465316633373561343237356637643336373535653438656137323264643239
66363066666161316362383737333638336565613230306138343735633432356661386631383530
64353161396463313532336430613862396537643436396562633665613736663965356335313131
63303563383734353331656164313638386135343336346263643430323932366133306261663562
32633363373537626633373433396565363032323536336263373835653363323661663834333365
65636332383232653933363736363131653032666135373436663834656337653739333338636437
62613463626437306133333632663662303732376364663339306637653534396433643665353366
30633332383136306230613435346536323434666431653834333639343234613631323031643138
38613536336465656232336238653532636664313766633432363364613937323337653464616461
32653939386537663635653733336463303538333431303537323633623834623637666132613030
31666539353762346335643134333637366533313833383634356266653831663333393661353439
64353432393432333865306535643261376536663064323163393266373235623530626138316237
63333631396234326534386238623937626661663265383631386662383866636231646531633562
64323762616431663664613564366562303630313137353838323064333966323062643233353830
37363763666530643535666235383062646163626164353037346365366332366162636563313361
37343861373764653633393930316666613335393232663332323035386431326566663038613861
37303061653936636234363937623162313731353961343337356663623362306461636438333131
32376633663639333534396162383438373863633664383266626537343165396435346337343935
62623232646432346362623430363665353036376564323734346536393430336135306335613238
35633365333430626134353535623363396330343138616530613333633961303930623633663662
65313032353232653233346665616562363138333639323562653035646431313365623036393665
3363
62306336346638643262663739333130666136653565366564383663653939343732396534363737
6539343535613961326461366639336532613666626465640a363363636361373064663134303532
30613732333535623361616237363237663033633736306437373765343265623765386633663834
3264653337383763620a663965336264313461643762666533653331316330636463363861303665
62316430333031346530633937393837323131636431303166383365613432623036666336336536
31346331313832376331306364653766663732633833366433643866306437363761396635633034
35373637636533656563316361393764333237653432653333626162356461323163396636396161
36323663663237313731356634363738383862643130633261306234626436346630313838393437
62613338323030393662356462643366626461306138346430326537633365393338333832333633
63313664646663623764376438373432356233373862616465613530623936313332306438363938
63373561333431633436306334333732333563663839666133656533643963623431396538373530
32613738616338666362313765306639656638303536363535643239343563663638383134333334
33373833646130646639643563346365336337303966373063613264643430326361313666623165
39633535336138323531313062393438636265623661613436393538333661386439623162356337
37386535396135393633653435656164646135343537346563623162656335353637666664643561
37643165353461393436396635663034393566633537383230613539363162316231626536623762
63323261393838323661383661303737333034376263346563396237343239623938643032663163
39316139666235343235313261663739333137626533353638613063643232373539643731636533
39303339623939343566386535313766333966323039376237613931633333373564363436316430
38643534303834666533313739616336303437663931653664323961356163363735623261303037
37386466386634643231396165633365336237616331326337376131663132643336613566373231
65626333383839613233386130666139653538316532626230323362323463623965366561343031
33373336663038323639353331623135653139356130343035646239323036383934653364616665
31626438336432613731326138386333653830323835316334613638643030363262366163616662
32353562323663636438633265376535623662333866326439646631373863643862383432616231
36626138343363323861316430306234363338323330636539393236366337326132326231363936
37346239313139393336313936633533663366353533613861643437343230333961353332653064
62626133666338383437623734343331353330383639666566396634663863363735306636363264
31663935633634323936663965626537623065623030626133313330613334396265333161613763
39666461346338396662356466623366393265626133623533353463633036356238386662666335
37623039663931646666643864373034316265363366323261326338386236303331353138383335
35643738343239323930623263316231383835373062336539333763396534393064633630383238
33633563623366323334653963383932653531383563306136343937303534613334643734323534
61623464646333623934303036363135623337346263656134316331306264616431363062306263
31383331616338633539613833633838666461343631393130383733383035306339333834613966
63313165373931336635646634346561313461306535643032666663646337656334633761383138
36653631353463363639663761656132316461643534613736643932326236313239326237313035
35383963653763373834323337623332313138366138376132373461663338303862373637333030
33366339643332373864633964396461373935653439616133366264393863623337346461343731
30386436643831303461353436666164313465356238326334396130373039663062613763666630
31396164393565333462343065353032663438303863646266646562376163653336396165323565
34363232613136656364303966616565393133326566636139313665333861313430613335626535
34623239383635343634313565363830323863656463346366353161323666366263393363386238
65623936663362653162626165346639663537623961616666643639306362636231373963663664
30623034613331613433633331393361663939363630386631343631343166623532396666323563
31666131663733346562323236343535343539333335336335316536353032303139333331613733
64303463376662626665633437346164316336643436356435643862393035306232666432353737
64333230396661376535373830343462653337623663316661326166323337623736333730393033
66313861343632663838313739396630316665626436653331353832343233636566313431373264
30383931326161313434316232316330346663313865646537396634343631643236663532373139
66396632626461663661633638643139616464643261393339323861323638623063613335393261
64333162333933396236346135623938666333343061643332313535303338373666353539633237
30636665356164333761373438666463326165376236363634656266616463653665396630616630
31323732303933623866386230613133626264343637373335306637363736643935663032386634
33656437613763303533613565643335336562393936373936396333303961313732346462366365
37376133333335313533623461343666366662353337353832353363646537363133363963613135
64386539386537646235626539383162636339373536623330323639666663656566303965316535
65323165343163633862653065333436356432303835396538306663356431383839633966356265
39613538663530626636643863626261343533613164383438303635323063646265646339623438
39646261363062373737346630656566316431326539663461363130643735613733313238663634
36643234613534636238623463383432623339386638373564393965393133313737636664303834
35303339346564363661343236663736623339383262656631616566623133323936636437636430
32313530613064343366316566306133653561323264386538623132316538376130376564323632
64613139623330613631306233353334313933376663666436313866313733666434623637383731
31386164613566396665396236633232303130353865376539323066346565343132353730306463
65353030653330393835343330303333633766353334383836643136303533393231366132636462
65396237646532376364393730336332393238653435376231386131343266383363383539653961
33373638633861633663636362613131373165633039343530303539323732333039383564653939
37643338386166653339373134666565306561613365333330623833613933616535646331623239
38353936333361383037336130656462333736363139623730306234616137366435383538346562
39386164383661663462363936303133616661393834353930613137393636376639343666616563
65633662306564373662326232643331373365373066643966303265303464303431646562643264
39373466633638666465616331363730393732666538616265313733666166363437643932653762
32633131393164323135613032363131393039336332616135313761643439663965383038626232
62366532343763623331343762376138633666396162333461376530393163333263313334396264
65336361623331323564346334626462663366656132616237623063653430653737613363373735
36323936306161396664373762333430666164323532323833626631313232363065633933343463
33653665616231326636626237383538306564626364613734396162663336383564663437666432
63373936366239613636323063636632326139623038363636363234383738373437393338666631
61613265396131323137393666386364356133333832393430363838383032643536643866353766
34363435313935633339393434613266363636386239623938663261356631313966653862373638
32333663616665373433613434613265626230313863396665303763306335323535353939386165
38323262616135386336313164366664613335333831383235396131623635346232353263653433
39303134376462376366636465623635303932613066383465663934356565343164376336396238
66653738383961303961336137613937393962666533306234353663666466373735323766636339
65373163366139643035666333333761336238313962306365656235393933383332313536383238
66313436323237386238333235353063623662316335373965663930336237386564383739313666
63613630303137643766323462666438643263636137633431663537376438663938626436653038
32323130396335353765636165306331373966636630326462623036663162343135656230663433
32616664643034323033663836623861613436633339333864633731663930636266616334383363
37333639393865363234363861373338316661636538323166313666663734626237383035336663
36303663333464343239613165656331633230396339653336333134326538303463333439306462
32656565376264333236643966316433306565393532346632336463343333383437313138373938
61623733323662373961666430343539343966663262653864363933623564393361386664353163
38663539653530366266663265363365393664336438323166616635653037643238316265653335
36616364353130333834383831383332643661383833323737323738613937333064636132333962
35353236306637373932616561326636353461633166636163303130613036363433303531646532
64636564303631383832643036636533363862326362383962383431613839366463336163646438
64353138623161393663333031363566626132656534653864353234323839346365343463356563
30323930333661373237653462346130366662383434633761333165633065393738383761386439
66663537663162636138323137323865656636346537643632306636653338383231643865303462
35356335353639616334663934333833663832363865666336336465333662623233613135353236
66643331333364663864376637343165666336653938383934323034356630643133383732386165
61643262366537376437623430373636303439373931363661376134616635363066613533666162
64303432363863663165343666633364653765336330663061366265616561663133396366643162
36323233386236343531363663326430393238623330633661366462356337326232336237326465
33643366323164313130626438663435653762303732323666613833393134623030383332633231
30313630336235363562636133633562633236636639346233613461396336343163623330316331
65393762656634613833336666366637396234326633656565386464643531313863616530663739
37626136373530633736633436396463356562373434653835633962373632393966633764636630
66336162663733656161653931316261396262356437623561646435306166303435613730653633
66346137643338363863333462343666376134393037326235323866616239396431656466623864
62336437666465343035316234343262333161313037643431613164653135373231656234366636
32343065626334353038323633356532626161323936396136303039613137343064666361333136
63633063323831613238303235646166643832346635613036383437656363663361353536663665
32356563613334386162333536313035663439666632333539346239356633653162363132653432
64386133376665626531363530656335326538346432643135643766346133356233626136386666
35303465386636333731373938656631323138363832326134643330636335343039623034353266
32653762643836386564333462303830326433653135366534346461326635316266323038623737
65643631306563653266623936336463366138373238306430346636633635353638623932646339
30353061636530366435366431343864336535393031643531333932363362396637376164313230
39616166386537623335656363623266353331373736353038326232326464376638323637643765
37303839333230366634313537643361666231623865616438343536373734616534626135646566
33383634383533366462303962633736633930363233363038326562393735313936613964356363
34633333303430646364653038623166313834636362656639343439633534336239376665613561
61333238636335663662663734373630616632613761326637306366323231386535643132643962
30623165353963623530326339663562636430313062366266626430373335623837616461656266
35393239363639643938376337636666323465363065366232613539373462373862623462663035
64353566373135373964626666656339616633653566643334613637393430633864303165326236
33623864383938663337316237343863383562633263316634356465646539633265396239653664
61306464663462383136333766376162623363313766613133613963376561333834326633636434
66393563663462386564313034653534633736373666363935356238393263343265376431653137
38373235336339326663663035356332393530353430613935363839626139393839633037383561
36316438663438333162306630646363613231653363326133313563633064363562356334323766
32313762353934393535663434623431646566383037646365633337633561623863336331376534
39663534386264626239653362613138383863396665396262393835373532323363623731313565
36646236653639353633666566646133633330663037646463323663376539346533636564376232
33613863396364646262613439323164633338643832653761653333663234363832393762633366
66646638313838323331373966613935353437613865336363333830346631353431333333363237
33346638643161303737346164396261313738316439383362636563373463336538353137376335
64316238346565663262373164323437613431623830383632336539396661616261616332366264
66316630353732666263613638316261653934396636353166623639306536373662646562366664
31383030616530323138646632393965613764343438323431626533646630656164373638656462
61626466303832343430323432383165323363343731323734366233343261366233333564616436
37353636343331393663326661663561613333636564323535326330663036316337643966333366
36343035633763353362643461653233303863643631333861383334326135376433333666353139
32396332646361343063316139646635663335653636323635353561326663633632383762336334
61336437396434366133626132313539323939356163666261396235373339303862346439313338
35353438326165323261626134356137383764336565353633313562393438323266313465383565
65376365386666616639306437653834363233633862663739616632646662343031626630343365
33323037656634636330626562656232653363323731343065336132333661653833326439346366
37313030636533386331646236633435306136373165353831643566613166353637656437646561
35626264613339353739346536366262653130386434323732653765626535313338643264353634
61396337663036353230363866613834306165616133373461623531663663353963393734643432
35636630363162306130646430613831343032316131306633656666316161343933643932303539
32303930386161396432313163313265306364653432613737643934656437313734643135323666
65313132656163363762613465303061613461626662396630393435386261646265386336363535
64643132336664356339626565303432636266323664646366353631643035343634613034623839
66363735643764633265363937366537386438306432663439393436326261363436383034303437
36636266396664656533653133633035313934366537373238353461643037333135306637613163
34393431363832656534303436363339623136306161363434356231323338646634396332383032
38333135623133343964376632666333313064303533616130663162366632386330393232363733
65326336386666313464373236666439636135653931643661333738613537373435326266323937
63663436353734383263336138333761393835326466343564616363626134356137323761313865
65336566313337313136303164636661376437643837316463363031373137616136363936343732
31643966626536643833643264613537386235323161303464306261656363303933333364303634
33326537396531623736303234353237316137653933363734613834396266376235356633623065
38396639363466333033316230666234316639353436626662343737356636336164333839383237
33346433393363306661356434633661303564643865656365633639663634383939656331383737
36346234393039346138643062316265373038323730616430636336383936363164306636363761
38306137306138363532333130623239396137326266313265633331643561663065623662653361
30343938623031613162376139343563376137363765396437623133333132336638333034303664
33323531346337346266376237373334353334373930623130363938383537663438396562353539
63373038383531653764663161323866663530633333636436613431623836663739376139303530
62643464313165396533613835376530643961636634356164313736363333363135633939323132
34653331366665663266323965636566383530343063363164626137346163386236613933626234
38356638343165333636393539643039323163636536313633633162633733633136363364333161
39303261636235353965343837316439663033383930363962616233353239346164393533626333
35653362363235383661303934343231306135316364656466386231386361323931326537666630
62313430663366366163643537666337386463396434303937376664393964633261636662616136
65356336663563636663326663383361326134343930626539636133393962636537353064646135
32623038373862373963623539366132613935333437393364303632396630386633623963373965
30306231656638623463373738313161633063303930383465356661383765346332326434636362
63623461313039336164613064666237393038643637386239616566363436663939316631336233
33333064353332393862666362326631396437663962336162643237383235323433666439623630
61616135333035653261396233626464326662626362313862363564376637353832636566363036
63616333353231353164393238613431643035333935353963353066643662616134626238346461
32623734376561653938636537633762373933636230316230313130353436383634356666643436
31336638356434306564346438353761363138353334303231383136383337343737363336303864
39313734663836353131656131313963613062363432633631643464653435653130643162383263
31646565366335356330333431366330643262396633646238306637333263653962333536353930
64346237363239613034613763633035303834353866316465666236383864663130613763366635
61396165393834346131333164393863393562313762626230646636653937386432323565393438
35396266356262626465613835336135356363333135373162323634663233616231313536376263
36373639666564626434643232376664616638396231383338666432653337376636363332363435
65363431383434383464383839346239306462396232326633383935393936333730333335393633
66316431393564663939383134353363343865326237666330653933383835386463656430376535
62333939313066333038346636663231313763366332373938363833353338356465653463303038
63313433333931383666363433663639666234666537343930656632643266336664626237393766
33633263643038653262616133336564323561353466646435663966386136353236363466643431
36653666646364386435633439666634353233356564306236343863303833613536646361303836
33616361323137306231636436613065326464633335383137666339323836376566636432633163
38343034343535383064363236386333666235373033623532373365303362363132623635366137
64643761616163636334646338636533336633373962353935383037326464646132303663353064
37613131316161393961646538383166353462396363313761356366313963396135366463376161
39343064323163653766313231653736613839313337663738663634643730613365306339343030
34396266343337643166656164643361373431323337666437336339366339656130396530356239
30313138633535663635373163643732306230306563333435373837633666656131366263643937
65643364366238653338356266313936616334613264616264366266643331353830623266656561
38386134303136636165363163303931336135653535303136653037393637623566303539633563
62313931383430333939663835613666323636646432373263363639383631303638353463393862
39316334316461393463636266386230646438313335316338616438363863306265613037643936
32636462633832376466646663383031376232323735303232393866643639356134333231663865
38626539383761383662353737386462386439346164306231633331616330313136313364656632
37303231666339373966346463646563363666376534633135636234646437363638323861646331
31616235326638366461646631623033323963316133376138333139633962376537666361336265
35343566373533366639353662656535333437623638383333643963636664663231366265353363
39646333656163623330613331313830303866316363346630633734643264633666643530616535
36636332323430353566376565326436643434393066303630303963353162343364353936643966
61633032303235356539

View File

@@ -1,209 +1,229 @@
$ANSIBLE_VAULT;1.1;AES256
62316431346466333036383039323736336662386634373664343961343732303963323361663530
3038393463616438356133633430393535333335663236350a323064386662623762656138373763
36343534333364666466656138313034393239626435323163376239333662373538323530646663
3961386133613637320a333536636263646133303231386663386237626430626439373435333233
66306661326232303032653066353433363839303630376237363538626537303765663065653336
33346335363733343938393335626661626431343134353164396533373562396332616262666362
62396662653461643331373664653735653563396330303165646233363266333562313532303164
63363566353336646664373633376331633465353037656332333562663731373463636133303637
32346231386463353864343465336333623136336663633531343830613935666535306131326666
30353866646264313536333165373638373034346230373738666531613934313762613131333634
36656566376535643833623631383539363163323933343662306365383732303764346665306363
39336162653734303062346335656431366636626262666639393162346430343737376233613761
38366263663062653332366137346235376261356666663331353430663836626339663064396461
65386431646435313038653131633531326631386436333361316233306465333533393163653437
38633765666362383236386130313961386266353463396138353439643232333965643062356334
37326136396133373061323366383631663165396564623631653362623438336464356633303538
64346435613736633839626561363161383435663333383133343030653835323131373937613435
31396661613534636138616336333538663835623531313835616266653662353262616162646431
34393366633433643536666230356635376332393632333531633139396432613463653030623564
64356232653337613535326661633539333663316566616133663338656139656639393538306332
65333036663563333733383439393332386137313437623834633231646433653233623037346535
62386262373032646230303764323138623332353236653461393838316663633033353339623132
39356438653366633464666638656630333438323936333035383764396334326637656238383932
36313165353534336666626664373033616132643536366335333466346631323262616239343564
38376135616264313461323739616663326631636431633937366534646366383430623062316537
37313536663139656235663335636665633634626237303365326665383965636265353262643362
65323963326430353362346235346434306133376334613831396635373936666565633232316465
61316135336633356534356363636130353837653435343032663361363335623164373835613364
64643365616165393436376263323439613637326434666639613164383066306365396463633633
32633332346335623831383734653838323436346463633435333530363036393838346231663932
38356663653066323966626137623334623739666463366166646636306638393638356332336630
39626534666235613237343634313933653931343831316137656439653266393663343930303462
34666266653162323231376564393662326430353965383364326337363333666562326262326233
36383733646362303330303934326533653365643538623039366265663931613031373862366634
31343835626430663962386532326666346261653236613132373535303937386535303432663766
37313932366562643933303434623234393765363464666362323635646462326438303333393132
32393735303039623135613033636532613763396362366565316536323933366631663765333033
34356536646339346130383338316162646530326239373235663632643034616331356533363234
32373365343435343561623265343237376265663039653634663538313062626633373238356262
64356431353936663536363362626165383662343835626238353036393235343034643465653663
30393861363965636436663732616165393231636235316533663264383265323763656536626166
32363562656266656331353262356435353030323330663032653930363437313934633265333861
33616531326633383237323231353866366531636437356230636330393533333331313566383138
38303562643435383736363036353138626561323530393736666236346639326162383638303165
39616361316632323936653734656264333764356431393635613833346434303861646264373337
31623435646463346630336235653762656561633035343332636135393464393332633139643761
66613964663862626664393133326638343336373962343566646231356261386339393162313438
38303036323132353132653633333064346338653566346437356633666565643730343763373137
36363432346633626336373934646635353264623834303431313466346536653839366661646636
30616461653938633562613536393864376230393262313663666634303566333766626435643333
63393461643266643538343132356130383262366463313132383239323838636361653638653437
61383936303836323931666164373963656138343962326135623565623930346136656566373335
35623132613663356430363139323936643137393337653438306361316464363734313135356362
34636566663636363933363462666635643135323631356262323635323932363035323763623734
34316637626263313734326466366364313732383465383062326137646262383130313365356463
38376565396339346463653833303361646430323636623830646233633362353838333131386461
64323464376361333239313739376436623830393937353934386339366339326439386564306434
66396136656463643462353663633233333931316532346162653961383334656337636261663266
39636331353566343966616166363066623561633837313062633038633137633264346663623730
31336438643536396134643338316637333562663639366133663637646236613963353966643938
30366364643165616435353062323330396631326137633034666330376633353466336230643466
36626366313639373331303734353862336665643962303837393164616266323433316665626436
31303137326331646539373863623638663839373461363135326132646632343764656538393035
30663833653236396563393634373364306536323965656331666465643762643036633866343139
33343438333137643733616530666466376563653535326261633933303539383032643439383030
32643033346463366335303663363339323866316437383366393731373034323763363562333033
35663464336636623835333632623166623163323237353831643666343564303632646539623461
61613864326438653935396434613761376234306261396262323732393338376339613866643639
36386537363536376135323862396363323062356161353638393063336466653437323838633862
62663738353235663230636639616638313237313638626334633061633535373733613734626665
38316464643035343261633466343238393632333530323562333066326334663932643337626530
32373366323364306236653465633964326539646265346466633730396236366638313032613363
32323332613562613835363433376562643431623266323131313031316163366137623434323030
34336234363861366435393532616466363631313535303264643765346631396564613432616363
64336364393563396132646166313163323666373638616136313061386561623338656538373033
38373166333762323065326464363134346335653236613530313235333864393265383633663637
32363134313230333039613137306135373964386230326561626137633133326463373935646239
35316536623932323135306233383332333832396338366561666565323462656666363834346431
61316139343634653538396233656262396466376263643236346438306630666534303337323565
61343636303564363132393236363333653263353061376330653534333762346130653561623039
66656135393864313934393233663738386430333534303432396534623831333363393439386135
35616436303439653132356530626138373934383962396564646237316665323538396666366437
30376339383233383664343965306534386166613964313534636261316537316637343631393836
30613761323964636433613036653631303434346633623166636139326637363537613833386165
34303032346137623736373563303464306232663066373931626532373639343535313830613135
66656261646465366366313436313139376136373939396330393464346365383730626466613530
36303663626337633735633636666164366237323635383664333938373362626164386233663165
30643432356433346536663932616530326339383736343036333663383039613132303263646236
38633939383866646534366663393434373464616165633335373034306133393666326439613761
65373661346661366437663236663236663632356466386564376163636636343666303535653661
66646465386133353539323863656131653238363633336239376131613531396336313562623331
66393466613461393931343765303565383730356131663533346133386337316431366461343731
38646562613462653733323163653062663332393438313238316530653165363762313537333961
39666635363534646232386538396530316232363130666231643363336361336339653461326236
61373932346234343537366433386335353636636666326164393364623035656530333036363632
30643836393939646139646134636362336332383836663862663935383536613031316135613137
62613065363265666165363732636437313536383037313863613937656437316331356630636161
37386335303237313365346134356266336330303134646339353432333062303931336639613365
64353431373862616363616330393034396630333232383661353533323034383762353062303538
62326433366439393030373163656332353636343432633133626139613535363063353263393761
65383238636564663061356561616430633033323233336530663335623538643466343165326434
35313835386566326138663736613838613064306238383063376530636362303938656364653436
32313364653439393132353961343264346231333732323537623065303839663939323466613834
30393138346632623236356130346538643934623762663538666432343065643465663164386564
39356565646566353830383338623939306161373437336230373166316530313331626139633039
32336535633839643532626632356464336533623766626233336335366639346666663931306536
64333239613736343534353663383232626638396438653262393835643138353466373936353234
39626439663463636237306630376231343537623262313635316164316539613231343565333532
66363539626638336637396532386437363438373530393165613434616162353561633839366533
35643265646439393563303433386432316663643165613065306461313939636133613733373138
31623965393466363831626135663335646661373136613934316532333964346230633238646539
38613732393135363430663334316162623330663865393234343730653434386462366234343332
39646636646630303964623662663437326161316635646361623833343136373333336463346230
61353830383364393137343134306665306633396632633634326339393331303231343461623364
32353131333133323939656637633664663437316666623438666335376264353637323562343935
32336261653664303965316132353764346663656466323464643434373736393462616166636162
66336563626536656533316165313735386334393533623038656664333438376536396264353030
35366532613733346366353366623630306630623130653331363165346338343832373338393765
30336130326639333334393338366362646235383635343139643136366630373761386438343130
38613831663533626632623632653934653635633366353130663538326538316636383262386433
34326163363136613861646438323132376139306533643765316435356363643235616365303932
65303737306339633330633937363638663337636538623535323637383761666461306363616338
63356364646463346437303665376266656466636265663864663163333032623836646533326437
34316131633031363966316238643163613838653061383734366631653733633438313038333432
36633963653366353431386261303264323931353465343333323339613138313562616464663931
37663636376633333033383666323161656234346261363536343134343566656530346433383766
61373166666530323637303737653733396333313335646666613936623630303262306565343239
35363639393138323062393436306466383831656638666232616466343065363464313333333162
32393539623737373231636235666233656132383966663964343161626563383965616161623666
31356461653264353239356433646132316462386161356330663932353461386339346530653232
33306566663061616133323230643930643030386633666133313132353436336135383336356563
32393838333532383637363531396234623038386665336363303731376461306630663761303139
64333130356538623032373839313864633561316565383434383962353738353666636366333765
34353334646365616234623031393339663666633765636432666666336261343761333733396534
65303064643535383866623363333162303333393461313964396365363666313134333033383233
63393837636161653031633066326662366366663636313666663834376332356336666530396263
66326634376365343635666130333936346133656263343463613763393738393862353934343237
61316437383830636264326564346535646635386562613466323832343665636630346462333863
32623537396538643964663936623031326265373066313637636232363364653538363064613262
62306561373133373532376366336637393131383233393036313161363563303666303339363230
65633263363064633837363362393632383966366337393030353132346465346463636535303062
37316665653230656363313937663636336336333136306536303861303439366531323266336662
62376339646334303233376134323065363938366162316461626566343235303761633132383433
66303435633336313961333734353236623536653739336164353037343334386163326432303031
37353630346164633766353365613662373936663265353962333566336238336533396639373839
62346564646261303762663366303939393963393134303730383038326562353837623130396439
66636535663137333535393864613464636334363132376562393531376132333230346632363230
32306363336638326235663466333236646130336539333533306236653861313465343661613235
32643633633832636336313431653134623234303534363838306337363164326531343061306264
62643033326137643461636534623965343161636437326165303536343135393163643734373936
61373237326663616461326462393431633765346330313136383030323736313533313662633438
30616335373732303931643131383732646261333432323537393736313438616336306439626535
65306137303464636330303765303663366436353063643434383631376462303530643836366632
64613730316439666462613534383561343632323832383336636535626163316535383833313834
61383433643637366561316665346335623135323361346532656139353261663531396464343638
65653137303664613562333661363636623533333735616231623139343661353866623864363533
62636131393364643938363463303465333430386564306531366436316365613063623866666666
65653261363562653363306331666566336462613661646264306361663835633162323032616236
33393663613762313033396136356339356538376633353837613366326634303438373036633362
30613361633037356633376336353539616134663561663462633336373836373736646363306165
33323935313131376531643733353965353761393532333835616534613062373237353932656234
35356538633032383961326562346161356231613564656336343039616339306335666563323464
31393961636330333966306332373837636135646465316235653533626261393865653932613930
32376539343530326138656361356238653238643830663636656435383634336562306339366330
37613663343837626661383235303238653533326436643236653034636139333630393934633462
39613365636262613736316530663732623837653134653133363032623931663933666262323035
38666662333835336464316434303436373663353333396162653333663234643139386332313762
30303365646236653362376464656165366536303331393935303936306639656331636261646530
39333332626565343964623136643734643664383662663133663431353161303639666437386638
37653332613865636666373634626466623638326237656663323734303363636334643430626533
39386437366430613737376433366539376637393963613137633162653130666535313363343437
39363232366136343937343131303438353837613335326437333166643336306638623665616439
65616662613331623137653539313462336138633739623036623264313835363435303262643031
65316236636432346562643262353663656364353536666138623437373334623131613238353763
61356664323066356533616563336231393432643038306464396664333236326332393161373963
32663435383363356563363134623736363966613834663933633963383463313335643036613633
63336661393531346534373231316537353539373738373433383666313435633433613031643538
36326135306139353032656230663734383437623439333031323163643230613866323535663162
37346161303935333966346565613234356331333031656431376238336438666239623032356435
36653235663664303235303933626163616363633866393337326430376335303736626561386231
34376563633963323565616136343765316365383538333765346365653432353261346533656661
30346433333639626234643630366638616563623133646666323061366530646264363566333530
32623161393733383036336238626236356361656633343732393438663937376163323865653366
34613035623230613362346337343535313139363636353536656131353139363835616236663863
62363666396338653732316133666536393663663030313531616437343761613637636233313431
36306566303832393136663963323836653561653664666661356461313131636435306632343836
64613839633264343239626430363632656162343233626330613538663362356561623965336232
66393432343132643039383138323733353463323263663239303233316366626437336531313562
31626561663962326431336138643438623836633262616533656434343436636134333066613065
66633663643632313436616533326163343733393035636433303336613463333532633066633565
38613932633632353434393433373738326166663764383765613136326630663434363764316431
35353562653363363533363538646336646666393564613933303066333033653965333033316163
61393666383935393261373335626262313661653639643830376265633562356638326336663432
35333936313866383432666239313630613661613433303330363539303462366237313533636263
63376331633865396639643530663237326338383535643930653233306166343834333061346463
61353734613765356165346437336137346639616561643238613565323938386161326139623861
31643866393765656263646663376638656237323532363935353961633361623862316431643861
36333339386266396132613066323834376265396563326261646561323434323639343561613161
38306464383031393633363764303930306163643365333532363138376365316239363361643962
30393333646233363564643661373865373034663131656331386631616466333166373331643963
64346234386338663464356165366461353365323737343165616439646463353661323534323331
66643931636631616331383065613334333262633639636164333165373237623235316434326531
30336663373437343264353032363737633838303034396561303035656234653333636366343463
30393966336664386434303764356531326665376230623830303237346261666162633864393866
63646332616135653138333437356565643333663730333263396466303234643331653836356431
37316434366533316132336238373833346165303062633866623033623037646461346263623734
62393039626239393435316538636433333634616161663833653564353637663864373264313530
30343533306335623130
39663135633963326434303864363561636431643561306162306164653033373166336663376435
6338316264626661303737306537336666613838343037300a316466356335333735373566393965
63366361373239316363663235653635646133353761343733653336653961303661306338663462
3861373436653334660a346339326433313831316365656331363165303236356136666138376164
64366361633863343232363062366265323663626439396236613766366665626635636132363863
36303937626130373463613837313035663165613539323766613863396539613237633837373539
39383435653839613665353665386236313462356338306162376331336335386233343264346463
38383661626538386337306331376630393530386533313364623539663134643337303062343331
36353166363731363631366536613764623234313039393237316263346139663536316534613536
32353836376538633465353537663266346335663931663936393731646131666234313361333163
31363664323036613730633233303632623930653533393532333030366633383135313132303161
66333464303663666230363332363834643133623431333235656466313461353331366437346666
62633038353763316465623039663238353664633738356531363039333532373337633664316339
33313961383962336563333764653936636634623739313834363332363831346666643033613436
35363962393032303063633032313534316462393562306132626562343463653432353966626338
65343633626339633932633931306339623662636565653534376263343562353363303663353938
32323561663132383531313533343163653732373938306663313832333261316462313233306537
32383131386636333532373865313236613730343161653265333636303032303139383538336431
36663465313138306139393735303935393836623535373337616537646333336465656265626636
38343463323038303738383132623362323861663665316136336366633134323634623665653033
34653330353061663737386232303637306239396538386361333632383733663635623438383666
34363463353964336664386165663134636538343839656234326565313834303031623335636461
39373465363932623632616536623934326364346239366332376435366536396464306666383963
64643530353134633666353666646534303366653635336637376635353238663264626465636661
38653261383835363130653965643533303131613230303633333663303761393335366137323538
33346631663736653266666432636661653565613037336531626236336465336334626363666138
66343364373737323361326338623061313165623232313036333062636132643261363830353833
65303835646162376431356436366439613564353362363962353062653061623366666636303661
35333430656166373839626535343536343061393232306366613730303135353732326531666563
63323038373066353935646538376536636465616231356234663866393862356433373033313734
61326564636565666337656533326537383061303038613132353634306338623133363934316237
38343364663238636338333234383739393539653737373533653233613037393564336162653131
64636233386536303939373033373631663764626564646639356136306337643164386439393231
64613737343932313635366639613064306632353634303464653938326337643137363139653665
32386266356463353431333535333230336235663433633435303164313736366539383265663139
34383261303330663131396466303734393332363230666262616535363038333331356165656135
38323733623733623735333035356661316164346632323336393464663266363164613463376234
65333966643839343030323232323231383933343931323062653661353964333435633037303161
37356531623064356635623764336339363635303563653233353466356234396664396136366464
63626632303835396164643037653936303739383730373639346261643735303734666237633136
61376665353234333263323032326233653233323438303037306665363932383932646133616263
64623635396532333062363230363530613338373631323563363336366231316638616139376562
66316134386365623438616261353135613066303064353233366664343065316536653165393633
63346538343530346434396362343363393530343034353730383665656666386661613535643764
38336365363764356266393261363235396439376264613932313663323638626566323261316232
64613462303263623765353232303831663737336666663866306234323638313734353039376365
35343133613334306162323961313232356133313338383535316135323930333339663164336430
62626533343734323634306437663437396534356465336532386463363764613639303063616234
33643631323833616532343335633633656332336435356161326339326663316532343161323365
32303736346437366437346237396136353134323162633933623034613735646131373664616135
65656261366432333734353530356663626333616631376433623566353634303862643733323534
33303434613061653561363066643161613266326163623864396366643734366663636433623564
34303833653164646434356463613132336533323561633133623562613266653861643762646565
64646164313531633437636432343134633330366135663334653539313738343638373433666438
66653531356566316435363865633133623035663764396463303632363136643338333664656462
34343665303164323439363936386139303366373234613462313631666364386162333566356337
31666633616265303562396362666532616663343036663138386164386462353363396430336434
62376230386566666636363564393333376564623532393435623166333565636637356266356464
32366663616539626461623534376461303735313565333539643739353866633135313835343434
34383834316630626263306132656562613361306464373733333731346131306163336631373266
37376537623434613864643666336261633632616562393537623861313536613636633064356334
31363935643361643039643564313762626136363563316465626263376162333861333231626164
33353536383137353565613035643136346234346632316539373131303633383039633666613832
66613437316664353132386334663339346533396630303530376239383933333239323136313539
37653432353863373931663734333364363662623132366366383737333034383638376261323734
34376364646366383163396636316435653739666631623063306261386630313765623934663965
66613365623539313338333635343432396563313936303635636564383961303237613263316566
65366631393030373663376334313630396162623663653964323135326634616564306337333762
61663836643934396662343566343638656233343861636366363262303562666563643665663936
63343031353063386261396533613037323130373061313261663865386465366136393364336261
37353961323762303763383738643166643366383363376633373566326635343638646432323037
35346636376562313963396361306465363436376337653032336238353766643861636133303231
62663731656161343866613465386432636437316336306630616261656436323437346663326536
30393739643331303938323666323264393938376235326536343830396238393539633536376339
33623739333831653439343831386638316665326137646262613261666333616532343735363465
37386335326166346563393865336662633735623166326436386638333030643564643936313036
64643864336534333034376232653138663264383530313338663561383938316230303036323765
64303435396235343838323766626138303365383264396534616130386431373061373532363334
36613037333966386165663466396663356535323336366531383632633032353037353337616637
33333432333061643738623037653564366263316435653233303266663133616662636236656134
32636339613533653338623163636563373435616134636663646437323062636565316335663462
31333365666631336136376133653933663634613662363265333137653066386439613937373838
33373935323135653364396536636438313762303764346138373136383934623838636265323066
65396565383131633039333230393464663339343566353634633737636464373330633936356266
61313964636137666365623261386630653030656263373033333666643135373633626534653432
39623761303039393764373261663432333434343862623364323331333839643033653065613634
33653934383233616335396436383065303239356331646165323334616230613137313435393562
32616331356632303662346531353232323732666431623464623061356336643832666634663433
62373463656437393439333765626331383833303866396639303661626664313766346361353864
31636534393938326539323739356362353031356664343136616432363065363265336536636530
65316165643231623339633666386263386665326237323438333537663266666237363966633063
62373236346631646431373139336534643237646131373335393166626665373039633566646662
35623665643835346630366336366231383866333134383939643639393962646231383432656630
37316332653931303234353538393933336461356636353537373432306364373565633666633263
33616461613731393665333265353436663034316134643062343362613934396631333532636339
63313334643238333338663834356565613161323030663136636161623333653365646130666137
33376265636464646337653763636138356666393733363735646131383261306230646135303666
32656461646631393630323534363961346337623563393537336336363538356433363833356131
62366561366463326131393964313033333165333436633334393066303532386630646233343734
62303131323630333664646633646334383333346662613337363161356636643066393938393366
31646131633232373661626436363665636566633638313539356663353063323039386438386330
33653738663233343763336264623335393531306331613338316564313137353730323261333166
64396162363238303831346433373736383662376362653130353862316230663139313966353039
34666364336561663936613134646665393362626366663039333963336234653962613062376337
32343736653031653164303564643932356635663836366136343530333166653232623264376633
32343366313062313963333133303966303333626261373638356131326239316531393463373735
32656633363064633832313537366538636235653830333165393539336133363065393165633734
36626435356462326666666631393564356539356263386236633435386635396661343966623763
62626164346131616661323533353361666633353138626661356362316261663662333034643761
62306566373930353238616337333435663838666263666566313463613132663333303835663335
37363531656136303530323630633437666232633931666564363966616662316231373636613464
35366463623964343239303736393133653962353564366637303264633531643635626334323561
37393966666564633865323135613766383533323161613632316132643466376535373233343030
66616463663064343766383438313938323763656266383337653166396137383538396635613565
63383239643439376137626535356635633832633662643832346438313330666566393263666266
32353534626239626430636133613633633833336563326136366463323666303132303630366661
39663766346638396330623830623237363734646331376537336265393839613737323437306261
65306631353563373961663530393161636539623264313364353731326162383663393466353136
33373337343065646331656639646236656333643033393634383033313636393466376337346435
32336431303834643639343263326637626133363034323138336633306231613936366432643762
61353562306439336131616633643638306361313236326339376135623966326331636164363438
31643132636139616135353339343730656136663962336362373062313266316330386366333134
65316166366331646530323338336238653137346536316132333039373830333631323539353464
38383563346161633739623030303832353133623432303736666566636537616661613034633233
61626230383962323533343661363935343630303731353730666231396263323936306234626630
39323764316262623335353264646533653739306464636138663831313934376465663630356136
35373564333038393831656663396636363237316632303633363438393162333035633066663866
34383531396138643464353938393366636561363334666430393138623337356664343639643862
31343030346139366439643235346639396536393833316332633337626530343831626637363365
63636334336230643933323034636466623262636532623761383766393965623461633832613064
65353933653131363634363936613735353637643435383632323864663039653961623238663865
66336561373865643235646561656139363361386537656561653564633061393334383939623935
61383836643234383261616662623566626662613934323465656464653966616533316637383733
61613137336163326261326563313632383165636139643231313230306330396636633233343732
39653930393533353664666236393130613530623338323362623834656562313534363963386530
65663864626432396533313637323661323166636137333330616466393233323862343766326533
34386234383835356234366230396365613135636634316162653439613131613763656134386638
39356134613037353533306564633938323331663263303831336232303535663532393535643633
36363164316130353630663535366339376438663166333663313134623431613865383136366563
30323739666165663731303363353836376135313562333266623262303033623562626133626135
39393630343731646630626636346432313035636239396536373233653934383031663434353466
31656261653735343832383036373261323963393036623234306633326363366565623366323065
33623062613634316439373765353034353464303230643662626139356364623765356366343462
31336362343361613865623233303034613765376234373733363461333335656537336430653733
30346530356436656561313639633238396364646537333762396331643836343062643232343231
33383234333966643537323164313463373137363334323433393330373139616330373034613437
37616534626136656134653231373438366239316664666263663764623562633966393734393932
39363033656638653331333435623734383365336264633536616132343133333939313332353063
32613337653935613861386234663935636130353066383432316131343262386539633731666539
31383337373365336531356265393339353233326266333264343535343932343331316664333035
30333633386663383333646362316435323137616239316334333836393131336130663966353133
33666230393138623239666266643361393464333938363162353934363962666633656437336666
32643264626464393737303864303938316638636131323936373333353130623631626266616230
36386537326464373062366339303564386133653033396439396238633331383335613336643766
34623133373835363835663134356135643931626563663339613561353465666563393138356635
39376365393639376365353362386635623063623461386539663138343132383963636466353564
30326432303665393636613239313838653265386563393062336436626138313265643636363137
30323166633364376365643964386135303530613435363936333962323935336361376236666632
35656631633264663935626263393930633430373261643661643333613164343434383038653534
66333431373135636339663364333133656534333631666538616632643630613865383330666233
39316564663065363563613663363436333236396436366134316631376635633638393666323764
38353862623931303731386239363264316132343737396564383635663137656330306264393430
33376564303333323530373630633734326535663334623863616266653661663563343533316430
37393061613064383232376637383161653063366436613939366539646261343030663161656461
36616235636262316261363563333036376163616365386266646436326534353630326637393538
30303237666166373231393737353566376433623236383366306563633039303137623039643534
63626461653264336663656265623538393034363036396561366437336138323731656534343565
35316634376334356532346636353961333630336466353439343037343566343131633063303561
38353735376161316432383734353832343263643937396137376537306434363762323437393332
30343964346266636330613831313331633036613736373763343663396334353133623066333138
35666133666639323766663739346434636634356465623733306461343962396361386434396233
38353436623461363238346166626165353434323731616664326265653732326438636435323930
38343833613261623164336430366234656631623538393434346666633636663732336563343832
33636336663930303131346462613630653465363965666631633865303162303933613462363930
39353632393062353565616663323533333462376434356432636361333666623166373163383139
33373034393033623561373338363533356435653639393766333133646230356333636162623466
63353163666638616631383135376239353364343966386433376132643336636139653063363563
31326436333165623265336537326265316266613532653664343162656636356433343836313732
37373466616231613838363738393663663432623535343532316461343034353636363162376563
30336562353861636333613834663139346639303236393737373432326663376130306134363532
34353265393736623962653934356133383037623531313565323538336137623063353230623165
63616231316530356665646236643935326138616564306363663633653166373239316131316236
36376466613164343832613234646234656131376434333236343166333833346664663335353134
33313232363938366430303933633434356137323162323066306634383137336362306639303837
64366539653530346164366638643737336265646632363230306562303233343635363935623736
31643561356435343337313466666139393334613230383431393131323837616262333230653030
64373535313266303338306634643335663062663832326661663335656230353261313430616661
39383031363564666432366632396632623034373631393862326435326432633964316136343630
36646566356566643231373638626433623539376639303564623034623532316138363262333265
63343135653533373834336661373239643332633338343232323331373738326337626134323864
62343762376137343464373232623562343862663466336661663565363839306461393263353365
30656466353161653865353034643063663839393265383237333466366464636534643833376637
38633037363834643536613366376235313439643638626364333864313065343335383462376665
35386661636133613466626363356331346238626339613866316463383263313038626233656161
34613435333932353739616334653038623362613030623435666235343134303661623434303864
34393163623430646530393461383166663832346263656263336366386132633038353839303363
66623563643736383337623536346535376533353231383735313435393930343064363962373064
62663565616564633637353331333236656562353332353263616137636536323237303266376531
34616538646134373464363039333131633039633033616465383533623432373239353235346630
34383466633862313539373738623065363536306661386662663932636163623830353836383666
63393438313933356431386137316137343130333232316661323432383965333361323838646439
36326564613262346134343135646335653263356664313432366338383763323232376166346132
63623563663030323239326161643165316138326630373737333133363765343462356664646432
61313561653333653837613932626566376666393666396236366163616231623963376532613532
65653435613465323832626461303663343061646466303937343938313434663937346563663037
64323863656238383063326164366166623339306661646137333165313662303030353966333834
62326431363636313932326265633561323336626639636233326161383032313432353664356239
37373065323230326264633965343538386638306163666634646630383639656538316430656232
31646638616137316639383866346562393236373966343935303033626131636463303935626664
34393561333339663235333237656332646165663266623932323439616564656636666238623066
31376139376138653466646434356365333630396236656133306135363639663730316632393165
62396137633064616364626537373663363931356436323731363762633039383137616636366436
61343063366262343166303161326638356637373364663862633936383766333431316435336164
65323133393337323436623563323838356366656438653733333165313262646163303361626335
62616137653137633561633837653330623337356639306564653831333331643335623232306330
32393762633631363539636334323837323237373631633837636536363831363831663534363730
30316233666262613731613435626239303738386537616132613730633935373932323066356131
66393238333432643235346638373339346662363837313336633361323839353164373831396533
33326638643133306461636466623536393536613635663234613166653161613635333339353663
30356134653036396337656261396162643534313231373665653962643065666466363431333738
37626338663738666564663464313731313361353337643565383430643761313638666234626236
64646164353737613661613836336361396264386266363830363733613533303162666366383034
66373432313236613461333337376539306535316435636534396632366639353061613461666436
37343663366239303365626337366263343363306636653531643566623863393234393532373032
39373336356263613432303030643436323730323963613539616663663034386638363335326435
31633434313963356537623231366161353035356634383262623035363734383438666331303530
38313664653063383838663832636264626563323965353536393430323136633439323764363333
61306134353161316533

View File

@@ -1,26 +1,31 @@
$ANSIBLE_VAULT;1.1;AES256
34633334666530383466643739336536363136366631613464383161656535656466616261663232
6237633664336364643136643738643563653637613136360a363431663336626432616538623435
35373839383830393334663037353262653763353935623332383534376436613161313934316338
3930623638356537630a616339653631666163376134343535313235363234356664366234663038
30376239633164643335336166663737346262313864626234663839333132386232346139666131
33633463353330343037306365666463653039643235333566663164313730663738663036623539
64636663613566656338636638383066353562306137376432346639316533303665613463333832
37313361623639653533343536616566613865353733656338633833666263323433306431633635
35393333346134333466323239666335613862663935353662373833343635393532633461653932
38303034613166336632376264313961336665303332306165636663306237653336316330376236
31313362616434663861333264306661653532316365306138333131643731346636646365353733
62366335643566636631633630336231353666363965623664376231363164313362366164333431
33323632366335646137666466316530613862373162376461623633333238616637373336333064
39303761353139656333663362303365316131646633303238623031386137656263646364373163
36336633323266393663336462626236353466353266656264343639303739313362313537396238
36303637386266386665663163633438633763386232313861653438303965393938656166656562
63373064396135346361633739663534666230356566366333636266643932316264343339303833
38313233643536356232363636306363333463323133656536366662323963643637343365643035
30393061343630633263303864336438653339323264396434623038363464366235626235326464
62623861333264616331396230383831346163303433653236663738396164643937643663363834
30316530623433313633653639363065343264353630613436393237363930326632343230343538
64356230316530353663663534343739376138653266323037336163386130623361613632393037
33376232666337316536613763623066653431303366656333646361613839323831623562613266
36323263616364653666343264303338373232343063313266653661323933656662386237323637
66666337356337343864613034633934656461653834306338313031366432353263
62303937306432656235663330303934363930356632333966343535366438343261323139386135
6238653639363962373032656433623835313834366431380a653866666266313861643035653638
62343639336336353130363537356635653661333463386637333331353162636438393462353161
3531386264373537340a653431633436353030303733343738616431663831316238613930633038
62353466313762366561396366376363633132383438646362386239616362306563316461626438
37316232373664656165396237306333336433656464306664653566383761393636396537653331
30666631383234353064313061306164613364326638356636633636343133666638653261366339
37376632336133333736626130336165313735313033373138343662396265636563663234376138
32303137646437626435376463323539636264666663636533363733616637653934333936633139
36363162306237303931343133363238346231633732656535343963636262316363613434336363
36373339336332633332626534643762643264653365353062646663623837626463376363363161
31383865383166396663366230333334373037376333383938363738383862313736313261336234
65326434383165363861343131363139666238646562383837653233656365313932653163626564
38633761343338666662393333393165316563346636636135663133613062333836313561333963
39663733393738336336626438323365366566333331373433326539653565616230643936383737
38356434323433326432316265396661323964653039393164663533653731626162376134616261
39613666393764636331353764306531396339373032636531353165316437616464653237356536
66396661306235333732326136306439316362363063313837383663316361313731303634383331
30626239633235623164396666396533613734613962653030343334343832323664353431393636
38623838306239326537383765643036643830303066616232313935376635346237366434396162
66303932656265316463363432623037383462333638376430616562313238393762616263663138
63326239623666326636396361353764386363613364643935666339336565393830613435373231
64383265666661633664383031646530653539323037613837356638643335653235323135323361
37333731316234646135303566393439363338323264386635336432623862353661313962663965
35333631336233366364633537396234656430373832326334653030363635626439646532643032
30636666383865313737353962326665383936613434353830636561323439373537613538393836
31353164613631386665353762343938383766323739363363633634363433623039376564346333
64323939356238323462346562616335383437326233363838383930396238343261633863393232
39346165656662626631376362623663343164376634363532376363623737613962323434313339
3133306237396463313938383035643034616133336662636234

6
hosts
View File

@@ -1,4 +1,4 @@
[ungrouped]
jade ansible_host=fntz.net ansible_user=alex
jackson ansible_host=direct.jackson.alexav.gg ansible_user=root
nas ansible_host=172.16.0.29 ansible_user=alex
jackson ansible_host=direct.jackson.alexav.gg ansible_user=iac
nas ansible_host=172.16.0.29 ansible_user=alex
bear ansible_host=172.16.0.44 ansible_user=iac

160
main.yml
View File

@@ -1,18 +1,27 @@
- hosts: jade
- hosts: bear
roles:
- role: traefik
tags: traefik_deploy
vars:
server: "jade"
server: "bear"
use_cloudflared: true
tasks:
- name: Deploy Tinyauth
import_tasks: tasks/tinyauth.yml
tags: tinyauth_deploy
- name: Deploy Postgres
import_tasks: tasks/postgres.yml
tags: postgres_deploy
- name: Deploy MariaDB
import_tasks: tasks/mariadb.yml
tags: mariadb_deploy
- name: Deploy AdGuard Home
import_tasks: tasks/adguard.yml
tags: adguard_deploy
- name: Deploy Glance
import_tasks: tasks/glance.yml
tags: glance_deploy
- name: Deploy Servarr
import_tasks: tasks/servarr.yml
tags: servarr_deploy
- name: Deploy Dozzle
import_tasks: tasks/dozzle.yml
tags: dozzle_deploy
@@ -22,83 +31,71 @@
- name: Deploy Homebridge
import_tasks: tasks/homebridge.yml
tags: homebridge_deploy
- name: Deploy PiHole
import_tasks: tasks/pihole.yml
tags: pihole_deploy
- name: Deploy PocketID
import_tasks: tasks/pocketid.yml
tags: pocketid_deploy
- name: Deploy Ntfy
import_tasks: tasks/ntfy.yml
tags: ntfy_deploy
- name: Deploy NZBGet
import_tasks: tasks/nzbget.yml
tags: nzbget_deploy
- name: Deploy Tautulli
import_tasks: tasks/tautulli.yml
tags: tautulli_deploy
- name: Deploy Tinyauth
import_tasks: tasks/tinyauth.yml
tags: tinyauth_deploy
- name: Deploy Code Server
import_tasks: tasks/codeserver.yml
tags: codeserver_deploy
- name: Deploy Dashdot
import_tasks: tasks/dashdot.yml
tags: dashdot_deploy
- name: Deploy Romm
import_tasks: tasks/romm.yml
tags: romm_deploy
- name: Deploy Owncloud
import_tasks: tasks/owncloud.yml
tags: owncloud_deploy
- name: Deploy Excalidraw
import_tasks: tasks/excalidraw.yml
tags: excalidraw_deploy
- name: Deploy PocketID
import_tasks: tasks/pocketid.yml
tags: pocketid_deploy
- name: Deploy Scrobbling Setup
import_tasks: tasks/scrobbling.yml
tags: scrobbling_deploy
- name: Deploy Vaultwarden
import_tasks: tasks/vaultwarden.yml
tags: vaultwarden_deploy
- name: Deploy Tautulli
import_tasks: tasks/tautulli.yml
tags: tautulli_deploy
- name: Deploy Immich
import_tasks: tasks/immich.yml
tags: immich_deploy
- name: Deploy Navidrome
import_tasks: tasks/navidrome.yml
tags: navidrome_deploy
- name: Deploy Drop
import_tasks: tasks/drop.yml
tags: drop_deploy
- name: Deploy Home Assistant
import_tasks: tasks/home-assistant.yml
tags: home-assistant_deploy
- name: Deploy Gluetun
import_tasks: tasks/gluetun.yml
tags: gluetun_deploy
- name: Deploy QBittorrent
import_tasks: tasks/qbittorrent.yml
tags: qbittorrent_deploy
- name: Deploy Jackett
import_tasks: tasks/jackett.yml
tags: jackett_deploy
- name: Deploy NFL Proxy
import_tasks: tasks/nfl-proxy.yml
tags: nfl-proxy_deploy
- name: Deploy Plex
import_tasks: tasks/plex.yml
tags: plex_deploy
- name: Deploy ErsatzTV
import_tasks: tasks/ersatztv.yml
tags: ersatztv_deploy
- name: Deploy Frigate
import_tasks: tasks/frigate.yml
tags: frigate_deploy
- name: Deploy Servarr
import_tasks: tasks/servarr.yml
tags: servarr_deploy
- name: Deploy NZBGet
import_tasks: tasks/nzbget.yml
tags: nzbget_deploy
- name: Deploy Uptime Kuma
import_tasks: tasks/uptime-kuma.yml
tags: uptime-kuma_deploy
- name: Deploy CouchDB for obsidian
import_tasks: tasks/obsidian.yml
tags: obsidian_deploy
- name: Deploy Helium services
import_tasks: tasks/helium.yml
tags: helium_deploy
- name: Deploy Romm
import_tasks: tasks/romm.yml
tags: romm_deploy
- name: Deploy Booklore
import_tasks: tasks/booklore.yml
tags: booklore_deploy
- name: Deploy Pelican
import_tasks: tasks/pelican.yml
tags: pelican_deploy
- name: Deploy Docs
import_tasks: tasks/docs.yml
tags: docs_deploy
- name: Deploy Audiobookshelf
import_tasks: tasks/audiobookshelf.yml
tags: audiobookshelf_deploy
- name: Deploy Cloudflared
import_tasks: tasks/cloudflared.yml
tags: cloudflared_deploy
- name: Deploy Gitea Runner
import_tasks: tasks/runner.yml
tags: runner_deploy
- hosts: jackson
roles:
- role: traefik
tags: traefik_deploy
- role: fivem
tags: fivem_deploy
vars:
server: "jackson"
tasks:
- name: Deploy Gitea
@@ -113,16 +110,31 @@
- name: Deploy Plausible
import_tasks: tasks/plausible.yml
tags: plausible_deploy
- name: Deploy Owncloud
import_tasks: tasks/owncloud.yml
tags: owncloud_deploy
- name: Deploy Pelican
import_tasks: tasks/pelican.yml
tags: pelican_deploy
- name: Deploy Database
import_tasks: tasks/mariadb.yml
tags: mariadb_deploy
- name: Deploy Floof
import_tasks: tasks/floof.yml
tags: floof_deploy
- name: Deploy Tinyauth
import_tasks: tasks/tinyauth.yml
tags: tinyauth_deploy
- name: Deploy Cobalt
import_tasks: tasks/cobalt.yml
tags: cobalt_deploy
- hosts: nas
roles:
- role: traefik
tags: traefik_deploy
vars:
server: "nas"
tasks:
- name: Deploy Plex
import_tasks: tasks/plex.yml
tags: plex_deploy
- name: Deploy Frigate
import_tasks: tasks/frigate.yml
tags: frigate_deploy
- name: Deploy Wings
import_tasks: tasks/wings.yml
tags: wings_deploy

View File

@@ -0,0 +1,59 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items: "{{ directories }}"
when: directories is defined
- name: Clone repository
git:
repo: "{{ build.git.repo }}"
dest: "{{ build.git.dest }}"
when: build is defined
- name: Create Docker volume
docker_volume:
name: "{{ volume_name }}"
when: volume_name is defined
- name: Build Docker Image
docker_image:
name: "{{ image.name }}"
tag: "{{ image.tag }}"
build:
nocache: true
path: "{{ build.git.dest }}"
dockerfile: Dockerfile
source: build
force_source: true
state: present
when: build is defined
- name: Create Docker Network
docker_network:
name: "{{ network_name }}"
when: network_name is defined
- name: Create Docker Container
docker_container:
name: "{{ name }}"
recreate: true
restart_policy: always
entrypoint: "{{ entrypoint | default(omit) }}"
shm_size: "{{ shmSize | default(omit) }}"
pull: "{{ build is not defined }}"
published_ports: "{{ published_ports | default(omit) }}"
network_mode: "{{ network_mode | default(omit) }}"
image: "{{ image.name }}:{{ image.tag }}"
etc_hosts: "{{ extra_hosts | default(omit) }}"
command: "{{ command | default(omit) }}"
networks: "{{ networks | default(omit) }}"
volumes: "{{ volumes | default(omit) }}"
env: "{{ env | default(omit) }}"
labels: "{{ labels | default(omit) }}"
healthcheck: "{{ healthcheck | default(omit) }}"
devices: "{{ devices | default(omit) }}"
mounts: "{{ mounts | default(omit) }}"
pid_mode: "{{ pid_mode | default(omit) }}"
privileged: "{{ privileged | default(omit) }}"

View File

@@ -1,48 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/gitea"
- "{{ data_dir }}/job"
- name: Check if Act Runner has been downloaded
stat:
path: "{{ data_dir }}/gitea/act_runner"
register: act_runner
- name: Download Gitea Act Runner
get_url:
url: https://dl.gitea.com/act_runner/nightly/act_runner-nightly-linux-amd64
dest: "{{ data_dir }}/gitea"
mode: 0755
when: not act_runner.stat.exists
- name: Copy Gitea Act Runner Config
template:
src: config.yml.j2
dest: "{{ data_dir }}/gitea/config.yml"
- name: Check if Act Runner is a Systemd Service
stat:
path: "/etc/systemd/system/act_runner.service"
register: act_runner_service
- name: Stop & remove systemd service
become: yes
shell: |
systemctl stop act_runner.service &&
rm /etc/systemd/system/act_runner.service
- name: Create Systemd Service
become: yes
template:
src: act_runner.service.j2
dest: "/etc/systemd/system/act_runner.service"
- name: Enable Systemd Service
become: yes
command: systemctl enable act_runner.service
- name: Start Systemd Service
become: yes
command: systemctl start act_runner.service

View File

@@ -1,16 +0,0 @@
[Unit]
Description=Gitea Actions runner
Documentation=https://gitea.com/gitea/act_runner
After=docker.service
[Service]
ExecStart={{ data_dir }}/gitea/act_runner daemon --config={{ data_dir }}/gitea/config.yml
ExecReload=/bin/kill -s HUP $MAINPID
WorkingDirectory={{ data_dir }}/gitea
TimeoutSec=0
RestartSec=10
Restart=always
User=alex
[Install]
WantedBy=multi-user.target

View File

@@ -1,16 +0,0 @@
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
shutdown_timeout: 0s
insecure: false
fetch_timeout: 5s
fetch_interval: 2s
labels:
- "runner:host"
host:
workdir_parent: "{{ data_dir }}/gitea/job"

View File

@@ -25,12 +25,17 @@
template:
src: local-dynamic.yml.j2
dest: "{{ data_dir }}/traefik/dynamic.yml"
when: server == "jade" or server == "nas"
when: server == "jade" or server == "nas" or server == "bear"
- name: Create Traefik Dynamic File (Remote)
template:
src: remote-dynamic.yml.j2
dest: "{{ data_dir }}/traefik/dynamic.yml"
when: server == "jackson"
- name: Create Traefik Dynamic File (Remote 2)
template:
src: remote-ash-1.yml.j2
dest: "{{ data_dir }}/traefik/dynamic.yml"
when: server == "ash-1"
- name: Deploy Traefik Docker Container
docker_container:
@@ -38,6 +43,7 @@
image: traefik
restart_policy: unless-stopped
recreate: true
pull: true
command:
- --providers.file.directory=/config
published_ports:
@@ -52,5 +58,8 @@
- "{{ data_dir }}/traefik/data:/data"
- "{{ data_dir }}/traefik/traefik.yml:/traefik.yml"
- "{{ data_dir }}/traefik/dynamic.yml:/dynamic.yml"
networks:
- name: "{{ docker_network_name }}"
networks: >-
{{
[{'name': docker_network_name}] +
([{'name': 'tunnel'}] if use_cloudflared | default(false) else [])
}}

View File

@@ -12,6 +12,11 @@ entryPoints:
scheme: https
webSecure:
address: ":443"
transport:
respondingTimeouts:
readTimeout: 600s
writeTimeout: 600s
idleTimeout: 180s
serversTransport:
insecureSkipVerify: true
providers:
@@ -30,3 +35,10 @@ certificatesResolvers:
dnsChallenge:
provider: cloudflare
delayBeforeCheck: 10
accessLog:
enabled: true
filters:
statusCodes:
- "200"
- "400-404"
- "500-503"

View File

@@ -1,4 +1,9 @@
http:
middlewares:
tinyauth:
forwardauth:
address: http://tinyauth:3000/api/auth/traefik
routers:
plex:
rule: "Host(`tv.fntz.net`)"
@@ -21,40 +26,40 @@ http:
- webSecure
tls:
certResolver: letsencrypt
nflproxy:
rule: "Host(`nfl.fntz.net`)"
service: nflproxy
homebridge:
rule: "Host(`bridge.fntz.net`)"
service: homebridge
entryPoints:
- webSecure
tls:
certResolver: letsencrypt
nvr:
rule: "Host(`nvr.fntz.net`)"
service: nvr
wings:
rule: "Host(`wings.fntz.net`)"
service: wings
entryPoints:
- webSecure
tls:
certResolver: letsencrypt
services:
plex:
loadBalancer:
servers:
- url: "http://172.16.0.29:32400"
- url: "http://172.16.0.44:32400"
jtraefik:
loadBalancer:
servers:
- url: "http://jackson:8080/"
- url: "http://100.105.157.6:8080/"
traefik:
loadBalancer:
servers:
- url: "http://jade:8080/"
nflproxy:
- url: "http://172.16.0.44:8080/"
homebridge:
loadBalancer:
servers:
- url: "http://jade:5000/"
nvr:
- url: "http://172.16.0.44:8581/"
wings:
loadBalancer:
servers:
- url: "http://nas:5000/"
- url: "http://172.16.0.44:4000/"
passHostHeader: true

View File

@@ -0,0 +1,15 @@
http:
routers:
wings:
rule: "Host(`ash-1.landite.games`)"
service: wings
entryPoints:
- webSecure
tls:
certResolver: letsencrypt
services:
wings:
loadBalancer:
servers:
- url: "http://5.161.219.50:8090"

View File

@@ -0,0 +1,15 @@
http:
routers:
wings:
rule: "Host(`wings.landite.games`)"
service: wings
entryPoints:
- webSecure
tls:
certResolver: letsencrypt
services:
wings:
loadBalancer:
servers:
- url: "http://5.161.64.174:8090"

View File

@@ -5,112 +5,96 @@ import subprocess
def git_diff():
args = sys.argv
res = subprocess.run(f"git diff --name-only {args[1]} {args[2]}", capture_output=True, shell=True, text=True)
return [x for x in res.stdout.strip().split("\n") if "tasks/" in x or "roles/" in x or "host_vars" in x]
def construct_command(tag = None, host = None):
command = f"ANSIBLE_CONFIG=ansible.cfg /usr/bin/ansible-playbook main.yml --vault-password-file ~/.vault_pass.txt"
if host:
command += f" -l {host}"
if tag:
command += f" --tags {tag}_deploy"
return [x for x in res.stdout.strip().split("\n") if "tasks/" in x or "roles/" in x]
def construct_command(tags):
command = f"ANSIBLE_CONFIG=ansible.cfg /usr/bin/ansible-playbook main.yml --tags={",".join(tags)} --vault-password-file ~/.vault_pass.txt"
print(command)
return command
def deploy(tag = None, host = None):
command = construct_command(tag, host)
if tag:
print(f"Deploying {tag}...\n")
else:
print(f"Deploying {host}...\n")
def deploy(tags):
print(f"[MAIN] Deploying...")
command = construct_command(tags)
res = subprocess.run(command, shell=True)
return res.returncode == 0
def main():
tasks_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "../tasks")
dir_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), '../')
diff = git_diff()
host_vars_changed_for = []
# containers that need special treatment
removed_containers = []
vpn_containers = [
"tasks/qbittorrent.yml",
"tasks/jackett.yml"
]
ignore_deploys_for = [
"tasks/runner",
"templates/runner",
"roles/docker"
]
# because these containers rely on gluetun for network, they need to be recreated when gluetun is recreated
# special actions
if "tasks/gluetun.yml" in diff:
print("Gluetun detected in diff, queuing dependent containers for recreation")
print("[MAIN] Detected Gluetun in diff, recreating dependent containers..")
for container in vpn_containers:
if container not in diff:
diff.append(container)
# when variables update for a host, recreate containers
# clean up the diff
new_diff = []
for file in diff:
if "host_vars" in file:
hostname = file.split("/")[1].split(".")[0]
print(f"Secret file for '{hostname}' changed, will recreate containers on host after deployment")
host_vars_changed_for.append(hostname)
split_string = file.split("/")
service_name = split_string[1].split(".")[0] + "_deploy" if "." in split_string[1] else split_string[1] + "_deploy"
deployed = []
failed = []
for file in diff:
# separating these for now because roles will typically
# have a bunch of other things tied to them
if "roles/" not in file and "host_vars/" not in file:
task_name = file.split("/")[1].split(".")[0]
task_file_path = os.path.join(tasks_path, file.split("/")[1])
# i'm not proud of this either
if not os.path.exists(os.path.join(dir_path, file)):
if "roles" in file and not os.path.exists(os.path.join(dir_path, service_name)):
print(f"[MAIN] '{task_name}' role removed, marking for cleanup..")
removed_containers.append(service_name)
elif "tasks" in task_name:
print(f"[MAIN] '{task_name}' non-existent, marking for cleanup..")
removed_containers.append(service_name)
else:
if service_name not in ignore_deploys_for and service_name not in new_diff:
new_diff.append(service_name)
if not os.path.exists(task_file_path):
print(f"{task_name} doesn't exist, running cleanup")
res = subprocess.run(f"/usr/bin/docker container stop {task_name}", shell=True)
if res.returncode == 0:
subprocess.run(f"/usr/bin/docker container rm {task_name}", shell=True)
subprocess.run("/usr/bin/docker image prune -f", shell=True)
subprocess.run("/usr/bin/docker container prune -f", shell=True)
if len(new_diff) > 0:
deployed = deploy(new_diff)
else:
# success, nothing deployed
deployed = True
print(f"Cleaned up container {task_name}")
for task in removed_containers:
print(f"[MAIN] Attempting to remove containers related to '{task}'...")
if len(task.split("/")) > 1:
task_name = task.split("/")[1].split(".")[0]
else:
task_name = task
containers = subprocess.Popen(f'docker ps --filter "name={task_name}" -q', shell=True, stdout=subprocess.PIPE)
for line in containers.stdout:
container_id = line.strip().decode("utf8")
print(f"[MAIN] Found Docker container {container_id} related to {task_name}, removing..")
subprocess.run(f"/usr/bin/docker container stop {container_id}", shell=True)
subprocess.run(f"/usr/bin/docker container rm {container_id}", shell=True)
subprocess.run("/usr/bin/docker image prune -f", shell=True)
subprocess.run("/usr/bin/docker container prune -f", shell=True)
if "host_vars" not in file:
# deploy the task, regardless of its status
if "roles/" not in file:
if task_name not in deployed:
task = deploy(tag=task_name)
else:
task_name = file.split("/")[1]
if task_name not in deployed:
task = deploy(tag=task_name)
if not task:
failed.append(task_name)
else:
deployed.append(task_name)
if len(host_vars_changed_for) > 0:
for host in host_vars_changed_for:
print(f"Redeploying containers on {host} due to host vars update")
task = deploy(host=host)
if task:
deployed.append(host)
else:
failed.append(host)
if len(failed) <= 0 and len(deployed) > 0:
if deployed and len(new_diff) > 0:
print("\n---------------------")
print(" Deployment succeeded!")
print(f" All tasks: {", ".join(deployed)}")
print(f" All tasks: {', '.join(new_diff)}")
print("---------------------\n")
sys.exit(0)
elif len(failed) > 0:
elif not deployed and len(new_diff) > 0:
print("\n---------------------")
print(" Deployment failed!")
print(f" Failed tasks: {", ".join(failed)}")
print(f" All tasks: {", ".join(deployed)}")
print(f" All tasks: {', '.join(new_diff)}")
print("---------------------\n")
sys.exit(1)
elif len(deployed) <= 0:
print("Successfully executed, no tasks required execution")
elif len(new_diff) <= 0:
print("[MAIN] Successfully executed, no tasks required execution")
sys.exit(0)
if __name__ == "__main__":

View File

@@ -10,21 +10,39 @@ if os.path.exists(host_vars_path):
vaults = os.listdir(host_vars_path)
# 1st run - extract ungrouped, global variables
for vault in vaults:
vault_path = os.path.join(host_vars_path, vault)
vault_contents = subprocess.run(f'ansible-vault decrypt "{vault_path}" --vault-password-file ~/.vault_pass.txt --output -', shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
stdout = vault_contents.stdout.strip().splitlines()
for line in stdout:
if line.startswith("#") and line not in file_contents:
file_contents += f"\n{line}\n"
if line.startswith("#"):
break
elif line.split(":")[0] not in file_contents:
file_contents += f"{line.split(":")[0]}:\n"
# 2nd run - extract service-specific variables
for vault in vaults:
vault_path = os.path.join(host_vars_path, vault)
vault_contents = subprocess.run(f'ansible-vault decrypt "{vault_path}" --vault-password-file ~/.vault_pass.txt --output -', shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL)
stdout = vault_contents.stdout.strip().splitlines()
if ":" in line:
if line.split(":")[0] not in file_contents:
file_contents += f'{line.split(":")[0]}:\n'
has_found_start = False
for line in stdout:
if has_found_start or line.startswith("#"):
if not has_found_start:
has_found_start = True
if line.startswith("#") and line not in file_contents:
file_contents += f"\n{line}\n"
with open(os.path.join(host_vars_path, 'all.template.yml'), 'w', encoding="utf8") as template_file:
template_file.write(file_contents)
template_file.close()
if ":" in line:
if line.split(":")[0] not in file_contents:
file_contents += f'{line.split(":")[0]}:\n'
with open(os.path.join(host_vars_path, 'all.template.yml'), 'w', encoding="utf8") as template_file:
template_file.write(file_contents)
template_file.close()
print("Written to disk!")

65
scripts/run_updates.py Normal file
View File

@@ -0,0 +1,65 @@
import requests
import subprocess
import os
import yaml
def search_for_image(image_name):
tasks_folder = os.path.realpath(os.path.join('./', 'tasks'))
if "library/" in image_name:
image_name = image_name.replace("library/", "")
for task in os.listdir(tasks_folder):
with open(os.path.join(tasks_folder, task), 'r') as file:
data = yaml.safe_load(file)
for key in data:
if "vars" in key:
if image_name in key["vars"]["image"]["name"] or image_name == key["vars"]["image"]["name"]:
return f"{task.split(".")[0]}_deploy"
def main():
update_list = requests.get("https://cup.fntz.net/api/v3/json")
update_list.raise_for_status()
update_list = update_list.json()
deployable_tags = []
with open("main.yml", 'r') as file:
data = yaml.safe_load(file)
for host in data:
if "tasks" in host:
for task in host['tasks']:
deployable_tags.append(task['tags'])
if len(update_list["images"]) > 0:
already_deployed = []
actually_updatable = []
blacklist = []
for image in update_list["images"]:
if image['result']['has_update']:
if image in blacklist:
print(f"[UPDATE] Ignoring '{image}' due to its blacklist")
elif 'version_update_type' in image['result']['info'] and image['result']['info']['version_update_type'] != "major":
actually_updatable.append({ 'reference': image['reference'], 'repository': image['parts']['repository'] })
elif 'type' in image['result']['info'] and image['result']['info']['type'] == "digest":
actually_updatable.append({ 'reference': image['reference'], 'repository': image['parts']['repository'] })
print(f"Redeploying {len(actually_updatable)} container(s)..")
for image in actually_updatable:
ansible_tag = search_for_image(image['repository'])
print(ansible_tag, image['reference'])
if ansible_tag and ansible_tag in deployable_tags and ansible_tag not in already_deployed:
print(f'[UPDATE] Deploying {ansible_tag}..')
subprocess.run(f'ANSIBLE_CONFIG=ansible.cfg ansible-playbook main.yml --tags {ansible_tag} --vault-password-file=~/.vault_pass.txt', shell=True)
else:
print('[UPDATE] Could not find corresponding task, cleaning up..')
subprocess.run(f"docker image remove {image['reference']}", shell=True)
already_deployed.append(ansible_tag)
print("\nAll images updated, refreshing Cup")
requests.get("https://cup.fntz.net/api/v3/refresh")
else:
print("No images to update!")
if __name__ == "__main__":
main()

27
tasks/adguard.yml Normal file
View File

@@ -0,0 +1,27 @@
---
- name: Deploy AdGuard Home
include_role:
name: docker
vars:
name: adguard
directories:
- "{{ data_dir }}/adguard"
- "{{ data_dir }}/adguard/work"
- "{{ data_dir }}/adguard/conf"
image:
name: adguard/adguardhome
tag: latest
volumes:
- "{{ data_dir }}/adguard/work:/opt/adguardhome/work"
- "{{ data_dir }}/adguard/conf:/opt/adguardhome/conf"
published_ports:
- "53:53/tcp"
- "53:53/udp"
networks:
- name: "homelab"
labels:
traefik.enable: "true"
traefik.http.routers.adguard.rule: Host(`ag.fntz.net`)
traefik.http.routers.adguard.entrypoints: webSecure
traefik.http.routers.adguard.tls.certresolver: letsencrypt
traefik.http.services.adguard.loadbalancer.server.port: "3000"

View File

@@ -1,49 +1,15 @@
---
- name: "Create file structure"
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/api"
- "{{ data_dir }}/api/db"
- "{{ data_dir }}/api/app"
- name: "Clone latest API"
git:
repo: git@git.alexav.gg:alex/api.git
dest: "{{ data_dir }}/api/app"
- name: "Build API Docker Image"
docker_image:
name: api
tag: "latest"
build:
nocache: true
path: "{{ data_dir }}/api/app"
dockerfile: Dockerfile
source: build
force_source: true
state: present
- name: Create API Network
docker_network:
name: api
- name: Deploy Redis Container
docker_container:
name: api_redis
image: redis:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: api
- name: Deploy Database Container
docker_container:
- name: Deploy API Database
include_role:
name: docker
vars:
name: api_postgres
image: postgres:latest
restart_policy: unless-stopped
recreate: true
network_name: api
directories:
- "{{ data_dir }}/api/db"
image:
name: postgres
tag: "17"
networks:
- name: api
volumes:
@@ -53,15 +19,30 @@
POSTGRES_PASSWORD: "{{ API_POSTGRES_PASSWORD }}"
PGDATA: "/var/lib/postgresql/data/pgdata"
- name: Deploy API Container
docker_container:
- name: Deploy API Redis
include_role:
name: docker
vars:
name: api_redis
network_name: api
image:
name: redis
tag: latest
networks:
- name: api
- name: Deploy API
include_role:
name: docker
vars:
name: api
image: api:latest
recreate: true
restart_policy: unless-stopped
network_name: api
networks:
- name: api
- name: "{{ docker_network_name }}"
image:
name: git.alexav.gg/alex/api
tag: latest
env:
NODE_ENV: "production"
VERSION: "v4"
@@ -73,6 +54,14 @@
STEAM_API_KEY: "{{ API_STEAM_API_KEY }}"
CONTACT_WEBHOOK: "{{ API_CONTACT_WEBHOOK }}"
JWT_KEY: "{{ API_JWT_KEY }}"
DISCORD_PUBLIC_KEY: "{{ API_DISCORD_PUBLIC_KEY }}"
DISCORD_APP_ID: "{{ API_DISCORD_APP_ID }}"
DISCORD_BOT_TOKEN: "{{ API_DISCORD_BOT_TOKEN }}"
MINECRAFT_HOST: "{{ API_MINECRAFT_HOST }}"
MINECRAFT_USER: "{{ API_MINECRAFT_USER }}"
MINECRAFT_PASSWORD: "{{ API_MINECRAFT_PASSWORD }}"
MINECRAFT_DATABASE: "{{ API_MINECRAFT_DATABASE }}"
TMDB_API_KEY: "{{ API_TMDB_TOKEN }}"
labels:
traefik.enable: "true"
traefik.http.routers.aapi.rule: Host(`api.alexav.gg`)

27
tasks/audiobookshelf.yml Normal file
View File

@@ -0,0 +1,27 @@
---
- name: Deploy AudioBookshelf
include_role:
name: docker
vars:
name: audiobookshelf
directories:
- "{{ data_dir }}/audiobookshelf"
- "{{ data_dir }}/audiobookshelf/config"
- "{{ data_dir }}/audiobookshelf/metadata"
image:
name: ghcr.io/advplyr/audiobookshelf
tag: latest
networks:
- name: homelab
volumes:
- "{{ media_path }}/Books/Audiobooks:/audiobooks"
- "{{ data_dir }}/audiobookshelf/config:/config"
- "{{ data_dir }}/audiobookshelf/metadata:/metadata"
env:
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
traefik.http.routers.audiobookshelf.rule: Host(`abooks.fntz.net`)
traefik.http.routers.audiobookshelf.entrypoints: webSecure
traefik.http.routers.audiobookshelf.tls.certresolver: letsencrypt
traefik.http.services.audiobookshelf.loadbalancer.server.port: "80"

33
tasks/booklore.yml Normal file
View File

@@ -0,0 +1,33 @@
---
- name: Deploy Booklore
include_role:
name: docker
vars:
name: booklore
networks:
- name: homelab
directories:
- "{{ data_dir }}/booklore"
- "{{ data_dir }}/booklore/data"
- "{{ data_dir }}/booklore/books"
image:
name: booklore/booklore
tag: latest
env:
APP_USER_ID: "{{ PUID }}"
APP_GROUP_ID: "{{ PGID }}"
TZ: "{{ TZ }}"
BOOKLORE_PORT: "6060"
DATABASE_URL: jdbc:mariadb://172.16.0.44:3306/booklore
DATABASE_USERNAME: booklore
DATABASE_PASSWORD: "{{ BOOKLORE_DB_PASS }}"
volumes:
- "{{ data_dir }}/booklore/data:/app/data"
- "{{ data_dir }}/booklore/books:/books"
- "{{ media_path }}/Books/Bookdrop:/bookdrop"
labels:
traefik.enable: "true"
traefik.http.routers.booklore.rule: Host(`books.fntz.net`)
traefik.http.routers.booklore.entrypoints: webSecure
traefik.http.routers.booklore.tls.certresolver: letsencrypt
traefik.http.services.booklore.loadbalancer.server.port: "6060"

15
tasks/cloudflared.yml Normal file
View File

@@ -0,0 +1,15 @@
---
- name: Deploy Cloudflared
include_role:
name: docker
vars:
name: cloudflared
image:
name: cloudflare/cloudflared
tag: latest
env:
TUNNEL_TOKEN: "{{ CLOUDFLARED_TUNNEL_TOKEN }}"
command: tunnel run
network_name: "tunnel"
networks:
- name: "tunnel"

26
tasks/cobalt.yml Normal file
View File

@@ -0,0 +1,26 @@
---
- name: Deploy Cobalt
include_role:
name: docker
vars:
name: cobalt
directories:
- "{{ data_dir }}/cobalt"
image:
name: ghcr.io/imputnet/cobalt
tag: 11
env:
API_URL: "https://dl.alexav.gg"
JWT_SECRET: "{{ COBALT_JWT_SECRET }}"
API_AUTH_REQUIRED: "1"
API_KEY_URL: "file:///keys.json"
networks:
- name: "{{ docker_network_name }}"
volumes:
- "{{ data_dir }}/cobalt/keys.json:/keys.json:ro"
labels:
traefik.enable: "true"
traefik.http.routers.cobalt.rule: Host(`dl.alexav.gg`)
traefik.http.routers.cobalt.entrypoints: webSecure
traefik.http.routers.cobalt.tls.certresolver: letsencrypt
traefik.http.services.cobalt.loadbalancer.server.port: "9000"

View File

@@ -1,23 +1,14 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/code-server"
- name: Pull latest Code Server Docker Image
docker_image:
name: lscr.io/linuxserver/code-server
tag: latest
source: pull
- name: Create Code Server Docker Container
docker_container:
name: codeserver
image: lscr.io/linuxserver/code-server:latest
restart_policy: unless-stopped
recreate: true
- name: Deploy Code Server
include_role:
name: docker
vars:
name: "codeserver"
directories:
- "{{ data_dir }}/code-server"
image:
name: lscr.io/linuxserver/code-server
tag: latest
networks:
- name: homelab
volumes:

View File

@@ -1,17 +1,10 @@
---
- name: Pull latest Cup Docker Image
docker_image:
name: ghcr.io/sergi0g/cup
tag: latest
source: pull
- name: Create Cup Docker Container
docker_container:
name: Cup
image: ghcr.io/sergi0g/cup
- name: Deploy Cup
include_role:
name: docker
vars:
name: cup
command: serve
restart_policy: unless-stopped
recreate: true
networks:
- name: homelab
volumes:
@@ -22,4 +15,6 @@
traefik.http.routers.cup.entrypoints: webSecure
traefik.http.routers.cup.tls.certresolver: letsencrypt
traefik.http.services.cup.loadbalancer.server.port: "8000"
traefik.http.routers.cup.middlewares: tinyauth
image:
name: ghcr.io/sergi0g/cup
tag: latest

View File

@@ -1,23 +0,0 @@
---
- name: Pull latest Dashdot Docker Image
docker_image:
name: mauricenino/dashdot
tag: latest
source: pull
- name: Create Dashdot Docker Container
docker_container:
name: dashdot
image: mauricenino/dashdot
restart_policy: unless-stopped
recreate: true
networks:
- name: homelab
volumes:
- "/:/mnt/host:ro"
labels:
traefik.enable: "true"
traefik.http.routers.dash.rule: Host(`stats.fntz.net`)
traefik.http.routers.dash.entrypoints: webSecure
traefik.http.routers.dash.tls.certresolver: letsencrypt
traefik.http.services.dash.loadbalancer.server.port: "3001"

25
tasks/docs.yml Normal file
View File

@@ -0,0 +1,25 @@
---
- name: Deploy Wiki.js
include_role:
name: docker
vars:
name: docs
image:
name: ghcr.io/requarks/wiki
tag: 2
env:
DB_TYPE: "postgres"
DB_HOST: "{{ DOCS_DB_HOST }}"
DB_PORT: "5432"
DB_USER: "wikijs"
DB_PASS: "wikijs"
DB_NAME: "wikijs"
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.docs.rule: Host(`docs.fntz.net`)
traefik.http.routers.docs.entrypoints: webSecure
traefik.http.routers.docs.tls.certresolver: letsencrypt
traefik.http.services.docs.loadbalancer.server.port: "3000"
traefik.http.routers.docs.middlewares: tinyauth

View File

@@ -1,18 +1,14 @@
---
- name: Pull latest Dozzle Docker Image
docker_image:
name: amir20/dozzle
tag: latest
source: pull
- name: Create Dozzle Docker Container
docker_container:
- name: Deploy Dozzle
include_role:
name: docker
vars:
name: dozzle
image: amir20/dozzle:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: homelab
image:
name: amir20/dozzle
tag: latest
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
env:

View File

@@ -1,50 +1,14 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/drop"
- "{{ data_dir }}/drop/db"
- "{{ data_dir }}/drop/app"
- name: Create Drop Network
docker_network:
- name: Deploy Drop
include_role:
name: docker
vars:
name: drop
- name: Pull latest Drop Docker Image
docker_image:
name: ghcr.io/drop-oss/drop
tag: v0.3.3
source: pull
- name: Create Drop DB Container
docker_container:
name: drop_postgres
image: postgres:14-alpine
recreate: true
restart_policy: unless-stopped
networks:
- name: drop
healthcheck:
test: pg_isready -d drop -U drop
retries: 5
start_period: 10s
interval: 30s
timeout: 60s
volumes:
- "{{ data_dir }}/drop/db:/var/lib/postgresql/data"
env:
POSTGRES_PASSWORD: "drop"
POSTGRES_USER: "drop"
POSTGRES_DB: "drop"
- name: Create Drop Container
docker_container:
name: drop
image: ghcr.io/drop-oss/drop:latest
recreate: true
restart_policy: unless-stopped
directories:
- "{{ data_dir }}/drop/app"
image:
name: ghcr.io/drop-oss/drop
tag: latest
networks:
- name: homelab
- name: drop
@@ -52,7 +16,7 @@
- "{{ media_path }}/Games/Desktop:/library"
- "{{ data_dir }}/drop/app:/data"
env:
DATABASE_URL: "postgres://drop:drop@drop_postgres:5432/drop"
DATABASE_URL: "postgres://drop:drop@172.16.0.25:5432/drop"
GIANT_BOMB_API_KEY: "{{ DROP_GIANT_BOMB_API_KEY }}"
EXTERNAL_URL: "https://games.fntz.net"
labels:

26
tasks/ersatztv.yml Normal file
View File

@@ -0,0 +1,26 @@
---
- name: Deploy Ersatz
include_role:
name: docker
vars:
name: ersatztv
directories:
- "{{ data_dir }}/ersatz"
image:
name: ghcr.io/ersatztv/ersatztv
tag: latest
networks:
- name: homelab
published_ports:
- "8409:8409"
volumes:
- "{{ data_dir }}/ersatz:/config"
- "{{ media_path }}:/media"
devices:
- /dev/dri:/dev/dri
labels:
traefik.enable: "true"
traefik.http.routers.iptv.rule: Host(`iptv.fntz.net`)
traefik.http.routers.iptv.entrypoints: webSecure
traefik.http.routers.iptv.tls.certresolver: letsencrypt
traefik.http.services.iptv.loadbalancer.server.port: "8409"

View File

@@ -1,21 +0,0 @@
---
- name: Pull latest Excalidraw Docker Image
docker_image:
name: excalidraw/excalidraw
tag: latest
source: pull
- name: Create Excalidraw Docker Container
docker_container:
name: excalidraw
image: excalidraw/excalidraw
restart_policy: unless-stopped
recreate: true
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.draw.rule: Host(`draw.fntz.net`)
traefik.http.routers.draw.entrypoints: webSecure
traefik.http.routers.draw.tls.certresolver: letsencrypt
traefik.http.services.draw.loadbalancer.server.port: "80"

23
tasks/floof.yml Normal file
View File

@@ -0,0 +1,23 @@
---
- name: Deploy Floof
include_role:
name: docker
vars:
name: floofs_adventure
directories:
- "{{ data_dir }}/floof"
networks:
- name: "{{ docker_network_name }}"
build:
git:
repo: git@git.alexav.gg:alex/floofs-adventure.git
dest: "{{ data_dir }}/floof"
image:
name: floofs-adventure
tag: latest
labels:
traefik.enable: "true"
traefik.http.routers.dz.rule: Host(`floof.alexav.gg`)
traefik.http.routers.dz.entrypoints: webSecure
traefik.http.routers.dz.tls.certresolver: letsencrypt
traefik.http.services.dz.loadbalancer.server.port: "3001"

View File

@@ -1,37 +1,26 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/frigate"
- name: Pull latest Frigate Docker Image
docker_image:
name: ghcr.io/blakeblackshear/frigate
tag: stable
source: pull
- name: Deploy Frigate Docker Container
docker_container:
- name: Deploy Frigate
include_role:
name: docker
vars:
name: frigate
image: ghcr.io/blakeblackshear/frigate:stable
recreate: true
directories:
- "{{ data_dir }}/frigate"
image:
name: ghcr.io/blakeblackshear/frigate
tag: stable
privileged: true
restart_policy: unless-stopped
published_ports:
- "5000:5000"
- "8555:8555/tcp"
- "8555:8555/udp"
- "8554:8554"
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri
- /dev/kfd
networks:
- name: "{{ docker_network_name }}"
volumes:
- /etc/localtime:/etc/localtime:ro
- "{{ data_dir }}/frigate:/config"
- "{{ FRIGATE_RECORDINGS_PATH }}:/media/frigate"
- "{{ media_path }}/Cameras:/media/frigate"
env:
LIBVA_DRIVER_NAME: radeonsi
labels:
traefik.enable: "true"
traefik.http.routers.frigate.rule: Host(`nvr.fntz.net`)

View File

@@ -1,23 +1,14 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/gitea"
- name: Pull latest Gitea Docker Image
docker_image:
name: docker.gitea.com/gitea
tag: latest
source: pull
- name: Create Gitea Docker Container
docker_container:
- name: Deploy Gitea
include_role:
name: docker
vars:
name: gitea
image: docker.gitea.com/gitea:latest
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/gitea"
image:
name: docker.gitea.com/gitea
tag: latest
networks:
- name: "{{ docker_network_name }}"
volumes:

View File

@@ -1,32 +1,22 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/glance"
- "{{ data_dir }}/glance/config"
- "{{ data_dir }}/glance/assets"
- name: Pull latest Glance Docker Image
docker_image:
name: glanceapp/glance
tag: latest
source: pull
- name: Create Glance Docker Container
docker_container:
- name: Deploy Glance
include_role:
name: docker
vars:
name: glance
image: glanceapp/glance
restart_policy: unless-stopped
recreate: true
image:
name: glanceapp/glance
tag: latest
directories:
- "{{ data_dir }}/glance"
- "{{ data_dir }}/glance/config"
- "{{ data_dir }}/glance/assets"
networks:
- name: homelab
env:
PIHOLE_TOKEN: "{{ GLANCE_PIHOLE_TOKEN }}"
ADGUARD_USERNAME: "{{ GLANCE_ADGUARD_USERNAME }}"
ADGUARD_PASSWORD: "{{ GLANCE_ADGUARD_PASSWORD }}"
VIDEO_MACHINE: "{{ GLANCE_VIDEO_MACHINE }}"
JELLYFIN_URL: "{{ GLANCE_JELLYFIN_URL }}"
JELLYFIN_TOKEN: "{{ GLANCE_JELLYFIN_TOKEN }}"
volumes:
- "{{ data_dir }}/glance/config:/app/config"
- "{{ data_dir }}/glance/assets:/app/assets"

View File

@@ -1,95 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/helium"
- name: Clone latest services
git:
repo: git@git.alexav.gg:alex/helium-services.git
dest: "{{ data_dir }}/helium"
- name: Build NGINX image
docker_image:
name: helium_nginx
tag: "latest"
build:
args:
SERVICES_HOSTNAME: "{{ HELIUM_BASE_URL }}"
path: "{{ data_dir }}/helium/svc"
dockerfile: "{{ data_dir }}/helium/svc/nginx/Dockerfile"
source: build
force_source: yes
state: present
- name: Build Extension Proxy image
docker_image:
name: helium_ext_proxy
tag: "latest"
build:
path: "{{ data_dir }}/helium/svc/extension-proxy"
dockerfile: Dockerfile
source: build
force_source: yes
state: present
- name: Build UBO image
docker_image:
name: helium_ubo
tag: "latest"
build:
path: "{{ data_dir }}/helium/svc/ubo"
dockerfile: Dockerfile
source: build
force_source: yes
state: present
- name: Create Helium Network
docker_network:
name: helium
- name: Create NGINX Container
docker_container:
name: helium_nginx
image: helium_nginx:latest
recreate: true
restart_policy: unless-stopped
shm_size: "512M"
networks:
- name: helium
- name: homelab
mounts:
- type: tmpfs
target: /tmp
tmpfs_size: 5G
labels:
traefik.enable: "true"
traefik.http.routers.helium.rule: Host(`helium.fntz.net`)
traefik.http.routers.helium.entrypoints: webSecure
traefik.http.routers.helium.tls.certresolver: letsencrypt
traefik.http.services.helium.loadbalancer.server.port: "80"
- name: Create UBO Proxy Container
docker_container:
name: helium_ubo
image: helium_ubo:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: helium
env:
UBO_PROXY_BASE_URL: "https://{{ HELIUM_BASE_URL }}/ubo"
- name: Create Extension Proxy Container
docker_container:
name: helium_ext_proxy
image: helium_ext_proxy:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: helium
env:
HMAC_SECRET: "{{ HELIUM_EXT_HMAC_SECRET }}"
PROXY_BASE_URL: "https://{{ HELIUM_BASE_URL }}/ext"

View File

@@ -1,31 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/homeassistant"
- name: Pull HA Docker Image
docker_image:
name: ghcr.io/home-assistant/home-assistant:stable
source: pull
- name: Deploy Home Assistant Container
docker_container:
name: home_assistant
image: ghcr.io/home-assistant/home-assistant:stable
recreate: true
restart_policy: unless-stopped
network_mode: host
privileged: true
volumes:
- "{{ data_dir }}/homeassistant:/config"
- "/etc/localtime:/etc/localtime"
- "/run/dbus:/run/dbus:ro"
labels:
traefik.enable: "true"
traefik.http.routers.ha.rule: Host(`ha.fntz.net`)
traefik.http.routers.ha.entrypoints: webSecure
traefik.http.routers.ha.tls.certresolver: letsencrypt
traefik.http.services.ha.loadbalancer.server.url: "http://{{ TRAEFIK_HOST_IP }}:8123"

View File

@@ -1,30 +1,14 @@
---
- name: Create Folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/homebridge"
- name: Pull latest Homebridge Docker Image
docker_image:
name: homebridge/homebridge
tag: latest
source: pull
- name: Create Homebridge Docker Container
docker_container:
- name: Deploy Homebridge
include_role:
name: docker
vars:
name: homebridge
image: homebridge/homebridge:latest
restart_policy: unless-stopped
directories:
- "{{ data_dir }}/homebridge/homebridge"
image:
name: homebridge/homebridge
tag: latest
network_mode: host
recreate: true
volumes:
- "{{ data_dir }}/homebridge:/homebridge"
labels:
traefik.enable: "true"
traefik.http.routers.bridge.rule: Host(`bridge.fntz.net`)
traefik.http.routers.bridge.entrypoints: webSecure
traefik.http.routers.bridge.tls.certresolver: letsencrypt
traefik.http.services.bridge.loadbalancer.server.url: "http://{{ TRAEFIK_HOST_IP }}:8581"
traefik.http.routers.bridge.middlewares: tinyauth

View File

@@ -1,28 +1,16 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/immich"
- "{{ data_dir }}/immich/model-cache"
- "{{ data_dir }}/immich/db"
- name: Create Immich Redis Docker Container
docker_container:
name: immich_redis
image: docker.io/valkey/valkey:8-bookworm@sha256:ff21bc0f8194dc9c105b769aeabf9585fea6a8ed649c0781caeac5cb3c247884
restart_policy: unless-stopped
recreate: true
networks:
- name: immich
- name: Create Immich DB Docker Container
docker_container:
- name: Deploy Immich DB
include_role:
name: docker
vars:
name: immich_postgres
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/immich"
- "{{ data_dir }}/immich/model-cache"
- "{{ data_dir }}/immich/db"
image:
name: ghcr.io/immich-app/postgres
tag: 14-vectorchord0.4.3-pgvectors0.2.0
volumes:
- "{{ data_dir }}/immich/db:/var/lib/postgresql/data"
env:
@@ -32,24 +20,25 @@
POSTGRES_INITDB_ARGS: "--data-checksums"
networks:
- name: immich
# - name: Create Immich ML Docker Container
# docker_container:
# name: immich_machine_learning
# image: ghcr.io/immich-app/immich-machine-learning:release
# restart_policy: unless-stopped
# recreate: true
# volumes:
# - "{{ data_dir }}/immich/model-cache:/cache"
# networks:
# - name: immich
- name: Create Immich Server Docker Container
docker_container:
name: immich_server
image: ghcr.io/immich-app/immich-server:release
restart_policy: unless-stopped
recreate: true
network_name: immich
- name: Deploy Immich Redis
include_role:
name: docker
vars:
name: immich_redis
image:
name: docker.io/valkey/valkey
tag: 8-bookworm
networks:
- name: immich
- name: Deploy Immich Server
include_role:
name: docker
vars:
name: immich
image:
name: ghcr.io/immich-app/immich-server
tag: v2.1.0
networks:
- name: homelab
- name: immich
@@ -57,10 +46,13 @@
- "{{ IMMICH_UPLOAD_LOCATION }}:/usr/src/app/upload"
- "/etc/localtime:/etc/localtime:ro"
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
DB_HOSTNAME: "immich_postgres"
REDIS_HOSTNAME: "immich_redis"
DB_PASSWORD: "{{ IMMICH_DB_PASSWORD }}"
DB_USERNAME: "{{ IMMICH_DB_USERNAME }}"
DB_DATABASE_NAME: "{{ IMMICH_DB_DATABASE_NAME }}"
labels:
traefik.enable: "true"
traefik.http.routers.img.rule: Host(`img.fntz.net`)

View File

@@ -1,39 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/jellyfin"
- name: Pull latest Jellyfin Docker Image
docker_image:
name: lscr.io/linuxserver/jellyfin
tag: latest
source: pull
- name: Create Jellyfin Docker Container
docker_container:
name: jellyfin
image: lscr.io/linuxserver/jellyfin:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: homelab
published_ports:
- 8096:8096
volumes:
- "{{ data_dir }}/jellyfin:/config"
- "{{ JELLYFIN_TV_PATH }}:/data/tvshows"
- "{{ JELLYFIN_MOVIE_PATH }}:/data/movies"
- "{{ JELLYFIN_MUSIC_PATH }}:/data/music"
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
traefik.http.routers.jf.rule: Host(`jf.fntz.net`)
traefik.http.routers.jf.entrypoints: webSecure
traefik.http.routers.jf.tls.certresolver: letsencrypt
traefik.http.services.jf.loadbalancer.server.port: "8096"

View File

@@ -1,35 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/kavita"
- name: Pull latest Kavita Docker Image
docker_image:
name: lscr.io/linuxserver/kavita
tag: latest
source: pull
- name: Deploy Kavita Docker Container
docker_container:
name: kavita
image: lscr.io/linuxserver/kavita
recreate: true
restart_policy: unless-stopped
volumes:
- "{{ data_dir }}/kavita:/config"
- "{{ media_path }}/Books:/books"
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
TZ: "{{ TZ }}"
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.read.rule: Host(`read.fntz.net`)
traefik.http.routers.read.entrypoints: webSecure
traefik.http.routers.read.tls.certresolver: letsencrypt
traefik.http.services.read.loadbalancer.server.port: "5000"

41
tasks/mariadb.yml Normal file
View File

@@ -0,0 +1,41 @@
---
- name: Deploy MariaDB Database
include_role:
name: docker
vars:
name: mariadb
directories:
- "{{ data_dir }}/db"
- "{{ data_dir }}/db/import"
image:
name: mariadb
tag: latest
published_ports:
- "3306:3306"
volumes:
- "{{ data_dir }}/db:/var/lib/mysql"
- "{{ data_dir }}/db/etc:/etc/mysql"
- "{{ data_dir }}/db/import:/mnt/import"
env:
MARIADB_USER: "{{ MARIADB_DB_USER }}"
MARIADB_ROOT_PASSWORD: "{{ MARIADB_DB_PASSWORD }}"
- name: Deploy PHPMyAdmin
include_role:
name: docker
vars:
name: phpmyadmin
image:
name: phpmyadmin
tag: latest
networks:
- name: "{{ docker_network_name }}"
env:
PMA_HOST: "{{ MARIADB_PMA_HOST }}"
PMA_PORT: "{{ MARIADB_PMA_PORT }}"
labels:
traefik.enable: "true"
traefik.http.routers.pma.rule: Host(`{{ MARIADB_PMA_URL }}`)
traefik.http.routers.pma.entrypoints: webSecure
traefik.http.routers.pma.tls.certresolver: letsencrypt
traefik.http.services.pma.loadbalancer.server.port: "80"

View File

@@ -1,54 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/nextcloud"
- "{{ data_dir }}/nextcloud/data"
- "{{ data_dir }}/nextcloud/db"
- name: Create Nextcloud Docker Network
docker_network:
name: nextcloud
- name: Pull latest Nextcloud Docker Image
docker_image:
name: nextcloud
tag: latest
source: pull
- name: Create Nextcloud DB Docker Container
docker_container:
name: nc_postgresql
image: postgres:17-alpine
restart_policy: unless-stopped
recreate: true
networks:
- name: nextcloud
volumes:
- "{{ data_dir }}/nextcloud/db:/var/lib/postgresql/data"
env:
PGDATA: /var/lib/postgresql/data/pgdata
POSTGRES_PASSWORD: "{{ NEXTCLOUD_POSTGRES_PASSWORD }}"
POSTGRES_DATABASE: "{{ NEXTCLOUD_POSTGRES_DATABASE }}"
POSTGRES_USER: "{{ NEXTCLOUD_POSTGRES_USER }}"
POSTGRES_HOST: "{{ NEXTCLOUD_POSTGRES_HOST }}"
- name: Create Nextcloud Docker Container
docker_container:
name: nextcloud
image: nextcloud
restart_policy: unless-stopped
recreate: true
networks:
- name: "{{ docker_network_name }}"
- name: nextcloud
volumes:
- "{{ data_dir }}/nextcloud/data:/var/www/html"
labels:
traefik.enable: "true"
traefik.http.routers.nc.rule: Host(`{{ NEXTCLOUD_APP_URL }}`)
traefik.http.routers.nc.entrypoints: webSecure
traefik.http.routers.nc.tls.certresolver: letsencrypt
traefik.http.services.nc.loadbalancer.server.port: "80"

View File

@@ -1,23 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/nfl-proxy"
- name: "Clone latest NFL-Proxy"
git:
repo: "git@git.alexav.gg:alex/nfl-proxy.git"
dest: "{{ data_dir }}/nfl-proxy"
- name: "Stop & remove existing PM2 containers"
ignore_errors: yes
shell: |
/home/alex/.nvm/versions/node/v24.4.0/bin/pm2 delete "nfl-proxy"
- name: "Start new PM2 container"
args:
chdir: "{{ data_dir }}/nfl-proxy"
shell: |
/home/alex/.nvm/versions/node/v24.4.0/bin/pm2 start --name="nfl-proxy" "venv/bin/activate && venv/bin/python main.py"

View File

@@ -1,36 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/ntfy"
- "{{ data_dir }}/ntfy/cache"
- "{{ data_dir }}/ntfy/data"
- name: Pull latest Ntfy Docker Image
docker_image:
name: binwiederhier/ntfy
tag: latest
source: pull
- name: Create Ntfy Docker Container
docker_container:
name: ntfy
image: binwiederhier/ntfy
command: serve
restart_policy: unless-stopped
recreate: true
networks:
- name: homelab
volumes:
- "{{ data_dir }}/ntfy/cache:/var/cache/ntfy"
- "{{ data_dir }}/ntfy/data:/etc/ntfy"
env:
UPSTREAM_BASE_URL: "{{ NTFY_UPSTREAM_BASE_URL }}"
BASE_URL: "{{ NTFY_BASE_URL }}"
labels:
traefik.enable: "true"
traefik.http.routers.ntfy.rule: Host(`push.fntz.net`)
traefik.http.routers.ntfy.entrypoints: webSecure
traefik.http.routers.ntfy.tls.certresolver: letsencrypt

View File

@@ -1,34 +1,25 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/nzbget"
- name: Pull latest NZBGet Docker Image
docker_image:
name: lscr.io/linuxserver/nzbget
tag: latest
source: pull
- name: Create NZBGet Docker Container
docker_container:
- name: Deploy NZBGet
include_role:
name: docker
vars:
name: nzbget
image: lscr.io/linuxserver/nzbget:latest
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/nzbget"
image:
name: lscr.io/linuxserver/nzbget
tag: latest
networks:
- name: homelab
volumes:
- "{{ data_dir }}/nzbget:/config"
- "{{ NZBGET_DOWNLOADS_PATH }}:/downloads"
- "{{ media_path }}/Downloads:/downloads"
env:
NZBGET_USER: "{{ NZBGET_USER }}"
NZBGET_PASS: "{{ NZBGET_PASS }}"
TZ: "{{ TZ }}"
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
PUID: "1000"
PGID: "1000"
labels:
traefik.enable: "true"
traefik.http.routers.nzb.rule: Host(`nzb.fntz.net`)

View File

@@ -1,36 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/obsidian"
- "{{ data_dir }}/obsidian/data"
- "{{ data_dir }}/obsidian/etc"
- name: Pull Docker Image
docker_image:
name: couchdb
tag: latest
source: pull
- name: Create Docker Container
docker_container:
name: couchdb
image: couchdb:latest
recreate: true
restart_policy: unless-stopped
networks:
- name: homelab
volumes:
- "{{ data_dir }}/obsidian/data:/opt/couchdb/data"
- "{{ data_dir }}/obsidian/etc:/opt/couchdb/etc/local.d"
env:
COUCHDB_USER: "{{ COUCHDB_USER }}"
COUCHDB_PASSWORD: "{{ COUCHDB_PASSWORD }}"
labels:
traefik.enable: "true"
traefik.http.routers.couch.rule: Host(`couch.fntz.net`)
traefik.http.routers.couch.entrypoints: webSecure
traefik.http.routers.couch.tls.certresolver: letsencrypt
traefik.http.services.couch.loadbalancer.server.port: "5984"

View File

@@ -1,93 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/owncloud"
- "{{ data_dir }}/owncloud/data"
- "{{ data_dir }}/owncloud/db"
- "{{ data_dir }}/owncloud/redis"
- name: Create Owncloud Docker Network
docker_network:
name: owncloud
- name: Pull latest Owncloud Docker Image
docker_image:
name: owncloud/server
tag: "10.15"
source: pull
- name: Create Owncloud DB Docker Container
docker_container:
name: oc_database
image: mariadb:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: owncloud
volumes:
- "{{ data_dir }}/owncloud/db:/var/lib/mysql"
env:
MYSQL_ROOT_PASSWORD: "{{ OWNCLOUD_DB_PASSWORD }}"
MYSQL_DATABASE: "owncloud"
MYSQL_USER: "owncloud"
MYSQL_PASSWORD: "{{ OWNCLOUD_DB_PASSWORD }}"
MARIADB_AUTO_UPGRADE: "1"
command: "--max-allowed-packet=128M --innodb-log-file-size=64M"
healthcheck:
test: "CMD mysqladmin ping -u root --password={{ OWNCLOUD_DB_PASSWORD }}"
interval: 10s
timeout: 5s
retries: 5
- name: Create Owncloud Redis Container
docker_container:
name: oc_redis
image: redis:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: owncloud
command: "--databases 1"
healthcheck:
test: CMD redis-cli ping
interval: 10s
timeout: 5s
retries: 5
volumes:
- "{{ data_dir }}/owncloud/redis:/data"
- name: Create Owncloud Docker Container
docker_container:
name: owncloud
image: owncloud/server:10.15
restart_policy: unless-stopped
recreate: true
networks:
- name: "{{ docker_network_name }}"
- name: owncloud
volumes:
- "{{ data_dir }}/owncloud/data:/mnt/data"
env:
OWNCLOUD_DOMAIN: "{{ OWNCLOUD_APP_URL }}"
OWNCLOUD_TRUSTED_DOMAINS: "{{ OWNCLOUD_APP_URL }}"
OWNCLOUD_DB_TYPE: "mysql"
OWNCLOUD_DB_NAME: "owncloud"
OWNCLOUD_DB_USERNAME: "owncloud"
OWNCLOUD_DB_PASSWORD: "{{ OWNCLOUD_DB_PASSWORD }}"
OWNCLOUD_DB_HOST: "oc_database"
OWNCLOUD_ADMIN_USERNAME: "{{ OWNCLOUD_ADMIN_USERNAME }}"
OWNCLOUD_ADMIN_PASSWORD: "{{ OWNCLOUD_ADMIN_PASSWORD }}"
OWNCLOUD_MYSQL_UTF8MB4: "true"
OWNCLOUD_REDIS_ENBALED: "true"
OWNCLOUD_REDIS_HOST: "oc_redis"
labels:
traefik.enable: "true"
traefik.http.routers.nc.rule: Host(`{{ OWNCLOUD_APP_URL }}`)
traefik.http.routers.nc.entrypoints: webSecure
traefik.http.routers.nc.tls.certresolver: letsencrypt
traefik.http.services.nc.loadbalancer.server.port: "8080"
traefik.http.middlewares.limit.buffering.maxRequestBodyBytes: "1073741824"
traefik.http.routers.nc.middlewares: "limit"

42
tasks/pelican.yml Normal file
View File

@@ -0,0 +1,42 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/pelican"
- name: Create Pelican Caddyfile
template:
src: templates/pelican/Caddyfile
dest: "{{ data_dir }}/pelican/Caddyfile"
- name: Deploy Pelican Panel
include_role:
name: docker
vars:
name: Pelican
image:
name: ghcr.io/pelican-dev/panel
tag: latest
volumes:
- "pelican-data:/pelican-data"
- "pelican-logs:/var/www/html/storage/logs"
- "{{ data_dir }}/pelican/Caddyfile:/etc/caddy/Caddyfile"
etc_hosts:
- "host.docker.internal:host-gateway"
networks:
- name: "{{ docker_network_name }}"
env:
XDG_DATA_HOME: /pelican-data
TRUSTED_PROXIES: "172.21.0.0/16"
APP_URL: "https://{{ PELICAN_APP_URL }}"
ADMIN_EMAIL: "{{ PELICAN_EMAIL }}"
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
labels:
traefik.enable: "true"
traefik.http.routers.pelican.rule: Host(`{{ PELICAN_APP_URL }}`)
traefik.http.routers.pelican.entrypoints: webSecure
traefik.http.routers.pelican.tls.certresolver: letsencrypt
traefik.http.services.pelican.loadbalancer.server.port: "80"

View File

@@ -1,36 +0,0 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/pihole"
- name: Pull latest PiHole Docker Image
docker_image:
name: pihole/pihole
tag: latest
source: pull
- name: Create PiHole Docker Container
docker_container:
name: pihole
image: pihole/pihole:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: homelab
published_ports:
- "{{ TRAEFIK_HOST_IP }}:53:53/tcp"
- "{{ TRAEFIK_HOST_IP }}:53:53/udp"
volumes:
- "{{ data_dir }}/pihole:/etc/pihole"
env:
FTLCONF_webserver_api_password: "{{ PIHOLE_FTLCONF_WEBSERVER_API_PASSWORD }}"
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
traefik.http.routers.pihole.rule: Host(`pihole.fntz.net`)
traefik.http.routers.pihole.entrypoints: webSecure
traefik.http.routers.pihole.tls.certresolver: letsencrypt
traefik.http.services.pihole.loadbalancer.server.port: "80"

View File

@@ -3,7 +3,6 @@
file:
path: "{{ item }}"
state: directory
owner: 999
with_items:
- "{{ data_dir }}/plausible"
- "{{ data_dir }}/plausible/app"

View File

@@ -1,29 +1,18 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/plex"
- name: Pull latest Plex Docker Image
docker_image:
name: lscr.io/linuxserver/plex
tag: latest
source: pull
- name: Deploy Plex Docker Container
docker_container:
- name: Deploy Plex
include_role:
name: docker
vars:
name: plex
image: lscr.io/linuxserver/plex
image:
name: lscr.io/linuxserver/plex
tag: latest
network_mode: host
restart_policy: unless-stopped
recreate: true
devices:
- /dev/dri:/dev/dri
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
PUID: "1000"
PGID: "1000"
TZ: "{{ TZ }}"
VERSION: "docker"
PLEX_CLAIM: "{{ PLEX_CLAIM_TOKEN }}"

View File

@@ -1,28 +1,20 @@
---
- name: Create Folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/pocketid"
- name: Pull latest PocketID Docker Image
docker_image:
name: ghcr.io/pocket-id/pocket-id
tag: v1
source: pull
- name: Create PocketID Docker Container
docker_container:
- name: Deploy PocketID
include_role:
name: docker
vars:
name: pocketid
image: ghcr.io/pocket-id/pocket-id:v1
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/pocketid"
image:
name: ghcr.io/pocket-id/pocket-id
tag: v2
networks:
- name: homelab
volumes:
- "{{ data_dir }}/pocketid:/app/data"
env:
ENCRYPTION_KEY: "{{ POCKETID_ENCRYPTION_KEY }}"
APP_URL: "{{ POCKETID_APP_URL }}"
TRUST_PROXY: "{{ POCKETID_TRUST_PROXY }}"
PUID: "{{ PUID }}"

21
tasks/postgres.yml Normal file
View File

@@ -0,0 +1,21 @@
---
- name: Deploy Postgres
include_role:
name: docker
vars:
name: postgres
image:
name: postgres
tag: 18-alpine
published_ports:
- "5432:5432"
directories:
- "{{ data_dir }}/postgres"
- "{{ data_dir }}/postgres/data"
- "{{ data_dir }}/postgres/import"
volumes:
- "{{ data_dir }}/postgres/data:/var/lib/postgresql/18/docker"
- "{{ data_dir }}/postgres/import:/mnt/import"
env:
POSTGRES_USER: "{{ POSTGRES_USER }}"
POSTGRES_PASSWORD: "{{ POSTGRES_PASSWORD }}"

89
tasks/pterodactyl.yml Normal file
View File

@@ -0,0 +1,89 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/pterodactyl"
- "{{ data_dir }}/pterodactyl/var"
- "{{ data_dir }}/pterodactyl/logs"
- "{{ data_dir }}/pterodactyl/nginx"
- "{{ data_dir }}/pterodactyl/db"
- name: Create Pterodactyl Network
docker_network:
name: pterodactyl
- name: Pull latest MariaDB Docker Image
docker_image:
name: mariadb
tag: "10.5"
source: pull
- name: Pull latest Redis Docker image
docker_image:
name: redis
tag: 7-alpine
source: pull
- name: Pull latest Pterodactyl Docker image
docker_image:
name: ghcr.io/pterodactyl/panel
tag: latest
source: pull
- name: Create Redis Container
docker_container:
name: pterodactyl_redis
image: redis:7-alpine
recreate: true
restart_policy: unless-stopped
networks:
- name: pterodactyl
- name: Create Database Container
docker_container:
name: pterodactyl_db
image: mariadb:10.5
command: --default-authentication-plugin=mysql_native_password
recreate: true
restart_policy: unless-stopped
volumes:
- "{{ data_dir }}/pterodactyl/db:/var/lib/mysql"
networks:
- name: pterodactyl
env:
MYSQL_DATABASE: "panel"
MYSQL_USER: "pterodactyl"
MYSQL_ROOT_PASSWORD: "{{ PTERODACTYL_MYSQL_ROOT_PASSWORD }}"
MYSQL_PASSWORD: "{{ PTERODACTYL_MYSQL_PASSWORD }}"
- name: Create Pterodactyl Docker Container
docker_container:
name: pterodactyl
image: ghcr.io/pterodactyl/panel:latest
recreate: true
restart_policy: unless-stopped
networks:
- name: pterodactyl
- name: "{{ docker_network_name }}"
volumes:
- "{{ data_dir }}/pterodactyl/nginx:/etc/nginx/http.d"
- "{{ data_dir }}/pterodactyl/logs:/app/storage/logs"
- "{{ data_dir }}/pterodactyl/var:/app/var"
env:
APP_URL: "{{ PTERODACTYL_APP_URL }}"
APP_ENVIRONMENT_ONLY: "false"
APP_TIMEZONE: "{{ TZ }}"
DB_PASSWORD: "{{ PTERODACTYL_MYSQL_PASSWORD }}"
APP_ENV: "production"
CACHE_DRIVER: "redis"
SESSION_DRIVER: "redis"
QUEUE_DRIVER: "redis"
REDIS_HOST: "pterodactyl_redis"
DB_HOST: "pterodactyl_db"
TRUSTED_PROXIES: "*"
labels:
traefik.enable: "true"
traefik.http.routers.panel.rule: Host(`{{ PTERODACTYL_APP_URL }}`)
traefik.http.routers.panel.entrypoints: webSecure
traefik.http.routers.panel.tls.certresolver: letsencrypt
traefik.http.services.panel.loadbalancer.server.port: "80"

View File

@@ -1,52 +1,19 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/romm"
- "{{ data_dir }}/romm/igdb"
- "{{ data_dir }}/romm/assets"
- "{{ data_dir }}/romm/config"
- "{{ data_dir }}/romm/db"
- name: Pull latest Romm Docker Image
docker_image:
name: rommapp/romm
tag: latest
source: pull
- name: Create Romm DB Docker Container
docker_container:
name: romm-db
image: mariadb:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: romm
volumes:
- "{{ data_dir }}/romm/db:/var/lib/mysql"
env:
MARIADB_ROOT_PASSWORD: romm
MARIADB_DATABASE: romm
MARIADB_USER: romm-user
MARIADB_PASSWORD: romm
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
start_period: 30s
interval: 10s
timeout: 5s
retries: 5
- name: Create Romm Docker Container
docker_container:
- name: Deploy Romm
include_role:
name: docker
vars:
name: romm
image: rommapp/romm:latest
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/romm"
- "{{ data_dir }}/romm/igdb"
- "{{ data_dir }}/romm/assets"
- "{{ data_dir }}/romm/config"
networks:
- name: homelab
- name: romm
image:
name: rommapp/romm
tag: latest
volumes:
- "{{ data_dir }}/romm/igdb:/romm/resources"
- "{{ data_dir }}/romm/redis:/redis-data"
@@ -54,19 +21,19 @@
- "{{ data_dir }}/romm/config:/romm/config"
- "{{ ROMM_LIBRARY_PATH }}:/romm/library"
env:
DB_HOST: romm-db
DB_HOST: 172.16.0.44
DB_NAME: romm
DB_USER: romm-user
DB_USER: rommuser
DB_PASSWD: romm
AUTH_SECRET_KEY: "{{ ROMM_AUTH_SECRET_KEY }}"
ROMM_AUTH_SECRET_KEY: "{{ ROMM_AUTH_SECRET_KEY }}"
IGDB_CLIENT_ID: "{{ ROMM_IGDB_CLIENT_ID }}"
IGDB_CLIENT_SECRET: "{{ ROMM_IGDB_CLIENT_SECRET }}"
OIDC_ENABLED: "{{ ROMM_OIDC_ENABLED }}"
OIDC_PROVIDER: "{{ ROMM_OIDC_PROVIDER }}"
OIDC_CLIENT_ID: "{{ ROMM_OIDC_CLIENT_ID }}"
OIDC_CLIENT_SECRET: "{{ ROMM_OIDC_CLIENT_SECRET }}"
OIDC_REDIRECT_URL: "{{ ROMM_OIDC_REDIRECT_URL }}"
SERVER_APPLICATION_URL: "{{ ROMM_SERVER_APPLICATION_URL }}"
OIDC_REDIRECT_URI: "{{ ROMM_OIDC_REDIRECT_URL }}"
OIDC_SERVER_APPLICATION_URL: "{{ ROMM_SERVER_APPLICATION_URL }}"
labels:
traefik.enable: "true"
traefik.http.routers.emu.rule: Host(`emu.fntz.net`)

26
tasks/runner.yml Normal file
View File

@@ -0,0 +1,26 @@
---
- name: Create Gitea Runner Configuration
template:
src: templates/runner/gitea-runner.yaml.j2
dest: "{{ data_dir }}/gitea/config.yaml"
- name: Deploy Gitea Runner
include_role:
name: docker
vars:
name: gitea-runner
directories:
- "{{ data_dir }}/gitea"
image:
name: docker.io/gitea/act_runner
tag: nightly
network_mode: host
volumes:
- "{{ data_dir }}/gitea/config.yaml:/config.yaml"
- "/var/run/docker.sock:/var/run/docker.sock"
env:
CONFIG_FILE: "/config.yaml"
GITEA_INSTANCE_URL: "{{ GITEA_INSTANCE_URL }}"
GITEA_RUNNER_REGISTRATION_TOKEN: "{{ GITEA_RUNNER_REGISTRATION_TOKEN }}"
GITEA_RUNNER_NAME: "runner"
GITEA_RUNNER_LABELS: "runner:host"

62
tasks/scrobbling.yml Normal file
View File

@@ -0,0 +1,62 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/scrobbling"
- "{{ data_dir }}/scrobbling/koito"
- "{{ data_dir }}/scrobbling/multi-scrobbler"
- name: Create Scrobbler Configuration
template:
src: templates/scrobbling/lastfm.json.j2
dest: "{{ data_dir }}/scrobbling/multi-scrobbler/lastfm.json"
- name: Deploy Kotio
include_role:
name: docker
vars:
name: scrobbling_kotio
network_name: scrobbling
networks:
- name: scrobbling
- name: homelab
image:
name: gabehf/koito
tag: latest
env:
KOITO_DATABASE_URL: "postgres://koito:{{ KOTIO_DB_PASS }}@172.16.0.44:5432/koito"
KOITO_ALLOWED_HOSTS: koito.fntz.net
volumes:
- "{{ data_dir }}/scrobbling/koito:/etc/koito"
labels:
traefik.enable: "true"
traefik.http.routers.kotio.rule: Host(`koito.fntz.net`)
traefik.http.routers.kotio.entrypoints: webSecure
traefik.http.routers.kotio.tls.certresolver: letsencrypt
traefik.http.services.kotio.loadbalancer.server.port: "4110"
- name: Deploy Multi-Scrobbler
include_role:
name: docker
vars:
name: scrobbling_multi-scrobbler
image:
name: ghcr.io/foxxmd/multi-scrobbler
tag: latest
networks:
- name: scrobbling
- name: homelab
volumes:
- "{{ data_dir }}/scrobbling/multi-scrobbler:/config"
env:
KOITO_TOKEN: "{{ SCROBBLER_KOITO_TOKEN }}"
KOITO_USER: "{{ SCROBBLER_KOITO_USER }}"
KOITO_URL: "{{ SCROBBLER_KOITO_URL }}"
labels:
traefik.enable: "true"
traefik.http.routers.scrobbler.rule: Host(`scrobbler.fntz.net`)
traefik.http.routers.scrobbler.entrypoints: webSecure
traefik.http.routers.scrobbler.tls.certresolver: letsencrypt
traefik.http.services.scrobbler.loadbalancer.server.port: "9078"

View File

@@ -1,45 +1,26 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/servarr"
- "{{ data_dir }}/servarr/sonarr_config"
- "{{ data_dir }}/servarr/radarr_config"
- "{{ data_dir }}/servarr/lidarr_config"
- name: Pull latest Radarr Docker Image
docker_image:
name: lscr.io/linuxserver/radarr
tag: latest
source: pull
- name: Pull latest Sonarr Docker Image
docker_image:
name: lscr.io/linuxserver/sonarr
tag: latest
source: pull
- name: Pull latest Lidarr Docker Image
docker_image:
name: lscr.io/linuxserver/lidarr
tag: latest
source: pull
- name: Deploy Radarr Container
docker_container:
name: radarr
image: lscr.io/linuxserver/radarr:latest
restart_policy: unless-stopped
recreate: true
- name: Deploy Radarr
include_role:
name: docker
vars:
name: servarr_radarr
directories:
- "{{ data_dir }}/servarr"
- "{{ data_dir }}/servarr/sonarr_config"
- "{{ data_dir }}/servarr/radarr_config"
- "{{ data_dir }}/servarr/lidarr_config"
image:
name: lscr.io/linuxserver/radarr
tag: latest
volumes:
- "{{ data_dir }}/servarr/radarr_config:/config"
- "{{ SERVARR_MEDIA_PATH }}:/media"
- "{{ NZBGET_DOWNLOADS_PATH }}:/downloads"
- "{{ media_path }}:/media"
- "{{ media_path }}/Downloads:/downloads"
networks:
- name: homelab
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
PUID: "1000"
PGID: "1000"
TZ: "{{ TZ }}"
labels:
traefik.enable: "true"
@@ -48,19 +29,21 @@
traefik.http.routers.radarr.tls.certresolver: letsencrypt
traefik.http.services.radarr.loadbalancer.server.port: "7878"
- name: Deploy Sonarr Container
docker_container:
name: sonarr
image: lscr.io/linuxserver/sonarr:latest
restart_policy: unless-stopped
recreate: true
- name: Deploy Sonarr
include_role:
name: docker
vars:
name: servarr_sonarr
image:
name: lscr.io/linuxserver/sonarr
tag: latest
volumes:
- "{{ data_dir }}/servarr/sonarr_config:/config"
- "{{ SERVARR_MEDIA_PATH }}:/data"
- "{{ NZBGET_DOWNLOADS_PATH }}:/downloads"
- "{{ media_path }}:/data"
- "{{ media_path }}/Downloads:/downloads"
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
PUID: "1000"
PGID: "1000"
TZ: "{{ TZ }}"
networks:
- name: homelab
@@ -70,26 +53,3 @@
traefik.http.routers.sonarr.entrypoints: webSecure
traefik.http.routers.sonarr.tls.certresolver: letsencrypt
traefik.http.services.sonarr.loadbalancer.server.port: "8989"
- name: Deploy Lidarr Container
docker_container:
name: lidarr
image: lscr.io/linuxserver/lidarr:latest
restart_policy: unless-stopped
recreate: true
env:
PUID: "{{ PUID }}"
PGID: "{{ PGID }}"
TZ: "{{ TZ }}"
volumes:
- "{{ data_dir }}/servarr/lidarr_config:/config"
- "{{ SERVARR_MEDIA_PATH }}:/media"
- "{{ NZBGET_DOWNLOADS_PATH }}:/downloads"
networks:
- name: homelab
labels:
traefik.enable: "true"
traefik.http.routers.lidarr.rule: Host(`lidarr.fntz.net`)
traefik.http.routers.lidarr.entrypoints: webSecure
traefik.http.routers.lidarr.tls.certresolver: letsencrypt
traefik.http.services.lidarr.loadbalancer.server.port: "8686"

View File

@@ -1,34 +1,20 @@
---
- name: "Create file structure"
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/storage-api"
- "{{ data_dir }}/storage-api/app"
- "{{ data_dir }}/storage-api/files"
- name: "Clone latest Storage API"
git:
repo: git@git.alexav.gg:alex/storage-api.git
dest: "{{ data_dir }}/storage-api/app"
- name: "Build Storage API Docker Image"
docker_image:
- name: Deploy Storage API
include_role:
name: docker
vars:
name: storage-api
tag: "latest"
directories:
- "{{ data_dir }}/storage-api"
- "{{ data_dir }}/storage-api/app"
- "{{ data_dir }}/storage-api/files"
image:
name: storage-api
tag: latest
build:
path: "{{ data_dir }}/storage-api/app"
dockerfile: Dockerfile
source: build
state: present
- name: Deploy Storage API Container
docker_container:
name: storage_api
image: storage-api:latest
recreate: true
restart_policy: unless-stopped
git:
repo: git@git.alexav.gg:alex/storage-api.git
dest: "{{ data_dir }}/storage-api/app"
networks:
- name: "{{ docker_network_name }}"
volumes:

View File

@@ -1,23 +1,14 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/tautulli"
- name: Pull latest Tautulli Docker Image
docker_image:
name: ghcr.io/tautulli/tautulli
tag: latest
source: pull
- name: Create Tautulli Docker Container
docker_container:
- name: Deploy Tautulli
include_role:
name: docker
vars:
name: tautulli
image: ghcr.io/tautulli/tautulli
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/tautulli"
image:
name: ghcr.io/tautulli/tautulli
tag: latest
networks:
- name: homelab
volumes:

View File

@@ -1,35 +1,34 @@
---
- name: Pull latest Tinyauth Docker Image
docker_image:
name: ghcr.io/steveiliop56/tinyauth
tag: v3
source: pull
- name: Create Tinyauth Docker Container
docker_container:
- name: Deploy Tinyauth
include_role:
name: docker
vars:
name: tinyauth
image: ghcr.io/steveiliop56/tinyauth:v3
restart_policy: unless-stopped
recreate: true
image:
name: ghcr.io/steveiliop56/tinyauth
tag: v4
networks:
- name: homelab
- name: "{{ docker_network_name }}"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
env:
USERS: "{{ TINYAUTH_USERS }}"
SECRET: "{{ TINYAUTH_SECRET }}"
APP_URL: "{{ TINYAUTH_APP_URL }}"
GENERIC_CLIENT_ID: "{{ TINYAUTH_GENERIC_CLIENT_ID }}"
GENERIC_CLIENT_SECRET: "{{ TINYAUTH_GENERIC_CLIENT_SECRET }}"
GENERIC_AUTH_URL: "{{ TINYAUTH_GENERIC_AUTH_URL }}"
GENERIC_TOKEN_URL: "{{ TINYAUTH_GENERIC_TOKEN_URL }}"
GENERIC_USER_URL: "{{ TINYAUTH_GENERIC_USER_URL }}"
GENERIC_SCOPES: "{{ TINYAUTH_GENERIC_SCOPES }}"
GENERIC_NAME: "{{ TINYAUTH_GENERIC_NAME }}"
PROVIDERS_POCKETID_CLIENT_ID: "{{ TINYAUTH_GENERIC_CLIENT_ID }}"
PROVIDERS_POCKETID_CLIENT_SECRET: "{{ TINYAUTH_GENERIC_CLIENT_SECRET }}"
PROVIDERS_POCKETID_AUTH_URL: "{{ TINYAUTH_GENERIC_AUTH_URL }}"
PROVIDERS_POCKETID_TOKEN_URL: "{{ TINYAUTH_GENERIC_TOKEN_URL }}"
PROVIDERS_POCKETID_USER_INFO_URL: "{{ TINYAUTH_GENERIC_USER_URL }}"
PROVIDERS_POCKETID_SCOPES: "{{ TINYAUTH_GENERIC_SCOPES }}"
PROVIDERS_POCKETID_NAME: "{{ TINYAUTH_GENERIC_NAME }}"
PROVIDERS_POCKETID_REDIRECT_URL: "{{ TINYAUTH_REDIRECT_URL }}"
OAUTH_WHITELIST: "{{ TINYAUTH_OAUTH_WHITELIST }}"
APP_TITLE: "{{ TINYAUTH_APP_TITLE }}"
BACKGROUND_IMAGE: "{{ TINYAUTH_BACKGROUND_IMAGE }}"
labels:
traefik.enable: "true"
traefik.http.routers.tinyauth.rule: Host(`auth.fntz.net`)
traefik.http.routers.tinyauth.rule: Host(`{{ TINYAUTH_HOSTNAME }}`)
traefik.http.routers.tinyauth.entrypoints: webSecure
traefik.http.routers.tinyauth.tls.certresolver: letsencrypt
traefik.http.middlewares.tinyauth.forwardauth.address: http://tinyauth:3000/api/auth/traefik

View File

@@ -1,23 +1,14 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/uptime-kuma"
- name: Pull latest Uptime Kuma Docker Image
docker_image:
name: louislam/uptime-kuma
tag: latest
source: pull
- name: Create Uptime Kuma Docker Container
docker_container:
- name: Deploy Uptime Kuma
include_role:
name: docker
vars:
name: uptime-kuma
image: louislam/uptime-kuma
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/uptime-kuma"
image:
name: louislam/uptime-kuma
tag: latest
networks:
- name: homelab
volumes:

View File

@@ -1,23 +1,14 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/vaultwarden"
- name: Pull latest Vaultwarden Docker Image
docker_image:
name: vaultwarden/server
tag: latest
source: pull
- name: Create Vaultwarden Docker Container
docker_container:
- name: Deploy Vaultwarden
include_role:
name: docker
vars:
name: vaultwarden
image: vaultwarden/server:latest
restart_policy: unless-stopped
recreate: true
directories:
- "{{ data_dir }}/vaultwarden"
image:
name: vaultwarden/server
tag: latest
networks:
- name: homelab
volumes:

51
tasks/wings.yml Normal file
View File

@@ -0,0 +1,51 @@
---
- name: Create folder structure
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_dir }}/wings"
- "{{ data_dir }}/wings/lib"
- name: Pull latest Wings Docker image
docker_image:
name: ghcr.io/pterodactyl/wings
tag: latest
source: pull
- name: Create Wings Network
docker_network:
name: wings
driver: bridge
ipam_config:
- subnet: "172.55.0.0/16"
- name: Create Wings Docker Container
docker_container:
name: pterodactyl_wings
image: ghcr.io/pterodactyl/wings:latest
recreate: true
restart_policy: unless-stopped
networks:
- name: wings
- name: "{{ docker_network_name }}"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "/etc/pterodactyl:/etc/pterodactyl"
- "{{ data_dir }}/wings/lib:{{ data_dir }}/wings/lib"
- "{{ WINGS_CONTAINER_DIR }}:{{ WINGS_CONTAINER_DIR }}"
- "/var/log/pterodactyl:/var/log/pterodactyl"
- "/tmp/pterodactyl:/tmp/pterodactyl"
env:
TZ: "{{ TZ }}"
WINGS_UID: "988"
WINGS_GID: "988"
WINGS_USERNAME: pterodactyl
published_ports:
- "2022:2022"
labels:
traefik.enable: "true"
traefik.http.routers.wings.rule: Host(`{{ WINGS_URL }}`)
traefik.http.routers.wings.entrypoints: webSecure
traefik.http.routers.wings.tls.certresolver: letsencrypt
traefik.http.services.wings.loadbalancer.server.port: "8080"

View File

@@ -0,0 +1,29 @@
auth_enabled: false
server:
http_listen_port: 3100
common:
path_prefix: /loki
storage:
filesystem:
chunks_directory: /loki/chunks
rules_directory: /loki/rules
replication_factor: 1
ring:
kvstore:
store: inmemory
schema_config:
configs:
- from: 2020-10-24
store: tsdb
object_store: filesystem
schema: v13
index:
prefix: index_
period: 24h
storage_config:
filesystem:
directory: /loki/chunks

View File

@@ -0,0 +1,14 @@
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: "prometheus"
static_configs:
- targets: ["monitoring_prometheus:9090"]
- job_name: "node-exporter"
static_configs:
- targets: ["172.16.0.44:9100"]
- job_name: "cadvisor"
static_configs:
- targets: ["monitoring_cadvisor:8080"]

View File

@@ -0,0 +1,63 @@
server:
http_listen_port: 9080
positions:
filename: /tmp/positions.yaml
clients:
- url: http://monitoring_loki:3100/loki/api/v1/push
scrape_configs:
- job_name: docker
docker_sd_configs:
- host: unix:///var/run/docker.sock
refresh_interval: 5s
relabel_configs:
# Keep only running containers
- source_labels: ['__meta_docker_container_id']
target_label: container_id
# Container name (strips leading slash)
- source_labels: ['__meta_docker_container_name']
regex: '/(.+)'
target_label: container_name
# Compose project name
- source_labels: ['__meta_docker_container_label_com_docker_compose_project']
target_label: compose_project
# Compose service name
- source_labels: ['__meta_docker_container_label_com_docker_compose_service']
target_label: compose_service
# Image name
- source_labels: ['__meta_docker_container_image']
target_label: image
# Custom labels - grab any label starting with "logging."
# e.g. logging.env=production becomes env=production
- regex: '__meta_docker_container_label_logging_(.+)'
action: labelmap
replacement: '$1'
# Drop containers with logging=disabled label
- source_labels: ['__meta_docker_container_label_logging']
regex: 'disabled'
action: drop
pipeline_stages:
# Docker JSON log format parsing
- json:
expressions:
output: log
stream: stream
timestamp: time
# Use Docker's timestamp
- timestamp:
source: timestamp
format: RFC3339Nano
# Output just the log line
- output:
source: output

View File

@@ -0,0 +1,14 @@
{
admin off
servers {
trusted_proxies static private_ranges
}
}
:80 {
root * /var/www/html/public
encode gzip
php_fastcgi 127.0.0.1:9000
file_server
}

View File

@@ -0,0 +1,23 @@
log:
level: info
runner:
file: .runner
capacity: 1
timeout: 3h
shutdown_timeout: 0s
insecure: false
fetch_timeout: 5s
fetch_interval: 2s
labels:
- "ubuntu-latest:docker://catthehacker/ubuntu:act-latest"
- "ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04"
- "ansible:docker://git.alexav.gg/alex/setup-ansible:latest"
container:
network: "host"
privileged: true
force_pull: true
force_rebuild: false
require_docker: false
docker_timeout: 0s

View File

@@ -0,0 +1,12 @@
[
{
"name": "lastFm",
"enable": true,
"configureAs": "source",
"data": {
"apiKey": "{{ SCROBBLER_LASTFM_TOKEN }}",
"secret": "{{ SCROBBLER_LASTFM_SECRET }}",
"redirectUri": "https://scrobbler.fntz.net/lastfm/callback"
}
}
]