Compare commits
69 Commits
template-e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
9d643b8eb1
|
|||
|
61474c72fc
|
|||
|
581be1e7ca
|
|||
|
845291b499
|
|||
|
a00f93c2df
|
|||
|
7b384c6358
|
|||
|
a04a4ebded
|
|||
|
7a828308d4
|
|||
|
8cd245121d
|
|||
|
04ee0f97e7
|
|||
|
71b1939f98
|
|||
|
c653c2ac43
|
|||
|
75fd16c532
|
|||
|
9634a94cd4
|
|||
|
a5fcd5463e
|
|||
|
7e5ebad8c6
|
|||
|
6c2f523779
|
|||
|
9ebe5268f9
|
|||
|
fcc42b9b7c
|
|||
|
83268558ae
|
|||
|
a11bd28c4e
|
|||
|
62e149632e
|
|||
|
018a212ad1
|
|||
|
6474804095
|
|||
|
5cdfe44d6c
|
|||
|
008cd10523
|
|||
|
9472336a4b
|
|||
|
16b6d9467d
|
|||
|
4d54e0b5d1
|
|||
|
ff54cc17c1
|
|||
|
f48d7b1d4c
|
|||
|
7f1afe75b0
|
|||
|
c1d083d51c
|
|||
|
8c6f545195
|
|||
| 2ab47a4085 | |||
| 4808bafb15 | |||
|
7806dbb7ef
|
|||
|
610c62b75a
|
|||
|
60ef84f37d
|
|||
|
993fd8eee7
|
|||
|
a32a59ca0a
|
|||
|
909631952b
|
|||
|
5995621767
|
|||
|
77504eeffd
|
|||
|
078cb8edff
|
|||
|
023b48ace0
|
|||
|
20362a069a
|
|||
|
4c878661e8
|
|||
|
fb19e9eefe
|
|||
|
9c32a10144
|
|||
|
18d632e4ce
|
|||
|
ea30d599a9
|
|||
|
390a571fa4
|
|||
|
70fa7c77a8
|
|||
|
1b1d0181c7
|
|||
|
7724c47528
|
|||
|
2ed283ae54
|
|||
|
f5a2b4c6c8
|
|||
|
f6b850574d
|
|||
|
5ea7ad74cd
|
|||
|
2897d67957
|
|||
|
681a876dae
|
|||
|
a19de4c6a5
|
|||
|
5efa6934e3
|
|||
|
183fb0f237
|
|||
|
4805cca2ce
|
|||
|
30cb6e8786
|
|||
|
a8e6ec48a6
|
|||
|
50c6c57372
|
@@ -4,6 +4,8 @@ docker_network_name:
|
|||||||
TZ:
|
TZ:
|
||||||
PUID:
|
PUID:
|
||||||
PGID:
|
PGID:
|
||||||
|
ansible_become_pass:
|
||||||
|
media_path:
|
||||||
|
|
||||||
# api
|
# api
|
||||||
API_CONTACT_WEBHOOK:
|
API_CONTACT_WEBHOOK:
|
||||||
@@ -52,14 +54,6 @@ MASTODON_ARE_PRIMARY:
|
|||||||
# wings
|
# wings
|
||||||
WINGS_URL:
|
WINGS_URL:
|
||||||
WINGS_CONTAINER_DIR:
|
WINGS_CONTAINER_DIR:
|
||||||
media_path:
|
|
||||||
|
|
||||||
# frigate
|
|
||||||
FRIGATE_RECORDINGS_PATH:
|
|
||||||
|
|
||||||
# plex
|
|
||||||
PLEX_CLAIM_TOKEN:
|
|
||||||
ansible_become_pass:
|
|
||||||
|
|
||||||
# glance
|
# glance
|
||||||
GLANCE_PIHOLE_TOKEN:
|
GLANCE_PIHOLE_TOKEN:
|
||||||
@@ -174,3 +168,9 @@ HELIUM_EXT_HMAC_SECRET:
|
|||||||
PTERODACTYL_APP_URL:
|
PTERODACTYL_APP_URL:
|
||||||
PTERODACTYL_MYSQL_PASSWORD:
|
PTERODACTYL_MYSQL_PASSWORD:
|
||||||
PTERODACTYL_MYSQL_ROOT_PASSWORD:
|
PTERODACTYL_MYSQL_ROOT_PASSWORD:
|
||||||
|
|
||||||
|
# frigate
|
||||||
|
FRIGATE_RECORDINGS_PATH:
|
||||||
|
|
||||||
|
# plex
|
||||||
|
PLEX_CLAIM_TOKEN:
|
||||||
|
|||||||
20
host_vars/ash-1.yml
Normal file
20
host_vars/ash-1.yml
Normal 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
|
||||||
@@ -1,113 +1,150 @@
|
|||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
38663262326664303464653331306266333862363635643761346638366633666563303035346662
|
37643962356232333837626335333837656531656363366365306436653930373333393939653239
|
||||||
6230313164666332623438636464313435323532393636650a333039326661383864373838333634
|
6464373031336361323535383731396538323539646335610a396166353437663437633034323663
|
||||||
34653135643737393966353932343066653166653339313939666161363735636634643466363036
|
38633966666230653963613661623333373430346135613039656531643664363531383266653463
|
||||||
3630633764646438650a393562343335316363616564383733363233343463356633353837353138
|
3431613963653938640a363637613966323132303039313037653962623438656139386631363233
|
||||||
65376435343730626466393062656233326330303565376639386332306265306266356634383830
|
34346561653037326566636138626664666461346433323230663235626265363235626364373532
|
||||||
32613432386561346634633334666365323061313833396364313465326664353064653237623136
|
61366533623135653134383064396366356164393666333763333532386163343532333032353334
|
||||||
31343762383838316161306565323432643630343537346166616666353738343034346233313266
|
30626635323565313735353964316139653835303631623738653033396561663839653237656635
|
||||||
62353933323432343564303633636532396439643937306366313333626430313639653162333364
|
31616663323164383365333837623537313332363065383430653138373062633335633834373161
|
||||||
36646463353964323139613339326462666334376132633834313537653761333832333436663738
|
32653230313839326165623563363161353934326264313461303966393833663465386265333233
|
||||||
35393939326530353064633333323139356234643031653130633665303434313365663238643434
|
33363038336562386238303366353261366233646438353439323064386264373832663534336331
|
||||||
31663630313036343939646631326239343361653238646636363234353062346534363039373637
|
32396264346662653661356665396539633633336631653738313131663639303662383463356339
|
||||||
31313562666133343732626438353062663863336638323037373361616665613831616165393835
|
61343131666536316636626432633266643139393639306239626662333335646164633738616363
|
||||||
32336334393739666366623933626265643964663831336337343632643732383264623534383964
|
31393964666438613161366665643036346562376139376362356636626462626431643331656634
|
||||||
34313030336339613934303637363964653064653231666139353836653734626338333331383961
|
35646237663931646264306433323737316434646331646363303165633938646437656137323337
|
||||||
39646331623636613332393663663135363139653663383764333433316430313136356433326235
|
63613131396364623234333433626336386630333461306232623632343630616163616161643734
|
||||||
35303962646463323534623263623730313166643232303566343135323537386635396165383539
|
38353036373134623934633337323335653438333163303539643239666164666435343134643035
|
||||||
64393165623466633936393232363730313233656139383935343561343236343763623232343736
|
38653166646632376161323065393463656566613434353962333265636135653939366135393263
|
||||||
39383765633662653434383965646461663730373864326561343265663838643339616539396364
|
64663737313166326238646138663330653334623930373035633262383334656631663236316363
|
||||||
38313566343836363530613336326262373736643566323866386565346363363333636262613331
|
31363134316462373637643833343030393536313335316261323332656363363032316631613236
|
||||||
38613065333465363931623462653732626633316638626632353338373636383835653165336666
|
62653034356539646165633335393665616237633030376462313234623035633662383739613662
|
||||||
62646133383639663934656332613666663031623530336362633234633534363738363664623236
|
34366364366636393264353737333832343035356664386239326332333138626662613962666462
|
||||||
62316332363432346534353336343561303066633965373130626664343935393833663363393062
|
37323463653435373864303934633336396566633066313239663364656638646234623236646436
|
||||||
30333739626636323839623663393666393239663562653333383066303130363638366566666532
|
65613632623566646330396130373639306161653264663161336531663939633739313663356231
|
||||||
65346361636537393335393330313635336665636638366530346335313761323035623666623734
|
36343765343862323864356166303630333538383433326436356136666164393861646661623139
|
||||||
30396531383064376661363363323161353132356164636132343531336337613837613931656136
|
34343731623562303135613035303730656565316532663030616463396330663839313961633035
|
||||||
64303034626261643635356165636463326565653035316335353730396431663261363333656265
|
32326635356232383638653834386632316235613332323861613739383335313066383739613263
|
||||||
38626664636637623866343138303131643462366639336237363566386235656438343138666237
|
31373537643630623866303333313735356633633162343365316337376366353734326363623063
|
||||||
61653164376663326663646631393666386630666531666465373433393734653737343765363964
|
65346365613936356332373063336338323438613366643634326136376238383830316635626231
|
||||||
64313337336539336664303262343333623161646135633039376637653932626432333533356532
|
66353966393539666434376436616162633462623636326139653461386432366464303334376237
|
||||||
35306561323464623762336432366530343661363037383939383035653237353466336531653434
|
30393331633431353532373463663933646262646433666565313663643964333765396633336134
|
||||||
36383530633661616564333230363633383665376139353836643334646262323938643139663138
|
33636166623337323061336563363131663461643633393930333339613865303466356465353231
|
||||||
33653766666233393332333134386631316535643163323362356539633932323738353636393164
|
31356630376664616232333633306636326130633638303539643633656266343634353733373633
|
||||||
66646466613864633631656565303038613639633534306438303731356232663332316633623361
|
36366266646632653964333537643865303535643265326537373366356361373765636136386439
|
||||||
39303262353565383636616131333032306531646566313066373231313730386331633435336133
|
66383734346566333931646363353633323765633461326633626333393439633166313635316436
|
||||||
30626564643965303131666234663630653237373566653633343662623864393138353265646333
|
31616436633231396164663233653961613630616463313261616533666437643232373562316634
|
||||||
34336338356163323139616234323137366365656662633931666534303439326636333562366530
|
34366164383639313134383134383962633964356162646631353064353264363932376661623534
|
||||||
35363266633334616463623635666632386338653432653832326636336337626437643061623638
|
65313363353363623831623265393463623066303234663733333432343231383937323136376339
|
||||||
61646561666162616330623333346230613965316461383034333734383763383635396433373335
|
35656539343531313936313137646133356666316630376534366534663335656164363737383963
|
||||||
37653362636132313139316336356264373763333361333630366535336339623166306663623433
|
33353530373935353230366166343364646335633236333766613665383930366437353763613339
|
||||||
63333338613261633163613865303962383238383963353530633136623362313561316533343737
|
61653161653165373965373434333138383638613734616166323133346466656636643163303566
|
||||||
66336231323763353964376339613531613939336238656364353536346436663464636637303337
|
35653331376464323331323337656630323639656434333364366230653432333537636566643261
|
||||||
39313066613164656431383162326562353036613165613635346639656233626439623939393663
|
30623632656338366266383962663864373863623438363830376361376134303436373465636632
|
||||||
66306136656236663766643738303738616230626534333132666331316439363136326264386635
|
38643263663437316333383431366365303437633264383239353438326631373133376539383638
|
||||||
64616337613639306536373366366235633766613033313464353538376363663239333930363139
|
32643666633965396666343239636361323635336338386438313065383263653063393436326434
|
||||||
37666231626334373132363863346232623866353032626138353838333764633738386166666265
|
31366636633436303835326639663830356466356432656134376161646632323134356230323364
|
||||||
38393461633832306465633130343634323763346464643262653330356337353534636566353935
|
65393663323138633638343638626434656466623563653939663665303161616631306337616537
|
||||||
36333936343130653861303432626135383438653134326162613833336261613839376161616136
|
64613365363966653964626138303935643835383763316634663561656432383436336135656131
|
||||||
31666436353361303438303735623139613063333162303566623431373031646434643766363335
|
38653962306530343933663038353738306261336463623635323861623937386463306363666338
|
||||||
32363835376438613163666330333732353432396661666632663633393965396531653830333737
|
30353462656135396135633037376561636133643834633966306365623938366238383439656531
|
||||||
63356238613537643033643765616561666163386364376236353031656465333661333830626230
|
63323534626364393761313835386636353335616166666131646136643839636439633161616331
|
||||||
32346431633464636663366364643239386135396235336663626335383663373761383165646262
|
38643264313433366335326563613339356161383663623864656434376532363966646434326633
|
||||||
37313330376336373462623266343632393637663066313531646333666531653132633164353266
|
31393163353163343139333039336631363839343631376463623866656132306161666537666364
|
||||||
37636238623637363166323731653739373764343965626530333834366233323435646339636233
|
62663033663838383134643339616631396637383565633930376262333263396463356133323831
|
||||||
39626164653331643036386130663539663532643232333338656661333130376537333261346135
|
66663866646536653064343663343938346332323863356430323430623538386136636237366436
|
||||||
34373565643535616333326333383231346162383032636132333166376163373761306337643235
|
39663237383364326164373263386435646434303736303931366134373964653566623135363532
|
||||||
61636363323761366236326139373763306561383331303563333461386130353039333862336363
|
61366464393032653031386636316661306565313036366562616233393064396432653636363434
|
||||||
65323532623538346638333036316430303130316366376632623133643933393466353162643335
|
32396335353233313435643032313065373465373635333134373635316664656162666262396430
|
||||||
37383836323631393664636262333839323336353835663138653061623037636262333432613131
|
34383933323731326238626234653266636563623661343437643263346365626465643833656564
|
||||||
62303162646133376263306361663161636131323030396164313435356164386239393032633061
|
66363130353931393861363731646430373937316265646633613531306563396431373737633562
|
||||||
33346438373036306365363935626539653930386638383265373733386366663036393637656264
|
33653137393761656339333034366436346534663338616562616636643762613462346232626161
|
||||||
61303235326462626630366335373561313730613163623339333630313561663636353366393564
|
64616436343663646233653138613230353432316435616333313236326162633239653964393562
|
||||||
33303861623038623135346164376636323661373431653962363332653766663438323664376561
|
66306230663038366230633262393936343435383864623238353935393061326661363132386561
|
||||||
65313835386464616361306438316434656331653632346330333131626536323064386664633430
|
35666163323332333637323363333534626330343831303132326231393630633539366635396630
|
||||||
63353062336630663935353838316366316138323037383566613166336138306262313766383630
|
32636162616330326237386332636339336237326266663761643933636365613030643539323635
|
||||||
66336163666262636435326231326437336333666265663434316635313430623437306230646534
|
64653664313337623438383131343430373038303333663330666333616533626437333433656530
|
||||||
33643039376230643163303562376261316163626436626363316234396263633864376331353230
|
33346461366231343763346165663432376233623963613265393033373832623736356635623238
|
||||||
66656531646366633163336636343665393838666166643966306636363462666361303839656433
|
30323230326331316537346133386630326135383534303636396639383437373764623835306635
|
||||||
37353061656162653336363333343631633865636566646534306231353064643336383365376335
|
63643836333334666231653164646566663063333361396431346665336236613164633566623732
|
||||||
66396339376666623561393731633462643330363331623934643935303563393463346563373964
|
37626561366636356538626533663134316362616464356438313333633134343433613033323035
|
||||||
63623063376365646663386431653533373739343962656236356461383930373366383163666432
|
64396538383833313461383136666163663262666261386664323533633938323439643036383737
|
||||||
65353664363565646235393134316562643230383962636136633866376534326165343864383736
|
33313330663833376463653439376639336534313833336161333336633965616366386433373237
|
||||||
62306333386636306330373562336137386338303836303365353834303239336464613966313638
|
61343661353166653362363830643935366662653330646431323665306239303435653864313664
|
||||||
38333437313635653866396435656239313535376461623663343663333466393136313936353831
|
31333332363335323563353835373938313031663037343861613232363436616138633336623730
|
||||||
66646465663632323866376330316266343033646466316564613261656666313634663735616535
|
33343630326461616635333265333430613433323362373134626538366139333530306235303736
|
||||||
37393664613033346234633163373965393763356661636437626263326666643934653931393931
|
32346537316163313766366663373438653233303031333136393835636631313932393631323138
|
||||||
66373338636463393536633231663564386561313231323463343638383630396362336239333437
|
37663534353032626262393965393232616431323661663030303062383066613564313335643631
|
||||||
39343635663830313234316538636131653765616636613631353432646163376338346565383038
|
34633365383564623034663537643832623836393936303765363065373734333031383162323330
|
||||||
39306631646563636130643530353865393337373066336666353732633161383933626635623735
|
65336239386664633936616433653833386336386131393962666537653235363638323465626431
|
||||||
63623736613538396635306633393030613434373433663563643065613935376230363935343563
|
34366138323835343830303832386539323362653761616366336435643832366438333331613331
|
||||||
31316639333664303361626661353034396138623864373164383362356666633763323333363936
|
65366264613262366438316266353763326434353565653861343234396638616464346466373531
|
||||||
32366635633162376436393738663535313338363665383566656634323932303834656639363566
|
33323961633461363135653537306461373532636166376333363737353038653236643462346362
|
||||||
33663637643866333535646662643339383339353934383738343138323466313130666563633433
|
62366631613966373636666665383165313763626430346266306163323137316531306532613232
|
||||||
61383033616338646665323166623461366635636666326365326666393739303963353365636662
|
32393564353531316464656162356139613237323139613337666532346537646365613464353739
|
||||||
64653132376239636630396430346462626136323734353631356238303838663563643433643833
|
33393962346465623863646333663037663361326236353063663962643461663838316566653434
|
||||||
34656635373431623639653062386562623539303938336334303238666565363137613638626339
|
37303064396230353664396539643231653664353230643733336439616537633339313535363662
|
||||||
61666439303339323061326337623435383662613761336165336361343762373935626131383135
|
37356137336139326161386532383230653931303230366534383439343232383337313065383964
|
||||||
39633562353339363936646263313763326366623833333530373032393537373539386636616532
|
36623563643530396364336435646338656538663432396462306538396565356664383330623238
|
||||||
34663963646234356136653261386138356638393335626365333263396232613361306239323439
|
38383930353762623637313139656439393662636237383633623236626438663132366562353261
|
||||||
61663937646561336637313831373730316635383564346536663533656130323863393566386261
|
63643736376262333336393165373534393835383836386461376563396133623231343434363237
|
||||||
37343563333035333233666362653765333037353636646265366235316163646430616635336534
|
66383036303233366365386266333366316236353533303331633663623161656532323535386137
|
||||||
63663330303535663237373466666162356236613137623663343262626431316363356439643734
|
62333039646462323638346632373137393035343064303562643033346462363938363265363063
|
||||||
33646537383963316336353132366639306136353566313038363366666261313730303837643434
|
64306238633563613535313464663238343861333166353730303831313836633662306432663131
|
||||||
35663638616333346365313939303636656361363634373837383965373932663565666434383636
|
31626534333364643832333539643663353763323639633565373639353131613463613737656434
|
||||||
65333138666466356334353837303838303831353063333336393335343033373539383662363832
|
62386134326438393565646562636333386639353430316637386361386161386165306665343932
|
||||||
31303834366531393436303834316139663533333836376136326364383333393164656164353630
|
66396363383830336266643130656665653330323334666363346539343462353963373264656530
|
||||||
64646535363231303137303732643863616237666562363763363265326131356361333961356133
|
66623166633439356638343837353764366364313764303937663134373434343066373537633266
|
||||||
63396638636330393938613839383061616166373865316536323835363565613937363161323631
|
31353865343465636561336538346137303130356132316232353533373837616563626633643138
|
||||||
39343865393861373136383763646438616537373866663466303165616461373365656130613661
|
32303136383765303637343561336265623634643334333930653639633964383564386338373037
|
||||||
38663734376639623966633239376134386239383638653730643439656333326532303535373735
|
32303930623839343064353432306566303533646239633335343464333434323664636435306431
|
||||||
63663233663963333661643734316337323263666531373665343561396631396563306161373964
|
65653837353036303735333830383438653530386331343961623339616664653530616236393562
|
||||||
62653236366136353463363735376434343061643732636533636634653363386336303034393266
|
35353764323334306265393331303837656536613636663166393336356637383165393365383665
|
||||||
34616263376537383230653263323962366164643939646366653635663735373939633532323138
|
33346337346566393066636464366333366538376161353336366232353063376562356239616362
|
||||||
64393637326131666262316639353337666632646662663935393037303335353762326163353931
|
37653630396636303933613161316561353532663965363465633636666364333234376638373734
|
||||||
34663535363232383232356635633963626637333132366337356537313964616434323261653936
|
63303635353365303536393534303861383761616638633635633732383137373537333933656238
|
||||||
35316462373631626438343538363533393964333463666566323135643165633863633331653765
|
30613564363832323164376231333131353132626439663866373432343563343632613163353237
|
||||||
36373861386232303739636438653735396538623336366236353238643065353732643136333561
|
30333332663935396137613633626634363063333364613336343166376236373939303032616662
|
||||||
37663336636138306335356630313231373732333936656231626537376564313064653433313337
|
39346366333261383636303438336237356563316333636234356639663731653334363935316337
|
||||||
62343763343036636432613534346461386532626139346164633738346361653634353636623831
|
62643736666365623063616636613266346630363365386161346339373164356165653461636232
|
||||||
31626566336234656661303466623364626261356331623235306265333937316539333539373133
|
63313162616366316331353532383338373430623832613935303430346164613936303335633936
|
||||||
38373532353734653337313834323037656431666362333333666237386334373063653530623831
|
31303136643735613635303735633835626262363637326231323161363031373564396266633465
|
||||||
66343065303761303035346664653761376335363334373166393861373236666565373131303539
|
30343464363439653162623737643363376234663162636262653534316638343361303664653239
|
||||||
32373431613532643236
|
35663763323761353035633334343038363066373365316463303766353266356165313265366663
|
||||||
|
66346433316534373938653261623930303633633630366664643761363237643831373238626133
|
||||||
|
62306661616439346438663532363232356638313134663737343066373736333164646432303631
|
||||||
|
35393837383665343336653766616263643563666165616631353836333565323165656264316332
|
||||||
|
36353961626637353939633539326137323461376632653435353665613832366530646265313130
|
||||||
|
62316366316566386666363964303538613935323936633461383231376161373632306434623962
|
||||||
|
32316332363364363366373739353838353236643334366236336565303633306266396432353961
|
||||||
|
64343863376337396134656132653431653764646466636165613936333838613132396636643932
|
||||||
|
33383236333034393165376532346566646238323661323561623030303238353439626333343663
|
||||||
|
38323733663538643666386537643533303031346264633138306439636236323336656336613766
|
||||||
|
35653433343932386237636633373635633265366163346439373733663338313662313038343063
|
||||||
|
38316164363433373964376463636162616464646462393534343734353861306630393330303531
|
||||||
|
36353263346432323666353463376430333166613466303435363666346164656232643430303363
|
||||||
|
35656237666564656264366632666464326530666637613764323762303964643138346433326233
|
||||||
|
38346230656164653530386436653461396563373938626537303563623136313033316135326161
|
||||||
|
62346139633462666661396639346464623532376535623239366333333038393330373838386532
|
||||||
|
36666265653331313130323662383933333034386538616133306634376565653936653664636131
|
||||||
|
30623839336238333537666662336431396633396362376630376361636565343732313262623065
|
||||||
|
65616138333538616635326639303863613462623163663664653263303139373138376134643165
|
||||||
|
34663933666166343135366562623861343037303364393562313635633465623463633164653031
|
||||||
|
62386332336633326339656663633630663762643430376262323531626137353838353764643939
|
||||||
|
36626565653339653365383337633865386165313538666635613738343139383338613239393866
|
||||||
|
39363634303533386633353234373736353633313636323231636331646363636164396530653566
|
||||||
|
35656462336532656666363333393335396663653064613761363565386561646463353363656463
|
||||||
|
38663161353433353936376336326132336533623837343230613737393439346632353766383939
|
||||||
|
35346135626632306233616332346230323663366634396165666362626130656531646462363865
|
||||||
|
63666266633937376237373837633237636638363333346437663037373339613062366435653062
|
||||||
|
36613836373962623930333733326463636666376132633463343366653365393963383564373564
|
||||||
|
63316431303165383263343330656361346165313938356431636563396161653533666339653762
|
||||||
|
37316331303764663366613738363862336236353763613661656666376139333635306331376263
|
||||||
|
64306565373438343134613531653938373338326161363634653339653864373861623939336439
|
||||||
|
63386535623230326237653064313038316163626166373135623533306562346665326137346637
|
||||||
|
38316566376463323663336665306538656430363638653362616530643639616266633362636539
|
||||||
|
38313132643538326132323566323361363138316664616431626435353435613937353134383061
|
||||||
|
38393663323164393737663133353732316461366634663564383239393436363965343237636537
|
||||||
|
62313833333464636662643838366434373464626165343934333236363232313037653661366631
|
||||||
|
39313438663565613233323937336130343861383034376664333631623432643834373138386230
|
||||||
|
37313235373239353630623262386564356433363730623831643066303831666266
|
||||||
|
|||||||
3
hosts
3
hosts
@@ -1,4 +1,5 @@
|
|||||||
[ungrouped]
|
[ungrouped]
|
||||||
jade ansible_host=fntz.net ansible_user=alex
|
jade ansible_host=172.16.0.25 ansible_user=alex
|
||||||
jackson ansible_host=direct.jackson.alexav.gg ansible_user=root
|
jackson ansible_host=direct.jackson.alexav.gg ansible_user=root
|
||||||
|
ash-1 ansible_host=ash-1.landite.games ansible_user=root
|
||||||
nas ansible_host=172.16.0.29 ansible_user=alex
|
nas ansible_host=172.16.0.29 ansible_user=alex
|
||||||
23
main.yml
23
main.yml
@@ -61,12 +61,6 @@
|
|||||||
- name: Deploy Drop
|
- name: Deploy Drop
|
||||||
import_tasks: tasks/drop.yml
|
import_tasks: tasks/drop.yml
|
||||||
tags: drop_deploy
|
tags: drop_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
|
- name: Deploy Jackett
|
||||||
import_tasks: tasks/jackett.yml
|
import_tasks: tasks/jackett.yml
|
||||||
tags: jackett_deploy
|
tags: jackett_deploy
|
||||||
@@ -109,9 +103,12 @@
|
|||||||
- name: Deploy Owncloud
|
- name: Deploy Owncloud
|
||||||
import_tasks: tasks/owncloud.yml
|
import_tasks: tasks/owncloud.yml
|
||||||
tags: owncloud_deploy
|
tags: owncloud_deploy
|
||||||
- name: Deploy Wings
|
- name: Deploy Pelican
|
||||||
import_tasks: tasks/wings.yml
|
import_tasks: tasks/pelican.yml
|
||||||
tags: wings_deploy
|
tags: pelican_deploy
|
||||||
|
- name: Deploy Database
|
||||||
|
import_tasks: tasks/mariadb.yml
|
||||||
|
tags: mariadb_deploy
|
||||||
|
|
||||||
- hosts: nas
|
- hosts: nas
|
||||||
|
|
||||||
@@ -134,3 +131,11 @@
|
|||||||
- name: Deploy Wings
|
- name: Deploy Wings
|
||||||
import_tasks: tasks/wings.yml
|
import_tasks: tasks/wings.yml
|
||||||
tags: wings_deploy
|
tags: wings_deploy
|
||||||
|
|
||||||
|
- hosts: ash-1
|
||||||
|
|
||||||
|
roles:
|
||||||
|
- role: traefik
|
||||||
|
tags: traefik_deploy
|
||||||
|
vars:
|
||||||
|
server: "ash-1"
|
||||||
|
|||||||
@@ -25,12 +25,6 @@
|
|||||||
state: present
|
state: present
|
||||||
when: build is defined
|
when: build is defined
|
||||||
|
|
||||||
- name: Pull latest Docker image
|
|
||||||
docker_image:
|
|
||||||
name: "{{ image.name }}"
|
|
||||||
tag: "{{ image.tag }}"
|
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Docker Network
|
- name: Create Docker Network
|
||||||
docker_network:
|
docker_network:
|
||||||
name: "{{ network_name }}"
|
name: "{{ network_name }}"
|
||||||
@@ -39,11 +33,19 @@
|
|||||||
- name: Create Docker Container
|
- name: Create Docker Container
|
||||||
docker_container:
|
docker_container:
|
||||||
name: "{{ name }}"
|
name: "{{ name }}"
|
||||||
image: "{{ image.name }}:{{ image.tag }}"
|
|
||||||
command: "{{ command | default(omit) }}"
|
|
||||||
recreate: true
|
recreate: true
|
||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
networks: "{{ networks }}"
|
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) }}"
|
volumes: "{{ volumes | default(omit) }}"
|
||||||
env: "{{ env | default(omit) }}"
|
env: "{{ env | default(omit) }}"
|
||||||
labels: "{{ labels | default(omit) }}"
|
labels: "{{ labels | default(omit) }}"
|
||||||
|
healthcheck: "{{ healthcheck | default(omit) }}"
|
||||||
|
devices: "{{ devices | default(omit) }}"
|
||||||
|
mounts: "{{ mounts | default(omit) }}"
|
||||||
|
privileged: "{{ privileged | default(omit) }}"
|
||||||
|
|||||||
@@ -31,6 +31,11 @@
|
|||||||
src: remote-dynamic.yml.j2
|
src: remote-dynamic.yml.j2
|
||||||
dest: "{{ data_dir }}/traefik/dynamic.yml"
|
dest: "{{ data_dir }}/traefik/dynamic.yml"
|
||||||
when: server == "jackson"
|
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
|
- name: Deploy Traefik Docker Container
|
||||||
docker_container:
|
docker_container:
|
||||||
|
|||||||
@@ -48,7 +48,13 @@ http:
|
|||||||
- webSecure
|
- webSecure
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
wings:
|
||||||
|
rule: "Host(`wings.fntz.net`)"
|
||||||
|
service: wings
|
||||||
|
entryPoints:
|
||||||
|
- webSecure
|
||||||
|
tls:
|
||||||
|
certResolver: letsencrypt
|
||||||
|
|
||||||
services:
|
services:
|
||||||
plex:
|
plex:
|
||||||
@@ -75,3 +81,7 @@ http:
|
|||||||
loadBalancer:
|
loadBalancer:
|
||||||
servers:
|
servers:
|
||||||
- url: "http://nas:8409/"
|
- url: "http://nas:8409/"
|
||||||
|
wings:
|
||||||
|
loadBalancer:
|
||||||
|
servers:
|
||||||
|
- url: "http://jade:8090/"
|
||||||
15
roles/traefik/templates/remote-ash-1.yml.j2
Normal file
15
roles/traefik/templates/remote-ash-1.yml.j2
Normal 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"
|
||||||
@@ -1,18 +1,15 @@
|
|||||||
http:
|
http:
|
||||||
middlewares:
|
|
||||||
landiteRedirect:
|
|
||||||
redirectRegex:
|
|
||||||
regex: ".*"
|
|
||||||
replacement: "https://alexav.gg/?ref=landite"
|
|
||||||
permanent: true
|
|
||||||
|
|
||||||
routers:
|
routers:
|
||||||
landite:
|
wings:
|
||||||
rule: "Host(`landite.games`)"
|
rule: "Host(`wings.landite.games`)"
|
||||||
middlewares:
|
service: wings
|
||||||
- landiteRedirect
|
|
||||||
service: noop@internal
|
|
||||||
entryPoints:
|
entryPoints:
|
||||||
- webSecure
|
- webSecure
|
||||||
tls:
|
tls:
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
|
||||||
|
services:
|
||||||
|
wings:
|
||||||
|
loadBalancer:
|
||||||
|
servers:
|
||||||
|
- url: "http://5.161.64.174:8090"
|
||||||
@@ -21,10 +21,10 @@ def deploy(tag = None, host = None):
|
|||||||
command = construct_command(tag, host)
|
command = construct_command(tag, host)
|
||||||
|
|
||||||
if tag:
|
if tag:
|
||||||
print(f"Deploying {tag}...\n")
|
print(f"[MAIN] Deploying {tag}...")
|
||||||
else:
|
else:
|
||||||
print(f"Deploying {host}...\n")
|
print(f"[MAIN] Deploying host {host}...")
|
||||||
res = subprocess.run(command, shell=True, stdout=subprocess.DEVNULL)
|
res = subprocess.run(command, shell=True)
|
||||||
|
|
||||||
return res.returncode == 0
|
return res.returncode == 0
|
||||||
|
|
||||||
@@ -75,8 +75,9 @@ def main():
|
|||||||
|
|
||||||
deployed = []
|
deployed = []
|
||||||
failed = []
|
failed = []
|
||||||
|
|
||||||
for task in new_diff:
|
for task in new_diff:
|
||||||
deployment = deploy(tag=task)
|
deployment = deploy(tag=task.split("/")[1])
|
||||||
|
|
||||||
if not deployment:
|
if not deployment:
|
||||||
failed.append(task)
|
failed.append(task)
|
||||||
|
|||||||
@@ -10,12 +10,30 @@ if os.path.exists(host_vars_path):
|
|||||||
|
|
||||||
vaults = os.listdir(host_vars_path)
|
vaults = os.listdir(host_vars_path)
|
||||||
|
|
||||||
|
# 1st run - extract ungrouped, global variables
|
||||||
for vault in vaults:
|
for vault in vaults:
|
||||||
vault_path = os.path.join(host_vars_path, vault)
|
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)
|
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()
|
stdout = vault_contents.stdout.strip().splitlines()
|
||||||
|
|
||||||
for line in stdout:
|
for line in stdout:
|
||||||
|
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()
|
||||||
|
|
||||||
|
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:
|
if line.startswith("#") and line not in file_contents:
|
||||||
file_contents += f"\n{line}\n"
|
file_contents += f"\n{line}\n"
|
||||||
|
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ def search_for_image(image_name):
|
|||||||
data = yaml.safe_load(file)
|
data = yaml.safe_load(file)
|
||||||
|
|
||||||
for key in data:
|
for key in data:
|
||||||
if "docker_image" in key:
|
if "vars" in key:
|
||||||
if image_name in key["docker_image"]["name"]:
|
if image_name in key["vars"]["image"]["name"] or image_name == key["vars"]["image"]["name"]:
|
||||||
return f"{task.split(".")[0]}_deploy"
|
return f"{task.split(".")[0]}_deploy"
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@@ -29,24 +29,36 @@ def main():
|
|||||||
for task in host['tasks']:
|
for task in host['tasks']:
|
||||||
deployable_tags.append(task['tags'])
|
deployable_tags.append(task['tags'])
|
||||||
|
|
||||||
if len(update_list["images"]) <= 0:
|
if len(update_list["images"]) > 0:
|
||||||
print("No images to update!")
|
already_deployed = []
|
||||||
else:
|
actually_updatable = []
|
||||||
print(f"Updating {update_list["metrics"]["updates_available"]} image(s)..\n")
|
blacklist = []
|
||||||
|
|
||||||
for image in update_list["images"]:
|
for image in update_list["images"]:
|
||||||
if image['result']['has_update']:
|
if image['result']['has_update']:
|
||||||
if "remote_digest" in image["result"]["info"]:
|
if image in blacklist:
|
||||||
image_name = image["parts"]["repository"]
|
print(f"[UPDATE] Ignoring '{image}' due to its blacklist")
|
||||||
ansible_tag = search_for_image(image_name)
|
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'] })
|
||||||
|
|
||||||
if ansible_tag and ansible_tag in deployable_tags:
|
print(f"Redeploying {len(actually_updatable)} container(s)..")
|
||||||
print(f"Updating '{image_name}' ({ansible_tag})..")
|
for image in actually_updatable:
|
||||||
subprocess.run(f'docker image pull {image_name}', shell=True)
|
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)
|
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")
|
print("\nAll images updated, refreshing Cup")
|
||||||
requests.get("https://cup.fntz.net/api/v3/refresh")
|
requests.get("https://cup.fntz.net/api/v3/refresh")
|
||||||
|
else:
|
||||||
|
print("No images to update!")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
- "{{ data_dir }}/api/db"
|
- "{{ data_dir }}/api/db"
|
||||||
image:
|
image:
|
||||||
name: postgres
|
name: postgres
|
||||||
tag: latest
|
tag: "17"
|
||||||
networks:
|
networks:
|
||||||
- name: api
|
- name: api
|
||||||
volumes:
|
volumes:
|
||||||
@@ -58,6 +58,13 @@
|
|||||||
STEAM_API_KEY: "{{ API_STEAM_API_KEY }}"
|
STEAM_API_KEY: "{{ API_STEAM_API_KEY }}"
|
||||||
CONTACT_WEBHOOK: "{{ API_CONTACT_WEBHOOK }}"
|
CONTACT_WEBHOOK: "{{ API_CONTACT_WEBHOOK }}"
|
||||||
JWT_KEY: "{{ API_JWT_KEY }}"
|
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 }}"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "true"
|
traefik.enable: "true"
|
||||||
traefik.http.routers.aapi.rule: Host(`api.alexav.gg`)
|
traefik.http.routers.aapi.rule: Host(`api.alexav.gg`)
|
||||||
|
|||||||
@@ -1,29 +1,16 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Drop Database
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: drop_postgres
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/drop"
|
- "{{ data_dir }}/drop"
|
||||||
- "{{ data_dir }}/drop/db"
|
- "{{ data_dir }}/drop/db"
|
||||||
- "{{ data_dir }}/drop/app"
|
image:
|
||||||
|
name: postgres
|
||||||
- name: Create Drop Network
|
tag: 14-alpine
|
||||||
docker_network:
|
network_name: drop
|
||||||
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:
|
networks:
|
||||||
- name: drop
|
- name: drop
|
||||||
healthcheck:
|
healthcheck:
|
||||||
@@ -39,12 +26,16 @@
|
|||||||
POSTGRES_USER: "drop"
|
POSTGRES_USER: "drop"
|
||||||
POSTGRES_DB: "drop"
|
POSTGRES_DB: "drop"
|
||||||
|
|
||||||
- name: Create Drop Container
|
- name: Deploy Drop
|
||||||
docker_container:
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
name: drop
|
name: drop
|
||||||
image: ghcr.io/drop-oss/drop:latest
|
directories:
|
||||||
recreate: true
|
- "{{ data_dir }}/drop/app"
|
||||||
restart_policy: unless-stopped
|
image:
|
||||||
|
name: ghcr.io/drop-oss/drop
|
||||||
|
tag: latest
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
- name: drop
|
- name: drop
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Ersatz
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: ersatztv
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/ersatz"
|
- "{{ data_dir }}/ersatz"
|
||||||
|
image:
|
||||||
- name: Pull latest Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: ghcr.io/ersatztv/ersatztv
|
name: ghcr.io/ersatztv/ersatztv
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: ersatztv
|
|
||||||
image: ghcr.io/ersatztv/ersatztv:latest
|
|
||||||
recreate: true
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
devices:
|
devices:
|
||||||
- /dev/dri/renderD128:/dev/dri/renderD128
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
||||||
mounts:
|
mounts:
|
||||||
|
|||||||
@@ -1,24 +1,15 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Frigate
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: frigate
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/frigate"
|
- "{{ data_dir }}/frigate"
|
||||||
|
image:
|
||||||
- name: Pull latest Frigate Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: ghcr.io/blakeblackshear/frigate
|
name: ghcr.io/blakeblackshear/frigate
|
||||||
tag: stable
|
tag: stable
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Deploy Frigate Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: frigate
|
|
||||||
image: ghcr.io/blakeblackshear/frigate:stable
|
|
||||||
recreate: true
|
|
||||||
privileged: true
|
privileged: true
|
||||||
restart_policy: unless-stopped
|
|
||||||
published_ports:
|
published_ports:
|
||||||
- "5000:5000"
|
- "5000:5000"
|
||||||
- "8555:8555/tcp"
|
- "8555:8555/tcp"
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Gitea
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: gitea
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/gitea"
|
- "{{ data_dir }}/gitea"
|
||||||
|
image:
|
||||||
- name: Pull latest Gitea Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: docker.gitea.com/gitea
|
name: docker.gitea.com/gitea
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Gitea Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: gitea
|
|
||||||
image: docker.gitea.com/gitea:latest
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: "{{ docker_network_name }}"
|
- name: "{{ docker_network_name }}"
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -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"
|
|
||||||
@@ -1,24 +1,15 @@
|
|||||||
---
|
---
|
||||||
- name: Create Folder structure
|
- name: Deploy Homebridge
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: homebridge
|
||||||
- "{{ data_dir }}/homebridge"
|
directories:
|
||||||
|
- "{{ data_dir }}/homebridge:/homebridge"
|
||||||
- name: Pull latest Homebridge Docker Image
|
image:
|
||||||
docker_image:
|
|
||||||
name: homebridge/homebridge
|
name: homebridge/homebridge
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Homebridge Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: homebridge
|
|
||||||
image: homebridge/homebridge:latest
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
network_mode: host
|
network_mode: host
|
||||||
recreate: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/homebridge:/homebridge"
|
- "{{ data_dir }}/homebridge:/homebridge"
|
||||||
labels:
|
labels:
|
||||||
|
|||||||
@@ -1,34 +1,16 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Immich DB
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: immich_postgres
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/immich"
|
- "{{ data_dir }}/immich"
|
||||||
- "{{ data_dir }}/immich/model-cache"
|
- "{{ data_dir }}/immich/model-cache"
|
||||||
- "{{ data_dir }}/immich/db"
|
- "{{ data_dir }}/immich/db"
|
||||||
|
image:
|
||||||
- name: Pull latest Immich Server Docker Image
|
name: ghcr.io/immich-app/postgres
|
||||||
docker_image:
|
tag: 14-vectorchord0.4.3-pgvectors0.2.0
|
||||||
name: ghcr.io/immich-app/immich-server
|
|
||||||
tag: v2.1.0
|
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Immich Redis Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: immich_redis
|
|
||||||
image: docker.io/valkey/valkey:8-bookworm@sha256:fea8b3e67b15729d4bb70589eb03367bab9ad1ee89c876f54327fc7c6e618571
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
|
||||||
- name: immich
|
|
||||||
|
|
||||||
- name: Create Immich DB Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: immich_postgres
|
|
||||||
image: ghcr.io/immich-app/postgres:14-vectorchord0.4.3-pgvectors0.2.0@sha256:bcf63357191b76a916ae5eb93464d65c07511da41e3bf7a8416db519b40b1c23
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/immich/db:/var/lib/postgresql/data"
|
- "{{ data_dir }}/immich/db:/var/lib/postgresql/data"
|
||||||
env:
|
env:
|
||||||
@@ -38,13 +20,27 @@
|
|||||||
POSTGRES_INITDB_ARGS: "--data-checksums"
|
POSTGRES_INITDB_ARGS: "--data-checksums"
|
||||||
networks:
|
networks:
|
||||||
- name: immich
|
- name: immich
|
||||||
|
network_name: immich
|
||||||
|
|
||||||
- name: Create Immich Server Docker Container
|
- name: Deploy Immich Redis
|
||||||
docker_container:
|
include_role:
|
||||||
name: immich_server
|
name: docker
|
||||||
image: ghcr.io/immich-app/immich-server:v2.1.0
|
vars:
|
||||||
restart_policy: unless-stopped
|
name: immich_redis
|
||||||
recreate: true
|
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:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
- name: immich
|
- name: immich
|
||||||
|
|||||||
@@ -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"
|
|
||||||
39
tasks/mariadb.yml
Normal file
39
tasks/mariadb.yml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
- name: Deploy MariaDB Database
|
||||||
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
|
name: mariadb
|
||||||
|
directories:
|
||||||
|
- "{{ data_dir }}/db"
|
||||||
|
image:
|
||||||
|
name: mariadb
|
||||||
|
tag: latest
|
||||||
|
published_ports:
|
||||||
|
- "3306:3306"
|
||||||
|
volumes:
|
||||||
|
- "{{ data_dir }}/db:/var/lib/mysql"
|
||||||
|
- "{{ data_dir }}/db/etc:/etc/mysql"
|
||||||
|
env:
|
||||||
|
MYSQL_USER: "root"
|
||||||
|
MYSQL_ROOT_PASSWORD: "{{ GLOBAL_POSTGRES_PASSWORD }}"
|
||||||
|
|
||||||
|
- name: Deploy PHPMyAdmin
|
||||||
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
|
name: phpmyadmin
|
||||||
|
image:
|
||||||
|
name: phpmyadmin
|
||||||
|
tag: latest
|
||||||
|
networks:
|
||||||
|
- name: "{{ docker_network_name }}"
|
||||||
|
env:
|
||||||
|
PMA_HOST: "{{ PMA_HOST }}"
|
||||||
|
PMA_PORT: "{{ PMA_PORT }}"
|
||||||
|
labels:
|
||||||
|
traefik.enable: "true"
|
||||||
|
traefik.http.routers.pma.rule: Host(`pma.landite.games`)
|
||||||
|
traefik.http.routers.pma.entrypoints: webSecure
|
||||||
|
traefik.http.routers.pma.tls.certresolver: letsencrypt
|
||||||
|
traefik.http.services.pma.loadbalancer.server.port: "80"
|
||||||
@@ -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"
|
|
||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy NZBGet
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: nzbget
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/nzbget"
|
- "{{ data_dir }}/nzbget"
|
||||||
|
image:
|
||||||
- name: Pull latest NZBGet Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: lscr.io/linuxserver/nzbget
|
name: lscr.io/linuxserver/nzbget
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create NZBGet Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: nzbget
|
|
||||||
image: lscr.io/linuxserver/nzbget:latest
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,25 +1,16 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Obsidian
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: obsidian
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/obsidian"
|
- "{{ data_dir }}/obsidian"
|
||||||
- "{{ data_dir }}/obsidian/data"
|
- "{{ data_dir }}/obsidian/data"
|
||||||
- "{{ data_dir }}/obsidian/etc"
|
- "{{ data_dir }}/obsidian/etc"
|
||||||
|
image:
|
||||||
- name: Pull Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: couchdb
|
name: couchdb
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: couchdb
|
|
||||||
image: couchdb:latest
|
|
||||||
recreate: true
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,30 +1,18 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Owncloud Database
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: owncloud_database
|
||||||
|
image:
|
||||||
|
name: mariadb
|
||||||
|
tag: latest
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/owncloud"
|
- "{{ data_dir }}/owncloud"
|
||||||
- "{{ data_dir }}/owncloud/data"
|
- "{{ data_dir }}/owncloud/data"
|
||||||
- "{{ data_dir }}/owncloud/db"
|
- "{{ data_dir }}/owncloud/db"
|
||||||
- "{{ data_dir }}/owncloud/redis"
|
- "{{ data_dir }}/owncloud/redis"
|
||||||
|
network_name: "owncloud"
|
||||||
- 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:
|
networks:
|
||||||
- name: owncloud
|
- name: owncloud
|
||||||
volumes:
|
volumes:
|
||||||
@@ -42,12 +30,14 @@
|
|||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
- name: Create Owncloud Redis Container
|
- name: Deploy Owncloud Redis
|
||||||
docker_container:
|
include_role:
|
||||||
name: oc_redis
|
name: docker
|
||||||
image: redis:latest
|
vars:
|
||||||
restart_policy: unless-stopped
|
name: owncloud_redis
|
||||||
recreate: true
|
image:
|
||||||
|
name: redis
|
||||||
|
tag: latest
|
||||||
networks:
|
networks:
|
||||||
- name: owncloud
|
- name: owncloud
|
||||||
command: "--databases 1"
|
command: "--databases 1"
|
||||||
@@ -59,12 +49,14 @@
|
|||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/owncloud/redis:/data"
|
- "{{ data_dir }}/owncloud/redis:/data"
|
||||||
|
|
||||||
- name: Create Owncloud Docker Container
|
- name: Deploy Owncloud
|
||||||
docker_container:
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
name: owncloud
|
name: owncloud
|
||||||
image: owncloud/server:10.15
|
image:
|
||||||
restart_policy: unless-stopped
|
name: owncloud/server
|
||||||
recreate: true
|
tag: 10.16
|
||||||
networks:
|
networks:
|
||||||
- name: "{{ docker_network_name }}"
|
- name: "{{ docker_network_name }}"
|
||||||
- name: owncloud
|
- name: owncloud
|
||||||
|
|||||||
32
tasks/pelican.yml
Normal file
32
tasks/pelican.yml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
---
|
||||||
|
- name: Deploy Pelican Panel
|
||||||
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
|
name: Pelican
|
||||||
|
directories:
|
||||||
|
- "{{ data_dir }}/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(`panel.landite.games`)
|
||||||
|
traefik.http.routers.pelican.entrypoints: webSecure
|
||||||
|
traefik.http.routers.pelican.tls.certresolver: letsencrypt
|
||||||
|
traefik.http.services.pelican.loadbalancer.server.port: "80"
|
||||||
@@ -1,28 +1,19 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy PiHole
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: pihole
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/pihole"
|
- "{{ data_dir }}/pihole"
|
||||||
|
image:
|
||||||
- name: Pull latest PiHole Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: pihole/pihole
|
name: pihole/pihole
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
published_ports:
|
||||||
|
- "53:53/tcp"
|
||||||
- name: Create PiHole Docker Container
|
- "53:53/udp"
|
||||||
docker_container:
|
|
||||||
name: pihole
|
|
||||||
image: pihole/pihole:latest
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
published_ports:
|
|
||||||
- "{{ TRAEFIK_HOST_IP }}:53:53/tcp"
|
|
||||||
- "{{ TRAEFIK_HOST_IP }}:53:53/udp"
|
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/pihole:/etc/pihole"
|
- "{{ data_dir }}/pihole:/etc/pihole"
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create Folder structure
|
- name: Deploy PocketID
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: pocketid
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/pocketid"
|
- "{{ data_dir }}/pocketid"
|
||||||
|
image:
|
||||||
- name: Pull latest PocketID Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: ghcr.io/pocket-id/pocket-id
|
name: ghcr.io/pocket-id/pocket-id
|
||||||
tag: v1
|
tag: v1
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create PocketID Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: pocketid
|
|
||||||
image: ghcr.io/pocket-id/pocket-id:v1
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -64,7 +64,7 @@
|
|||||||
restart_policy: unless-stopped
|
restart_policy: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- name: pterodactyl
|
- name: pterodactyl
|
||||||
- name: homelab
|
- name: "{{ docker_network_name }}"
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/pterodactyl/nginx:/etc/nginx/http.d"
|
- "{{ data_dir }}/pterodactyl/nginx:/etc/nginx/http.d"
|
||||||
- "{{ data_dir }}/pterodactyl/logs:/app/storage/logs"
|
- "{{ data_dir }}/pterodactyl/logs:/app/storage/logs"
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
TRUSTED_PROXIES: "*"
|
TRUSTED_PROXIES: "*"
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "true"
|
traefik.enable: "true"
|
||||||
traefik.http.routers.panel.rule: Host(`panel.fntz.net`)
|
traefik.http.routers.panel.rule: Host(`{{ PTERODACTYL_APP_URL }}`)
|
||||||
traefik.http.routers.panel.entrypoints: webSecure
|
traefik.http.routers.panel.entrypoints: webSecure
|
||||||
traefik.http.routers.panel.tls.certresolver: letsencrypt
|
traefik.http.routers.panel.tls.certresolver: letsencrypt
|
||||||
traefik.http.services.panel.loadbalancer.server.port: "80"
|
traefik.http.services.panel.loadbalancer.server.port: "80"
|
||||||
|
|||||||
@@ -1,36 +1,17 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Radarr
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: radarr
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/servarr"
|
- "{{ data_dir }}/servarr"
|
||||||
- "{{ data_dir }}/servarr/sonarr_config"
|
- "{{ data_dir }}/servarr/sonarr_config"
|
||||||
- "{{ data_dir }}/servarr/radarr_config"
|
- "{{ data_dir }}/servarr/radarr_config"
|
||||||
- "{{ data_dir }}/servarr/lidarr_config"
|
- "{{ data_dir }}/servarr/lidarr_config"
|
||||||
|
image:
|
||||||
- name: Pull latest Radarr Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: lscr.io/linuxserver/radarr
|
name: lscr.io/linuxserver/radarr
|
||||||
tag: latest
|
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
|
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/servarr/radarr_config:/config"
|
- "{{ data_dir }}/servarr/radarr_config:/config"
|
||||||
- "{{ SERVARR_MEDIA_PATH }}:/media"
|
- "{{ SERVARR_MEDIA_PATH }}:/media"
|
||||||
@@ -48,12 +29,14 @@
|
|||||||
traefik.http.routers.radarr.tls.certresolver: letsencrypt
|
traefik.http.routers.radarr.tls.certresolver: letsencrypt
|
||||||
traefik.http.services.radarr.loadbalancer.server.port: "7878"
|
traefik.http.services.radarr.loadbalancer.server.port: "7878"
|
||||||
|
|
||||||
- name: Deploy Sonarr Container
|
- name: Deploy Sonarr
|
||||||
docker_container:
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
name: sonarr
|
name: sonarr
|
||||||
image: lscr.io/linuxserver/sonarr:latest
|
image:
|
||||||
restart_policy: unless-stopped
|
name: lscr.io/linuxserver/sonarr
|
||||||
recreate: true
|
tag: latest
|
||||||
volumes:
|
volumes:
|
||||||
- "{{ data_dir }}/servarr/sonarr_config:/config"
|
- "{{ data_dir }}/servarr/sonarr_config:/config"
|
||||||
- "{{ SERVARR_MEDIA_PATH }}:/data"
|
- "{{ SERVARR_MEDIA_PATH }}:/data"
|
||||||
@@ -71,12 +54,14 @@
|
|||||||
traefik.http.routers.sonarr.tls.certresolver: letsencrypt
|
traefik.http.routers.sonarr.tls.certresolver: letsencrypt
|
||||||
traefik.http.services.sonarr.loadbalancer.server.port: "8989"
|
traefik.http.services.sonarr.loadbalancer.server.port: "8989"
|
||||||
|
|
||||||
- name: Deploy Lidarr Container
|
- name: Deploy Lidarr
|
||||||
docker_container:
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
name: lidarr
|
name: lidarr
|
||||||
image: lscr.io/linuxserver/lidarr:latest
|
image:
|
||||||
restart_policy: unless-stopped
|
name: lscr.io/linuxserver/lidarr
|
||||||
recreate: true
|
tag: latest
|
||||||
env:
|
env:
|
||||||
PUID: "{{ PUID }}"
|
PUID: "{{ PUID }}"
|
||||||
PGID: "{{ PGID }}"
|
PGID: "{{ PGID }}"
|
||||||
|
|||||||
@@ -1,34 +1,20 @@
|
|||||||
---
|
---
|
||||||
- name: "Create file structure"
|
- name: Deploy Storage API
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: storage-api
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/storage-api"
|
- "{{ data_dir }}/storage-api"
|
||||||
- "{{ data_dir }}/storage-api/app"
|
- "{{ data_dir }}/storage-api/app"
|
||||||
- "{{ data_dir }}/storage-api/files"
|
- "{{ data_dir }}/storage-api/files"
|
||||||
|
image:
|
||||||
- name: "Clone latest Storage API"
|
name: storage-api
|
||||||
|
tag: latest
|
||||||
|
build:
|
||||||
git:
|
git:
|
||||||
repo: git@git.alexav.gg:alex/storage-api.git
|
repo: git@git.alexav.gg:alex/storage-api.git
|
||||||
dest: "{{ data_dir }}/storage-api/app"
|
dest: "{{ data_dir }}/storage-api/app"
|
||||||
|
|
||||||
- name: "Build Storage API Docker Image"
|
|
||||||
docker_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
|
|
||||||
networks:
|
networks:
|
||||||
- name: "{{ docker_network_name }}"
|
- name: "{{ docker_network_name }}"
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Tautulli
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: tautulli
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/tautulli"
|
- "{{ data_dir }}/tautulli"
|
||||||
|
image:
|
||||||
- name: Pull latest Tautulli Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: ghcr.io/tautulli/tautulli
|
name: ghcr.io/tautulli/tautulli
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Tautulli Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: tautulli
|
|
||||||
image: ghcr.io/tautulli/tautulli
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Termix
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: termix
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/termix"
|
- "{{ data_dir }}/termix"
|
||||||
|
image:
|
||||||
- name: Pull latest Termix Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: ghcr.io/lukegus/termix
|
name: ghcr.io/lukegus/termix
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Termix Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: termix
|
|
||||||
image: ghcr.io/lukegus/termix:latest
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,18 +1,16 @@
|
|||||||
---
|
---
|
||||||
- name: Pull latest Tinyauth Docker Image
|
- name: Deploy Tinyauth
|
||||||
docker_image:
|
include_role:
|
||||||
|
name: docker
|
||||||
|
vars:
|
||||||
|
name: tinyauth
|
||||||
|
image:
|
||||||
name: ghcr.io/steveiliop56/tinyauth
|
name: ghcr.io/steveiliop56/tinyauth
|
||||||
tag: v4
|
tag: v4
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Tinyauth Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: tinyauth
|
|
||||||
image: ghcr.io/steveiliop56/tinyauth:v4
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
|
volumes:
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock"
|
||||||
env:
|
env:
|
||||||
USERS: "{{ TINYAUTH_USERS }}"
|
USERS: "{{ TINYAUTH_USERS }}"
|
||||||
SECRET: "{{ TINYAUTH_SECRET }}"
|
SECRET: "{{ TINYAUTH_SECRET }}"
|
||||||
@@ -28,8 +26,6 @@
|
|||||||
OAUTH_WHITELIST: "{{ TINYAUTH_OAUTH_WHITELIST }}"
|
OAUTH_WHITELIST: "{{ TINYAUTH_OAUTH_WHITELIST }}"
|
||||||
APP_TITLE: "{{ TINYAUTH_APP_TITLE }}"
|
APP_TITLE: "{{ TINYAUTH_APP_TITLE }}"
|
||||||
BACKGROUND_IMAGE: "{{ TINYAUTH_BACKGROUND_IMAGE }}"
|
BACKGROUND_IMAGE: "{{ TINYAUTH_BACKGROUND_IMAGE }}"
|
||||||
volumes:
|
|
||||||
- "/var/run/docker.sock:/var/run/docker.sock"
|
|
||||||
labels:
|
labels:
|
||||||
traefik.enable: "true"
|
traefik.enable: "true"
|
||||||
traefik.http.routers.tinyauth.rule: Host(`auth.fntz.net`)
|
traefik.http.routers.tinyauth.rule: Host(`auth.fntz.net`)
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Uptime Kuma
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: uptime-kuma
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/uptime-kuma"
|
- "{{ data_dir }}/uptime-kuma"
|
||||||
|
image:
|
||||||
- name: Pull latest Uptime Kuma Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: louislam/uptime-kuma
|
name: louislam/uptime-kuma
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Uptime Kuma Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: uptime-kuma
|
|
||||||
image: louislam/uptime-kuma
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
---
|
---
|
||||||
- name: Create folder structure
|
- name: Deploy Vaultwarden
|
||||||
file:
|
include_role:
|
||||||
path: "{{ item }}"
|
name: docker
|
||||||
state: directory
|
vars:
|
||||||
with_items:
|
name: vaultwarden
|
||||||
|
directories:
|
||||||
- "{{ data_dir }}/vaultwarden"
|
- "{{ data_dir }}/vaultwarden"
|
||||||
|
image:
|
||||||
- name: Pull latest Vaultwarden Docker Image
|
|
||||||
docker_image:
|
|
||||||
name: vaultwarden/server
|
name: vaultwarden/server
|
||||||
tag: latest
|
tag: latest
|
||||||
source: pull
|
|
||||||
|
|
||||||
- name: Create Vaultwarden Docker Container
|
|
||||||
docker_container:
|
|
||||||
name: vaultwarden
|
|
||||||
image: vaultwarden/server:latest
|
|
||||||
restart_policy: unless-stopped
|
|
||||||
recreate: true
|
|
||||||
networks:
|
networks:
|
||||||
- name: homelab
|
- name: homelab
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
Reference in New Issue
Block a user