Compare commits

..

No commits in common. 'master' and 'pms-docker' have entirely different histories.

@ -1,9 +0,0 @@
- name: deploy mattermost
hosts: mattermost-trial
remote_user: "{{ remote_user }}"
tasks:
- debug: msg="Deploying mediaserver stack to local server"
roles:
# - { name: debian_base }
# - { name: tailscale }
- { name: mattermost }

@ -1,174 +1,165 @@
$ANSIBLE_VAULT;1.1;AES256
65343136373639623637336639613236303539376366363333316534623037343830323137396132
6131636134646335633236346638303732336661613032380a336339663736653434613430363339
66663063343264323637623961623830656363643636383033393364323664346333363063663633
3966643432386238370a373039643031633635653462343164633763633865393361366431363964
39383665656661363066313635396239333666613939313465383030636639643530643366623564
62393562643934656231303435666634343564366435623631333063653639313337613330313334
62613836636537663434356339643461373438356465396331376233653737313236316661333733
61656238613063623431613435303032616433393164376435643263303032343265353937336634
30356537383631646535393061316238336161313366336534333438383266363961333763303265
61313632383861613565663163343038346431643461326464666632303930656238393161383430
30393730653430323435633531396533643532666534316337363134646238643136313636313662
30666334333732303436396432343535646337313138366166323061373130376239383664333065
34316639353532643130363433653732306165663132303130326336386263303061666330653737
38366666363662383933383439616461663561373331383433373366323261646532363866656630
61353733386631623839646666663535386438626666656161653831343639663964383532363732
37396361313431373832666137356466633963376433373162666139353539383532313634633536
33306536633265666137663464343532646166306365353835656633393836616661313439393830
34626166366239353531303863356332616561393061666334663934386239383539313335653030
37393863383534656163313562363361616536366639303836663133346265656464393438643431
63366166636363373065636632616339363563613037343332353933346138323939353762633563
38376535336438643633323031343762613231343130346538316539666630623530306335633661
33336165626538393932646232633661646530353763326464323265643166333536396464636566
34613865653335646664643930333133356637613030316339323836646337323338346334366564
31343438623234396163393337666131313132613930313138376434323336393631653738626362
63373636373462653132623663326431323536383338333035346363303137613437663736656463
36323330333938353866383638336366316163313461386661323234616261663064376232636264
34386532643033633133313631316331613861336234333466623661356163613565613864346534
30633366663131383566653362383633303133366539366330353861663637623363313264356236
37653733313537633430393036373234346136353466633035353063366463383736323764623261
63326433613934636238373031613462623837663133646533383162383133353666383430616466
37383862333937643534633966363835333064383434366536636363623834323765383333383663
66663431646333663736366365623337316139353263326465306333666134653361346336663339
39323433373663323030316166643038323563353530366563306566386236653736346333333964
39346664306163386436646535653838303431643035323439663134316238646163366565663333
36396339616238336563613230323739613132643433396335306162316462343536653237633431
64323330366134353763613666313066313938343461616532636439303238386538643435616161
34663331333063333836366539316666326439373433646365393332613165626162376661653963
34333463313438376135333137326166333233653739383339363936356564363630386666316461
37643463666230636131396665656563396662326635346431313938316631336163326465353565
35363836653362613264376565343864656532653163373839666335613236363164663831336662
64316362633462323762656435343432303433386536306332313333626532386333366564633366
39313365363337306161653832363431613532313365633066646563623562366234633936363461
62393930383330346164316238643138343130643133366466323236623036303861326334613963
34346332303134383333323333363765666261303836383162383131326435353362656163626461
31356433386131653761356639303934396335333137313465353764316433383132346139656363
34313365316662303638306161363030356263393237643734626635386161643736313033326336
66656639306461346265303735663263613235353533363639313233363063333637643137316266
31376666366264623233376633363939333538653863316163316465653865373639346536633737
31383635643037613034373464663437633063663762653465393061373361333137306131393566
32663638366266316164613861353466623066396131336461303035303563333963373931613739
32343236306633353965613730656135313439633934353461323134326531336238353562356332
36356431323631336434343664383932353564666230613136386533636233353039663862656637
39373135343433643336666532373663623365376133656136323465346536643366636230653730
61626665346661613362613830386136393261373635386661643138336466303632376331396434
32363536363734303963643366396430613536393664303236616237356431383430376634376632
66663530636334363236353166646334363463333834393737656339613638376666306533623536
61366365336661313235643063396339646633353163333937623533653362643363663635326433
38336565306662343061646537646364653964613034343564616437316362393133373436336161
65646666313037356136633161393833326339396439333234333835313131613565393131323761
64353966333937643332326131626532363032303264633034346430633330373466646631643632
30343633373833383531373134303436373736643364326661323762313436343433363361666631
34633538316538353630353236353838386633363364613437613638346338393261366432653330
66323266333631313737376238353463333066316638653666653337373966656230386235396263
36333238326531666534373832323665643730353334393464353335333539383334396666393931
34376465373837636430356363336663353337316365623031623932373864383231346235626662
37616133363932316631643831353637326638626332326536323861646636663031356138643734
66326235303433356630303833386439353130346239666464643134663537346136336465653163
32306564303361373433326336396466653132323161396232643937363761633562313533636632
38373032626632636334393765353161663534656563303736373366663630666435646563653232
36363834373235333565363637333865316236373737396638386433326365353862633733373664
32393930623236663437313632646266383466346566623638363661333239653431653662373730
63633765356239366439393032356430633634613466623263616137356137353634373335366131
62336431336263343462636466353233303033663732393931646137346133383030663937356663
32343234663931396664376365666435663265313335313036333733663439643435323630343337
34333132306139666137663366653538386464383665343330386138363661643965353961343539
36396337616431613033373838353832346236366233663631373136623635326665373162323135
30613430373265663236366232363733613566616265626136313664363634343232666138646231
33643836303730643965636366373233373062613436363835393536396331383138366538323764
38663765333965663432313836616162396234393535616533646162383536363366313331343730
32323164393764323062336638353837316131313130386166343034646262306537343232303737
61313737666666396435643632316330333034303965393236663036393766363531633231353966
33306137333364656633663434613337626163636630363164653730323164393834326139623832
38326565386562346335623365316337633135346631373965316464663862346664373934623966
33326466353532633837336362383666613830303135633831333765343661393336333636386134
31306566313835366639623161316263313566646539666335396333386465346166353030383138
33386535666236616132616561656533666163646266323831393466643837616437613131636666
30333331363963386165623264626236663166366662333132663731663465313531613362653430
37373831613539643363663238653337636431346266636634306662393063366566393435336331
62633463653565353563373366666462666437326632356234356366636465633439653937316439
37336631366566656236383036623937316164333836346638313539346337393531623862336565
31366461343631343831633362633666303466363030303438356339366433666632303731353832
32616631666262636334353033353563326239613864303762343165346637383764356563336132
38366532356138356231393636346233623463623131656138333136366135393831356432656433
66656339623164333066636364643332656334346630323235323332356339333938656335373138
38333932366532313064326634376236343662656537383336343138653831636339643239373030
33353533653139643935623631373438376434323763353732323230333932346462333664656337
30383233393166366138633066663365333730363665393732303066313038326465356166653866
64306262663939646239653835623038316334633863396466373635383833633964353133396435
35333631353362316663653336343138653230313335353937653533666432656639393837303536
36363061646137306131653966323033376338623238663366383364366464306463653333666362
63376437366337303230303039366162366633303962623331356332643966393033336234643461
37356362303231383866376233613832306533303666653731663562626437663931656264376238
36343435323264633835656237373464353131653437656535313663393930613638363838313263
64343732336561376561383634383637353366313836623366366637313130636437303038303664
31663436306564663835653431636434343135663566393531626564633434643238306434653361
62396130363636353532653036383436343131663134643061346661656532333533363233643232
32316639323230363733333230316632633964383931616661333464666163643761326464656361
66336139323232393663636265353434383837393735376632626431653636316332643361616232
30323566323466333630346631373532373064306130623132316438316264393635343637393937
34393839386362326663343062346662353837366538366362303835343636613839666366643639
30373638316437383733363837393432343630303932333864336230616563393637343934313765
31663166333436653037656637393136313735656566386661356431333430643633326464643432
35623134393564313738306337323863363363373062376530316333633238373163303765393132
36356135623061393833386361386330663866383437393333353264656366646236316565346531
62663934373634363066326234356430663764393762623161356232313930613864363738396262
39326435363933393030323638393934613137663434623065613631663338343961636263666663
63633235613264306235643430333238623431363734313465336636616162646439346430666635
64386537313438303263616430636663363161316138363738313536653332393366636164396334
38316631656634363639313866313830323161326238373732376235616337643534633530313330
38623231656330366366653734663536343166313930656630636337363738313131623135633561
64343438373565326437653931343264376662373630353764626535646562633664363461363364
65653532343263613633653731356232316531313935613565393738663136636165656334303866
30623331363933653231303336656261623031336165336531303331323063343461336238303235
31613037343232306634616438356266623731346261333537346462663165623939393230383735
32313733356330653934366264636366663631666436316261633063636230613031343631303265
38623962363936623837663163636533366162383532326231313064386462336236623166646464
33303432383932653639663833613932633937646639363762633861323066613039333130373361
35356235636338306435323633303765343837623166316331633637646561306433643062636165
61656631663336303030663434343665633135303333366632613838366264386336613664616363
38323137313138353033323230323465346631323835333739306131626466666438313730666364
34316135306461656238353566646564313264356466663931623335326531623266346164373037
33383736613235376637636135363332663065313430633635643734376231653465313138623638
62623235313735383531333164306338393563636631396265666535353364396632376630616464
61653561646564643432663633633863333465373534396161313131393461363561313165643233
35626261643232356265346333646134643333643934323930613866613039356135336136333334
35616364396631633339313439336332613338363137373362383030636138313665653435343734
30313633386261303633353961363532323037333564313763373033626339366161396137616230
30316162396363356362343133333438653464303735353438393232383137383836306333663036
31353762353537383136363963363233393561353531353332336561353930653235303762346336
36633766346239373037663464656266653032323335653461343862343532306465626665346139
39376232326634656161363465373430396565396464613139326333386535346263383864396537
61393763313534303033376563363834366166396538313337393731613166633130396336306334
30366337336438643536356338313664623561396564396563336561663338323561346264643431
32373739623437323930356265653037316364626638363565376438313961353463356335383164
37326332306434626464343531643937633637373233623264653665343866633930356331636335
36343439653062353735323834633830393230646463643030356332366164336534383563313062
32323135396534626166663731353464323031643432336330366662393633663333346465623239
30636233656564663633336535363764303330316638333465313838386132623137323864303530
30316562623836343765316538316330373864393533363430646465353863333563656139383663
64313865343237663234613838613662316537656265663861626439323839623236333536346139
35666265306432656133306336346365313465636638633334626535366638383432323931666365
38653636393430626166663961313433323331343937666133656232366562316166616138626665
35323538343531336332376231633438646465336466353436363661666138306361646439633062
66643137326336376439646334383734373865353638343337623537383864366637306238353034
63626362323362656462663365343066613137393661386632366437616238396164393735383261
66626638306461633565396433336161346261303935636638336337653434343961316662306634
61353263646636626233316439353936396335323164393563653966623466346162343638616265
36353933643365363634343730333563633331306463643838643731333136663836353134663162
39326566313362373166376162616237346436623038303862376536653766663634373230633832
65643333316539366163323032333137633566663735376665633364626665343934613964336639
65343637313534346639383131626434343436306438303232663062313834353364653330323532
38396536623464666462383930393138323864653766393836343630633831343836636538366138
33346430393833393731303232623664363931376335313130313431376136653161363430346134
62366337646139356336303961303132646139663735653236623232343536373836323065663636
39323035346537303431653662613431363331303561323032643639373338343931386433313033
39366461346365623637646565633266376331343961623532653361633736353566623838656138
36623339653064363037393931643462383261386166333837386164663964343733323935353139
66663832633662386535366563656264376334353934613064313762303361636162326365396666
63313133663863623536363963663063656161316537396131373366346336646161666663646132
30383761653932386333616530346536653631386166346336623634323233373262393261636234
39663161623831613261363438393131613061626433336636656636613237643038366337373065
39346238383433643438333963323266613734646237303834326231396439306661663463373836
30653235626435356432383464653032323165623236613765353762386431323533
34393834633038343935336333333062633363383632633964613262613139343566303763653966
3238633737333834336537313935653864643366623861300a373737656263303436376334346563
35323234313634363334613131353837393932326430626230313333353433663566613336663033
3731333939333164660a393434383165346239656337663864323235313836303937313864376434
38303533313265376130303535613439363239363836653931326430303135343464336564306566
61313963373435366666356564333534636531343863626664313362646664343465326331376364
64333563393932623662653436333835663262646462366531363135366664623663656336303166
64656339663632653765356362666566356662353535623534626566343562356139333935326264
63623266363461636335623064393132663064303536666431643931623266643332373964656131
66366166313461626262346633616332333463356430656434663834313062306637656135323734
37323834653166633337383865393435336662633663363639373438633837303837343766313864
34626665353063353631613631653732366130653032346233313438623338396165393630373865
32326337633635363163633830663934333639653539313533373835316136656532386262323138
39323439346163396566373433333033383738353432656366363265643866366165663461626361
66396139313135353035666666363535653737326337316439323862366135343062313766323763
37356230383666626463356635383935623234663137326464343161356462303464623439383762
65323665653364623666626261386532363063653532626134616362393131636237393837333861
36666439613731646639653863386462646532326632306230323335363835366266653663376230
39383331343538333934346533383262373365303132643430636665303036616162613634663465
39643630353832313138333035353863323639343035613962616138323430353966616461613135
39356566623332626634393837363763353530626435616230333336383636623533323034366136
35643736656363623339386236643666316136656334623665396161386632613530643864653138
30353037366139626239393064313862616333343937616465636439643736646533623339383962
34376163333133646636333430663862663236636135363536623733353861663034336132643239
35643964656361396262613661323839363865346566613937393266313731393837333865316233
31376130613638303739313630653662323465303762616463343963303862643830323530333136
63323036303561303738353536373336336438343966353933613233323464396662613037356465
62396433386639626435326438346134393364383664336539363034663534386164306134363162
61656166343439636561643861363136363832383938313733333634373036303730303461396637
63346530306366623731363565646165623163316539636466343765356239343636383734643938
38313230363232306638653263653431313132613432393863346533636430643630336334643634
30333664356563376135653762643435643539356466353235633936643335353932656136356134
62633432643833653462343438393761643664303662336133353437333536646561346439656433
62356133373431626139333362336233666232333030643862643963326463383565356535303265
32646132633631373339393662316462353865333936323261356163373139383865623231323232
32356634396638383265653437386633303965313936343137343631636263373335633131366139
63363936396134663436613835633462373936346564386534336335343837333164623034353362
37666666316131376437316264373338373863616238313366316132653666626137323561326633
39383231633038313265306563636236623036373733333635326263353939656131393065353561
61336438376138643337616136336531356433663464316361383932386664383231336162666231
61613765646234303936396531303436326464313463316264633434396566623361363363356336
64663036376433306135326639643862643661386663303237323235306365343031326637396437
36333939363539383933343766373963633630326630653330336330313464313465396264346564
66346464346230363731616536626161636261343435363337663936313261383639383036386262
30613135373863353232663764663461636564363032636664376364383463343432393232303733
66383461356333333632633837336237323434313734653330303535653561343733653330653739
62383736386538316465663036313636363065386637616561343064393131313763376330323130
39353634356436333665373962393237316436373763616234363666323239653961383832616362
32313433666134323537376638313730333639306663646238636462393034346463656164373864
62303162323339393534303237663430313034373732363566383064373962383134653331333939
65343765653338636163323666353337653833373635343335623662623733323161643362613936
62613263663337363037613462383333353138613364366334376566646331623435313936633136
61653738656231383364393839663235373532376264326238356330363364333539363062616262
32386566653534343664643564366538316533636236393036326262383162393536326139346466
61643634666563316230373133613731303231636535326233623438316132643534383730633230
33303033363634323233363162316361363666383735373939663238376531363330373639616434
38656538316230653237656666666136366165613630643664646462646534306537336631343363
34666535346132366437343536306462663561346564623565393630626566363937656163653361
63346266666161313533346634383064613233303132393739303539346138316330343530663264
31343233363264396333363131396431623531326138633432623939633333363538623736396630
63633233663730653163653664343465323735386532323162616366366230636636646437323333
63633336343165636362303238616333613631623962613661326661623337643961323534663865
34336538396331396534643863353334313662663264636336316138636564613837316239386632
35306530303662653639643932653264366132373866616638393563643838613837306566616165
65306233616232306666616534653463343665616538663666653365373365313339376663313462
62616137663965663634353838303861346566663565666133663338613365613832393632383065
38373961386234643961366135313461323936643963613061366239626139643135663439383734
62653839346562336139623066363161343338643661313135323962653362393461376335643730
65353764666438353563376332653137383030646462346364646663613335653862656235663031
63306266643130663663643336613431353733663734323735363438666134616537376630393362
64333534343666323834393730383962316538393135313766653431333130386465616539366664
62323763333230646239626132326336313939383536323133393333346364306231393361326466
62373061323030383934663264656238366335303434396163623137313039656635386530663831
64303637653437366665653832643065643636343931616466623062343036303364336435633336
61343263346365316530626366356165363361643039616561623566626361313632386330343863
35626265613061376132353562633235363737333938373336313338366337373532383262376638
33353031333463663635656236363130343766636461343631343230316139643664393032663737
34636136303164323337623038613637633666653834356166303635616636393764363531333866
35656332633333306636373861343864666235303566653464643865643161353436353335313936
39653437376537616434666362356334633736393961656332653464623962623865323535356465
66356230616334643832303235623966393235333037653265363530356435656664666236616463
64633135333232626164303331623866623861653333333235646664633135616365393738393765
39356139373366353761366563623261616333303561383261383431303061633066646330616338
37346433666135373035616666353966653139353665613865653632646361366339616235373431
39626466333764643262336264316436313839663864633964623266396638386562313362303033
30316435313265383231303366303266313435613265356361663165656461383765333834653437
61326330316335636535616431326265656362313333386232373762633534363336383034396361
64626264303833663036623335336564663830356230653863613738663565323132383631326166
65366232383763313565376364366662353063363333313031363136393165323664663333363665
36386562346265343435323161313837656433613632656238623338393435616335616436373061
63386563383730653932306661653732336236316263643534613365383932383438346161613565
35313232656233316630613836616337346665393366376362643238386662653665383864633131
66313437336263333862326137383231373265663963643432623337666366396264393565306232
32333034366637336463363461656162303862373437373961376465333232323230353638656330
34616366393134616133653637646139383766646536663362323933343863653434393364313831
37623934313330373263656265356364613661623431343663333439666639373236663539353134
35663438363737326635663462666261663532343263623662366465376137343336356338363231
30393936303639663434653261336432363438643061316438613831393233323666356365353663
31376137326362396461663663306434633562323434313936616233396138393361616266353466
35653664623561653336313466386136613663653964393834623539303235343736373031633664
66323839313165626163343362313530636634353564623164336464346438336434373637343932
30373235343536363734633336373532613164646231386161653935333234663739393539646237
62326238356238303962626665383466383233383833636562323334666565336337376537613863
31346163373037386666313731333137386162616630613038383161613231373866376466316264
35653334353064323431636330613838643035623135663734336362383431366534313032646164
35373866653438633362613434643737663334393732666538363935393135353565363066396133
65383736306130353662643531343762643962643834396230613262616133363330393332383966
38396162633665326633643030623336316565306164393330316338616631346430666430303263
61323639633363316661613963663564663439363461346631353439306162333933636261303162
35343537653631383632643230386561323930323936373732373233613439663839356134303164
63313063623663303964643730633638653561383434623139643736636365663666323833313465
61643965383764343162346666306362323039353036373462643232396365316431636638306462
34376333616337346636333664323465643333376230616532663763663037373964633162363639
32666438643637333663353639646163373837646363343934306435636336643362363565616564
32313433656338643230323338386132643536393835623664633238333737653339623462666635
66393932303330663636613662643138376335303661353333356464666334386439343461663064
39383637343666623239623631373461623632396565343830356534613230333930326365313637
63653862626530303362313763343961643265636239623632653734336664323734383330306132
37643934303837376336336331383064636331313335316338303734616338336634643634393731
64356635353064316437376665643733313165363531656533653132623166313234633332633164
61323935363962636264316564333066303738316534663064653432653066356664346532653164
37623138643435316531656339313935646636336133396330643630626335636461643035346638
35646339393736386336396566346633383934343464636134373738343139373937636630663238
66363839393934323034353166356133616566633730313438336233343461393437356534356132
37303435373666636161333662663164396435373435396630626165636239306232373032633038
35623630623639303037383364376334393966306533333833646436346539313333366534303737
30313661653264663837626537326266623233376434666134666466383237626233386164333131
66656433326434376131383630376134303464653539666261386139393933613834313262393561
30336462643233396630633037373836343033363261366136303765386266613031363331343266
32333835353834623864396635653233366461313731373133303030386161333333383830623433
63393531346533336134336133343033656665376461343133303033616663343065306633646361
64633661313538663930663032306665353164346339363033643662303239663566343232353263
64323362363639383033383334383738303638373138313665373032333732653261616465373038
63616661386539393738363331366233626132363132663435326330363264623431326539393630
32393361646538616439396437666537356361383465303161666363383533663831623564396432
32653630616133343635646162393630653631393861333737636438663466343862386637643961
61623864663338616437333739303836633736626432326361363834386431666330313038316135
39633863346235653435646133643739626666653031373039373230343131336164653231653530
63656663393466383236666362643634383966306563343166393738333738383065633466643135
38313961326134356539323938323166356535356264643863323437656631316366316238303839
36616366383439336165313137306138613564616364323261346436323764346436633539666263
65393234623435323038626662633631386363633636323165396132303663636532316130373538
31613537373464303237633933643935386265303034636637613730663734373763333239393636
62376334633866616566373865393131663061656335376564373062383830303039363936653131
30363366633363346233633035326262313139323639363662303163653033383031376666353330
65363061626266613432336133343135383533653838383661663538346230323339386264353166
61626330616361643462303333666262613437653866316163343266383531336332306634303233
36646564373536656438386261373831353235353033636563313563326664326537313138353066
63353764353665613430383865616238386439636361616239363565386364303538666161616636
37356237366136336665663332303865383633616462336430663663396564633838373033326533
64623833393663376665353931656533316166633933636332616132663834343939363832346637
61313964326137336339626339386634613839373134633864323937633136643531376463653163
63396235393965353766373533643836363761613962633164353664346531633966373563386230
63636364313263393966616561326237373433616162346637613865363732376130616463666664
34623630306238386131393031323238393731353338393764646331643033356338643036656235
62316361336631646633313833633430336562343062383766386232626533646163353136643534
62303166393737623138396633613834633530396239643537313565313361306262393765623866
66346161626436346461326234313132343533323933356635643333393430356332653238313631
38393761653265653365663964366330333234333831333334623466643165376361316363353236
63643037666266326637383761353234623563343132336136626266613936643961383437363762
62303466383234336539643335353232336430376262376662316366633566376637626361323436
36626531323262323262386235306137303334643861663436666462653232616135383537353735
62353733643161393534326233653930646636396139306465646637323833313632623861643963
64363834303933613631

@ -18,17 +18,10 @@ all:
hosts:
localhost:
ansible_connection: local
highsea:
hosts:
highsea.home.jowj.net:
ansible_python_interpreter: /usr/bin/python3
ansible_user: alice
testchat:
hosts:
mattermost-trial:
ansible_host: 104.248.79.77
ansible_python_interpreter: /usr/bin/python3
ansible_user: root
# mediaserver:
# hosts:
# hatchery:
# ansible_python_interpreter: /usr/bin/python3
services:
hosts:
lair:

@ -1,8 +1,7 @@
- name: deploy highsea stack
hosts: highsea
- name: deploy mediaserver
hosts: mediaserver
remote_user: "{{ remote_user }}"
tasks:
- debug: msg="Deploying mediaserver stack to local server"
roles:
# - { name: debian_base }
- { name: highsea }
- { name: mediaserver, tags: ['mediaserver'] }

@ -20,9 +20,9 @@
- name: ensure traefik.log exists
file: state=file path=/home/josiah/apps/traefik/traefik.log owner=josiah group=josiah mode=0700
- name: Create calibre config dir
- name: Create deploy configs dir if it does not exist
file:
path: /home/josiah/apps/calibre
path: /home/josiah/deploys/abjure
state: directory
mode: '0755'

@ -10,7 +10,7 @@ services:
ports:
- 80:80/tcp
- 443:443/tcp
- 8088:8088/tcp
- 8080:8080/tcp
volumes:
- /home/josiah/apps/traefik/acme.json:/acme.json
- traefik_logs:/var/log/access.log
@ -31,7 +31,7 @@ services:
- "traefik.http.routers.mediaserver-traefik-api.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-traefik-api.rule=Host(`lair.home.jowj.net`)&&(PathPrefix(`/api`)||PathPrefix(`/dashboard`)||PathPrefix(`/debug`))"
- "traefik.http.routers.mediaserver-traefik-api.service=api@internal"
- "traefik.http.services.mediaserver-traefik-api.loadbalancer.server.port=8088"
- "traefik.http.services.mediaserver-traefik-api.loadbalancer.server.port=8080"
# - "traefik.http.routers.mediaserver-traefik-api.entrypoints=http"
- "traefik.http.routers.mediaserver-traefik-api.entrypoints=https"
# middleware redirect
@ -88,30 +88,6 @@ services:
networks:
- pubnet
calibre:
image: lscr.io/linuxserver/calibre:latest
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /home/josiah/apps/calibre/:/config # this is where the config / metadata db / cache live
- /media/usenet/book-library/readarr/:/books # this is the library
ports:
# don't use traefik for non 443 / 80 ports.
- 8080:8080
- 8181:8181
- 8081:8081
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-calibre.loadbalancer.server.port=8083"
- "traefik.http.routers.mediaserver-calibre.service=mediaserver-calibre"
- "traefik.http.routers.mediaserver-calibre.rule=Host(`calibre.services.jowj.net`)"
- "traefik.http.routers.mediaserver-calibre.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-calibre.tls=true"
networks:
- pubnet
volumes:
traefik_acme:
traefik_logs:

@ -1 +1 @@
sys_packages: [ 'curl', 'vim', 'git', 'emacs', 'build-essential', 'mosh', 'python3', 'python3-pip', 'nfs-common' ]
sys_packages: [ 'curl', 'vim', 'git', 'emacs', 'build-essential', 'mosh', 'python', 'python3-pip', 'nfs-common' ]

@ -1,208 +0,0 @@
---
version: '3.7'
services:
traefik:
image: traefik:2.5
networks:
- pubnet
command: --web --docker --docker.swarmmode --docker.watch --docker.domain="services.jowj.net" --providers.docker.network=pubnet --logLevel=DEBUG
ports:
- 80:80/tcp
- 443:443/tcp
- 8080:8080/tcp
volumes:
- /home/josiah/apps/traefik/acme.json:/acme.json
- traefik_logs:/var/log/access.log
- /var/run/docker.sock:/var/run/docker.sock
- /home/josiah/apps/traefik/traefik.yml:/traefik.yml
deploy:
mode: global
placement:
constraints:
- node.role == manager
environment:
DO_AUTH_TOKEN: "{{ DO_AUTH_TOKEN }}"
labels:
# Dashboard shit I stole from Micah:
# WARNING: A TRAILING SLASH IS MANDATORY IN THE BROWSER
# e.g. https://example.com/dashboard/, not merely /dashboard
- "traefik.enable=true"
- "traefik.http.routers.highsea-traefik-api.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-traefik-api.rule=Host(`highsea.home.jowj.net`)&&(PathPrefix(`/api`)||PathPrefix(`/dashboard`)||PathPrefix(`/debug`))"
- "traefik.http.routers.highsea-traefik-api.service=api@internal"
- "traefik.http.services.highsea-traefik-api.loadbalancer.server.port=8080"
# - "traefik.http.routers.highsea-traefik-api.entrypoints=http"
- "traefik.http.routers.highsea-traefik-api.entrypoints=https"
# middleware redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
# global redirect to https
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.http-catchall.entrypoints=http"
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
whoami:
image: containous/whoami:latest
networks:
- pubnet
labels:
- "traefik.enable=true"
- "traefik.http.routers.highsea-whoami.rule=Host(`whoami.services.jowj.net`)"
- "traefik.http.routers.highsea-whoami.service=highsea-whoami"
- "traefik.http.services.highsea-whoami.loadbalancer.server.port=80"
- "traefik.http.routers.highsea-whoami.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-whoami.tls=true"
hydra2:
image: linuxserver/nzbhydra2:latest
networks:
- pubnet
volumes:
- /home/josiah/apps/hydra2/:/config
- /home/josiah/Downloads/usenet-complete/:/data/downloads
environment:
PGID: 1000
PUID: 1000
TZ: American/Chicago
labels:
- "traefik.enable=true"
- "traefik.http.services.highsea-hydra2.loadbalancer.server.port=5076"
- "traefik.http.routers.highsea-hydra2.service=highsea-hydra2"
- "traefik.http.routers.highsea-hydra2.rule=Host(`hydra.services.jowj.net`)"
- "traefik.http.routers.highsea-hydra2.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-hydra2.tls=true"
sabnzb:
image: "linuxserver/sabnzbd"
networks:
- pubnet
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/sabnzbd:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/home/josiah/Downloads/usenet-incomplete/:/data/incomplete-downloads"
- "/home/josiah/Downloads/usenet-watched/:/data/watched-folder"
- "/media/usenet/tv:/data/tv"
- "/media/usenet/audio/:/data/music"
- "/media/usenet/movies/:/data/movies"
- "/media/usenet/book-library/yet-to-be-added:/data/books"
labels:
- "traefik.enable=true"
- "traefik.http.services.highsea-sabnzbd.loadbalancer.server.port=8080"
- "traefik.http.routers.highsea-sabnzbd.service=highsea-sabnzbd"
- "traefik.http.routers.highsea-sabnzbd.rule=Host(`sab.services.jowj.net`)"
- "traefik.http.routers.highsea-sabnzbd.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-sabnzbd.tls=true"
sonarr:
image: "linuxserver/sonarr"
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/sonarr:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/media/usenet/tv/:/data/tv"
labels:
- "traefik.enable=true"
- "traefik.http.services.highsea-sonarr.loadbalancer.server.port=8989"
- "traefik.http.routers.highsea-sonarr.service=highsea-sonarr"
- "traefik.http.routers.highsea-sonarr.rule=Host(`sonarr.services.jowj.net`)"
- "traefik.http.routers.highsea-sonarr.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-sonarr.tls=true"
networks:
- pubnet
lidarr:
image: "linuxserver/lidarr"
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/lidarr:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/media/usenet/audio/:/data/music"
labels:
- "traefik.enable=true"
- "traefik.http.services.highsea-lidarr.loadbalancer.server.port=8686"
- "traefik.http.routers.highsea-lidarr.service=highsea-lidarr"
- "traefik.http.routers.highsea-lidarr.rule=Host(`lidarr.services.jowj.net`)"
- "traefik.http.routers.highsea-lidarr.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-lidarr.tls=true"
networks:
- pubnet
radarr:
image: "linuxserver/radarr"
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/radarr:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/media/usenet/movies/:/data/movies"
labels:
- "traefik.enable=true"
- "traefik.http.services.highsea-radarr.loadbalancer.server.port=7878"
- "traefik.http.routers.highsea-radarr.service=highsea-radarr"
- "traefik.http.routers.highsea-radarr.rule=Host(`radarr.services.jowj.net`)"
- "traefik.http.routers.highsea-radarr.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-radarr.tls=true"
networks:
- pubnet
readarr:
image: lscr.io/linuxserver/readarr:develop
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/readarr:/config"
- "/media/usenet/audiobooks:/media/usenet/book-library/readarr/audiobooks"
- "/media/usenet/book-library/readarr:/media/usenet/book-library/readarr" # not ready
- "/home/josiah/Downloads/usenet-complete/books:/data/downloads/books"
labels:
- "traefik.enable=true"
- "traefik.http.services.highsea-readarr.loadbalancer.server.port=8787"
- "traefik.http.routers.highsea-readarr.service=highsea-readarr"
- "traefik.http.routers.highsea-readarr.rule=Host(`readarr.services.jowj.net`)"
- "traefik.http.routers.highsea-readarr.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-readarr.tls=true"
networks:
- pubnet
bazarr:
image: lscr.io/linuxserver/bazarr:latest
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/bazarr:/config"
- "/home/josiah/Downloads/usenet-complete/:/media/downloads"
- "/media/usenet/tv/:/media/tv"
- "/media/usenet/movies/:/media/movies"
labels:
- "traefik.enable=true"
- "traefik.http.services.highsea-bazarr.loadbalancer.server.port=6767"
- "traefik.http.routers.highsea-bazarr.service=highsea-bazarr"
- "traefik.http.routers.highsea-bazarr.rule=Host(`bazarr.services.jowj.net`)"
- "traefik.http.routers.highsea-bazarr.tls.certResolver=highsea-resolver"
- "traefik.http.routers.highsea-bazarr.tls=true"
networks:
- pubnet
volumes:
traefik_acme:
traefik_logs:
networks:
pubnet:
driver: overlay

@ -1 +0,0 @@
sys_packages: [ 'curl', 'vim', 'git', 'emacs', 'build-essential', 'mosh', 'python3', 'python3-pip', 'nfs-common', 'python3-jsondiff']

@ -1,84 +0,0 @@
* Mattermost ansible role
does what it says on the tin.
** before you can run
make sure you copied the appropriate key to the system (which should be done by tf, but check if something doesn't work)
make sure your local agent has the key, moron.
** install guide from mattermost website
Reference: https://docs.mattermost.com/install/install-docker.html#deploy-mattermost-on-docker-for-production-use
In a terminal window, clone the repository and enter the directory.
git clone https://github.com/mattermost/docker
cd docker
Create your .env file by copying and adjusting the env.example file.
cp env.example .env
Important
At a minimum, you must edit the DOMAIN value in the .env file to correspond to the domain for your Mattermost server.
Create the required directories and set their permissions.
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost
Configure TLS for NGINX (optional). If youre not using the included NGINX reverse proxy, you can skip this step.
If creating a new certificate and key:
bash scripts/issue-certificate.sh -d <YOUR_MM_DOMAIN> -o ${PWD}/certs
To include the certificate and key, uncomment the following lines in your .env file and ensure they point to the appropriate files.
#CERT_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/fullchain.pem
#KEY_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/privkey.pem
If using a pre-existing certificate and key:
mkdir -p ./volumes/web/cert
cp <PATH-TO-PRE-EXISTING-CERT>.pem ./volumes/web/cert/cert.pem
cp <PATH-TO-PRE-EXISTING-KEY>.pem ./volumes/web/cert/key-no-password.pem
To include the certificate and key, ensure the following lines in your .env file points to the appropriate files.
CERT_PATH=./volumes/web/cert/cert.pem
KEY_PATH=./volumes/web/cert/key-no-password.pem
Configure SSO with GitLab (optional). If you want to use SSO with GitLab, and youre using a self-signed certificate, you have to add the PKI chain for your authority. This is required to avoid the Token request failed: certificate signed by unknown authority error.
To add the PKI chain, uncomment this line in your .env file, and ensure it points to your pki_chain.pem file:
#GITLAB_PKI_CHAIN_PATH=<path_to_your_gitlab_pki>/pki_chain.pem
Then uncomment this line in your docker-compose.yml file, and ensure it points to the same pki_chain.pem file:
# - ${GITLAB_PKI_CHAIN_PATH}:/etc/ssl/certs/pki_chain.pem:ro
Deploy Mattermost.
Without using the included NGINX:
sudo docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d
To access your new Mattermost deployment, navigate to http://<YOUR_MM_DOMAIN>:8065/ in your browser.
To shut down your deployment:
sudo docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml down
Using the included NGINX:
sudo docker compose -f docker-compose.yml -f docker-compose.nginx.yml up -d
To access your new Mattermost deployment via HTTPS, navigate to https://<YOUR_MM_DOMAIN>/ in your browser.
To shut down your deployment:
sudo docker compose -f docker-compose.yml -f docker-compose.nginx.yml down
Create your first Mattermost System Admin user, invite more users, and explore the Mattermost platform.

@ -1,40 +0,0 @@
---
# git clone my repo
# set up secrets here in ansible
# replace env file with custom env file that references secrets
# bobs your uncle?
- name: Pull down the latest update from fork
git:
repo: 'https://git.awful.club/jowj/mattermost-docker.git'
dest: /home/josiah/mattermost/
version: main
- name: copy over my custom env file
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: 0777
with_items:
- {src: 'env.j2', dest: '/home/josiah/mattermost/.env'}
# i'm not setting owner/group here and might need to
- name: ensure the required MM directories exist
file:
state: directory
path: "{{ item }}"
owner: 2000
group: 2000
mode: 0700
recurse: yes
with_items:
[ '/home/josiah/mattermost/volumes/app/mattermost/config', '/home/josiah/mattermost/volumes/app/mattermost/data', '/home/josiah/mattermost/volumes/app/mattermost/logs', '/home/josiah/mattermost/volumes/app/mattermost/plugins', '/home/josiah/mattermost/volumes/app/mattermost/client/plugins', '/home/josiah/mattermost/volumes/app/mattermost/bleve-indexes' ]
- name: Deploy mattermost with compose
docker_compose:
project_src: "/home/josiah/mattermost"
project_name: mm
files:
- docker-compose.yml
# - docker-compose.without-nginx.yml
- docker-compose.nginx.yml

@ -1,87 +0,0 @@
# Domain of service
DOMAIN=mattermost.awful.club
# Container settings
## Timezone inside the containers. The value needs to be in the form 'Europe/Berlin'.
## A list of these tz database names can be looked up at Wikipedia
## https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TZ=UTC
RESTART_POLICY=unless-stopped
# Postgres settings
## Documentation for this image and available settings can be found on hub.docker.com
## https://hub.docker.com/_/postgres
## Please keep in mind this will create a superuser and it's recommended to use a less privileged
## user to connect to the database.
## A guide on how to change the database user to a nonsuperuser can be found in docs/creation-of-nonsuperuser.md
POSTGRES_IMAGE_TAG=13-alpine
POSTGRES_DATA_PATH=./volumes/db/var/lib/postgresql/data
POSTGRES_USER={{ vault_mm_POSTGRES_USER }}
POSTGRES_PASSWORD= {{ vault_mm_POSTGRES_PASSWORD }}
POSTGRES_DB={{ vault_mm_POSTGRES_DB }}
# Nginx
## The nginx container will use a configuration found at the NGINX_MATTERMOST_CONFIG. The config aims
## to be secure and uses a catch-all server vhost which will work out-of-the-box. For additional settings
## or changes ones can edit it or provide another config. Important note: inside the container, nginx sources
## every config file inside */etc/nginx/conf.d* ending with a *.conf* file extension.
## Inside the container the uid and gid is 101. The folder owner can be set with
## `sudo chown -R 101:101 ./nginx` if needed.
NGINX_IMAGE_TAG=alpine
## The folder containing server blocks and any additional config to nginx.conf
NGINX_CONFIG_PATH=./nginx/conf.d
NGINX_DHPARAMS_FILE=./nginx/dhparams4096.pem
CERT_PATH=./volumes/web/cert/cert.pem
KEY_PATH=./volumes/web/cert/key-no-password.pem
#GITLAB_PKI_CHAIN_PATH=<path_to_your_gitlab_pki>/pki_chain.pem
#CERT_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/fullchain.pem
#KEY_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/privkey.pem
## Exposed ports to the host. Inside the container 80, 443 and 8443 will be used
HTTPS_PORT=443
HTTP_PORT=80
CALLS_PORT=8443
# Mattermost settings
## Inside the container the uid and gid is 2000. The folder owner can be set with
## `sudo chown -R 2000:2000 ./volumes/app/mattermost`.
MATTERMOST_CONFIG_PATH=./volumes/app/mattermost/config
MATTERMOST_DATA_PATH=./volumes/app/mattermost/data
MATTERMOST_LOGS_PATH=./volumes/app/mattermost/logs
MATTERMOST_PLUGINS_PATH=./volumes/app/mattermost/plugins
MATTERMOST_CLIENT_PLUGINS_PATH=./volumes/app/mattermost/client/plugins
MATTERMOST_BLEVE_INDEXES_PATH=./volumes/app/mattermost/bleve-indexes
## Bleve index (inside the container)
MM_BLEVESETTINGS_INDEXDIR=/mattermost/bleve-indexes
## This will be 'mattermost-enterprise-edition' or 'mattermost-team-edition' based on the version of Mattermost you're installing.
MATTERMOST_IMAGE=mattermost-enterprise-edition
## Update the image tag if you want to upgrade your Mattermost version. You may also upgrade to the latest one. The example is based on the latest Mattermost ESR version.
MATTERMOST_IMAGE_TAG=8.1.9
## Make Mattermost container readonly. This interferes with the regeneration of root.html inside the container. Only use
## it if you know what you're doing.
## See https://github.com/mattermost/docker/issues/18
MATTERMOST_CONTAINER_READONLY=false
## The app port is only relevant for using Mattermost without the nginx container as reverse proxy. This is not meant
## to be used with the internal HTTP server exposed but rather in case one wants to host several services on one host
## or for using it behind another existing reverse proxy.
APP_PORT=8065
## Configuration settings for Mattermost. Documentation on the variables and the settings itself can be found at
## https://docs.mattermost.com/administration/config-settings.html
## Keep in mind that variables set here will take precedence over the same setting in config.json. This includes
## the system console as well and settings set with env variables will be greyed out.
## Below one can find necessary settings to spin up the Mattermost container
MM_SQLSETTINGS_DRIVERNAME=postgres
MM_SQLSETTINGS_DATASOURCE=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable&connect_timeout=10
## Example settings (any additional setting added here also needs to be introduced in the docker-compose.yml)
MM_SERVICESETTINGS_SITEURL=https://${DOMAIN}

@ -31,50 +31,51 @@
groups=docker
append=yes
# TODO: Partition, detect PV, add new disk to LVM.
- name: Mount usenet volume
ansible.posix.mount:
src: storage.home.jowj.net:/volume1/usenet
path: /media/usenet
opts: rw,sync,hard
state: mounted
fstype: nfs
- name: Init a new swarm with default parameters
community.general.docker_swarm:
state: present
# set up mediaserver specific bullshit.
- name: ensure app dir exists
file:
path: /home/josiah/apps/
state: directory
recurse: yes
owner: josiah
group: josiah
- name: ensure traefik config directory exists
file: state=directory path=/home/josiah/apps/traefik/ owner=josiah group=josiah mode=0700
- name: ensure the webdav-docker repo exists
git:
repo: 'https://git.awful.club/hosted/webdav-docker.git'
dest: /home/josiah/apps/webdav-docker/
version: master
- name: build jlj-webdav image
community.general.docker_image:
name: jlj-webdav
build:
path: /home/josiah/apps/webdav-docker/latest
dockerfile: Dockerfile
source: build
- name: ensure mediaserver config directory exists
file: state=directory path=/home/josiah/apps/mediaserver/ owner=josiah group=josiah mode=0700
- name: ensure app config directory exists
file:
path: /home/josiah/apps/{{ item }}
state: directory
recurse: yes
owner: josiah
group: josiah
loop: [ 'traefik', 'hydra2', 'sabnzbd', 'readarr', 'radarr', 'lidarr', 'sonarr', 'bazarr', 'highsea' ]
# TODO: Figure out why this doesn't actually create the log if its not present?
- name: ensure traefik.log exists
file: state=file path=/home/josiah/apps/traefik/traefik.log owner=josiah group=josiah mode=0700
- name: allow for pretty json errors
pip:
name: jsondiff
- name: Create deploy configs dir if it does not exist
file:
state: file
path: /home/josiah/apps/traefik/traefik.log
path: /home/josiah/deploys/mediaserver
state: directory
mode: '0755'
- name: copy over highsea config files
- name: copy over mediaserver config files
template:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: 0777
with_items:
- {src: 'highsea-compose.yml', dest: '/home/josiah/apps/highsea/highsea-compose.yml'}
- {src: 'mediaserver-compose.yml', dest: '/home/josiah/apps/mediaserver/mediaserver-compose.yml'}
- {src: 'traefik.yml.j2', dest: '/home/josiah/apps/traefik/traefik.yml'}
- name: Ensure acme.json exists
@ -87,22 +88,22 @@
state: file
mode: '0600'
- name: Remove the highsea stack
- name: Remove the mediaserver stack
block:
- name: Remove the highsea stack
- name: Remove the mediaserver stack
docker_stack:
state: absent
name: highsea
name: mediaserver
compose:
- /home/josiah/apps/highsea/highsea-compose.yml
- /home/josiah/apps/mediaserver/mediaserver-compose.yml
- name: Pause so the network gets deleted too
pause:
seconds: 15
- name: Deploy highsea stack
- name: Deploy mediaserver stack
docker_stack:
state: present
name: highsea
name: mediaserver
prune: yes
compose:
- /home/josiah/apps/highsea/highsea-compose.yml
- /home/josiah/apps/mediaserver/mediaserver-compose.yml

@ -12,4 +12,11 @@ ACME_EMAIL=admin@home.jowj.net
# The Traefik dashboard will be available at these domains.
# The URL is http://example.com/traefik/
# You'll need to fill in BASIC_AUTH above.
TRAEFIK_DOMAINS=highsea.home.jowj.net
TRAEFIK_DOMAINS=hatchery.home.jowj.net
# Your WebDAV site will be available at these domains. Every domain
# needs DNS records pointing to your server for SSL to work.
WEBDAV_DOMAINS=example.com,www.example.com
# Set the URL path where you want your WebDAV site to be.
WEBDAV_LOCATION=/webdav

@ -0,0 +1,291 @@
---
version: '3.7'
services:
traefik:
image: traefik:2.5
networks:
- pubnet
command: --web --docker --docker.swarmmode --docker.watch --docker.domain="services.jowj.net" --providers.docker.network=pubnet --logLevel=DEBUG
ports:
- 80:80/tcp
- 443:443/tcp
- 8080:8080/tcp
volumes:
- /home/josiah/apps/traefik/acme.json:/acme.json
- traefik_logs:/var/log/access.log
- /var/run/docker.sock:/var/run/docker.sock
- /home/josiah/apps/traefik/traefik.yml:/traefik.yml
deploy:
mode: global
placement:
constraints:
- node.role == manager
environment:
DO_AUTH_TOKEN: "{{ DO_AUTH_TOKEN }}"
labels:
# Dashboard shit I stole from Micah:
# WARNING: A TRAILING SLASH IS MANDATORY IN THE BROWSER
# e.g. https://example.com/dashboard/, not merely /dashboard
- "traefik.enable=true"
- "traefik.http.routers.mediaserver-traefik-api.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-traefik-api.rule=Host(`hatchery.home.jowj.net`)&&(PathPrefix(`/api`)||PathPrefix(`/dashboard`)||PathPrefix(`/debug`))"
- "traefik.http.routers.mediaserver-traefik-api.service=api@internal"
- "traefik.http.services.mediaserver-traefik-api.loadbalancer.server.port=8080"
# - "traefik.http.routers.mediaserver-traefik-api.entrypoints=http"
- "traefik.http.routers.mediaserver-traefik-api.entrypoints=https"
# middleware redirect
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
# global redirect to https
- "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
- "traefik.http.routers.http-catchall.entrypoints=http"
- "traefik.http.routers.http-catchall.middlewares=redirect-to-https"
hydra2:
image: linuxserver/nzbhydra2:latest
networks:
- pubnet
volumes:
- /home/josiah/apps/hydra2/:/config
- /home/josiah/Downloads/usenet-complete/:/data/downloads
environment:
PGID: 1000
PUID: 1000
TZ: American/Chicago
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-hydra2.loadbalancer.server.port=5076"
- "traefik.http.routers.mediaserver-hydra2.service=mediaserver-hydra2"
- "traefik.http.routers.mediaserver-hydra2.rule=Host(`hydra.services.jowj.net`)"
- "traefik.http.routers.mediaserver-hydra2.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-hydra2.tls=true"
sabnzb:
image: "linuxserver/sabnzbd"
networks:
- pubnet
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/sabnzbd:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/home/josiah/Downloads/usenet-incomplete/:/data/incomplete-downloads"
- "/home/josiah/Downloads/usenet-watched/:/data/watched-folder"
- "/media/usenet/tv:/data/tv"
- "/media/usenet/audio/:/data/music"
- "/media/usenet/movies/:/data/movies"
- "/media/usenet/book-library/yet-to-be-added:/data/books"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-sabnzbd.loadbalancer.server.port=8080"
- "traefik.http.routers.mediaserver-sabnzbd.service=mediaserver-sabnzbd"
- "traefik.http.routers.mediaserver-sabnzbd.rule=Host(`sab.services.jowj.net`)"
- "traefik.http.routers.mediaserver-sabnzbd.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-sabnzbd.tls=true"
sonarr:
image: "linuxserver/sonarr"
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/sonarr:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/media/usenet/tv/:/data/tv"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-sonarr.loadbalancer.server.port=8989"
- "traefik.http.routers.mediaserver-sonarr.service=mediaserver-sonarr"
- "traefik.http.routers.mediaserver-sonarr.rule=Host(`sonarr.services.jowj.net`)"
- "traefik.http.routers.mediaserver-sonarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-sonarr.tls=true"
networks:
- pubnet
lidarr:
image: "linuxserver/lidarr"
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/lidarr:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/media/usenet/audio/:/data/music"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-lidarr.loadbalancer.server.port=8686"
- "traefik.http.routers.mediaserver-lidarr.service=mediaserver-lidarr"
- "traefik.http.routers.mediaserver-lidarr.rule=Host(`lidarr.services.jowj.net`)"
- "traefik.http.routers.mediaserver-lidarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-lidarr.tls=true"
networks:
- pubnet
radarr:
image: "linuxserver/radarr"
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/radarr:/config"
- "/home/josiah/Downloads/usenet-complete/:/data/downloads"
- "/media/usenet/movies/:/data/movies"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-radarr.loadbalancer.server.port=7878"
- "traefik.http.routers.mediaserver-radarr.service=mediaserver-radarr"
- "traefik.http.routers.mediaserver-radarr.rule=Host(`radarr.services.jowj.net`)"
- "traefik.http.routers.mediaserver-radarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-radarr.tls=true"
networks:
- pubnet
whoami:
image: containous/whoami:latest
networks:
- pubnet
labels:
- "traefik.enable=true"
- "traefik.http.routers.mediaserver-whoami.rule=Host(`whoami.services.jowj.net`)"
- "traefik.http.routers.mediaserver-whoami.service=mediaserver-whoami"
- "traefik.http.services.mediaserver-whoami.loadbalancer.server.port=80"
- "traefik.http.routers.mediaserver-whoami.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-whoami.tls=true"
tubesync:
image: ghcr.io/meeb/tubesync:latest
networks:
- pubnet
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
LISTEN_HOST: "0.0.0.0"
LISTEN_PORT: '8080'
volumes:
- "/home/josiah/apps/tubesync-config:/config"
- "/media/usenet/youtube:/downloads"
labels:
- "traefik.enable=true"
- "traefik.docker.network=pubnet"
- "traefik.http.routers.mediaserver-tubesync.rule=Host(`tubesync.services.jowj.net`)"
- "traefik.http.services.mediaserver-tubesync.loadbalancer.server.port=4848"
- "traefik.http.routers.mediaserver-tubesync.service=mediaserver-tubesync"
- "traefik.http.routers.mediaserver-tubesync.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-tubesync.tls=true"
audiobookshelf:
image: ghcr.io/advplyr/audiobookshelf:latest
networks:
- pubnet
environment:
PUID: 1000
PGID: 1000
AUDIOBOOKSHELF_UID: 1000
AUDIOBOOKSHELF_GID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/audiobookshelf/config:/config"
- "/home/josiah/apps/audiobookshelf/metadata:/metadata"
- "/media/usenet/audiobooks:/audiobooks"
- "/media/usenet/podcasts:/podcasts"
labels:
- "traefik.enable=true"
- "traefik.docker.network=pubnet"
- "traefik.http.routers.mediaserver-audiobookshelf.rule=Host(`audiobookshelf.services.jowj.net`)"
- "traefik.http.services.mediaserver-audiobookshelf.loadbalancer.server.port=80"
- "traefik.http.routers.mediaserver-audiobookshelf.service=mediaserver-audiobookshelf"
- "traefik.http.routers.mediaserver-audiobookshelf.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-audiobookshelf.tls=true"
readarr:
image: lscr.io/linuxserver/readarr:develop
container_name: readarr
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/readarr/config:/config"
- "/media/usenet/audiobooks:/media/usenet/book-library/readarr/audiobooks"
- "/media/usenet/book-library/readarr:/media/usenet/book-library/readarr" # not ready
- "/home/josiah/Downloads/usenet-complete/:/media/downloads"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-readarr.loadbalancer.server.port=8787"
- "traefik.http.routers.mediaserver-readarr.service=mediaserver-readarr"
- "traefik.http.routers.mediaserver-readarr.rule=Host(`readarr.services.jowj.net`)"
- "traefik.http.routers.mediaserver-readarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-readarr.tls=true"
networks:
- pubnet
bazarr:
image: lscr.io/linuxserver/bazarr:latest
environment:
PUID: 1000
PGID: 1000
TZ: America/Chicago
volumes:
- "/home/josiah/apps/bazarr/config:/config"
- "/home/josiah/Downloads/usenet-complete/:/media/downloads"
- "/media/usenet/tv/:/media/tv"
- "/media/usenet/movies/:/media/movies"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-bazarr.loadbalancer.server.port=6767"
- "traefik.http.routers.mediaserver-bazarr.service=mediaserver-bazarr"
- "traefik.http.routers.mediaserver-bazarr.rule=Host(`bazarr.services.jowj.net`)"
- "traefik.http.routers.mediaserver-bazarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-bazarr.tls=true"
networks:
- pubnet
stash:
image: git.awful.club/packages/hoard:latest
## If you intend to use stash's DLNA functionality uncomment the below network mode and comment out the above ports section
# network_mode: host
logging:
driver: "json-file"
options:
max-file: "10"
max-size: "2m"
environment:
- STASH_STASH=/data/
- STASH_GENERATED=/generated/
- STASH_METADATA=/metadata/
- STASH_CACHE=/cache/
## Adjust below to change default port (9999)
# - STASH_PORT=9999
volumes:
- /etc/localtime:/etc/localtime:ro
- "{{ vault_stash_config }}:/root/.stash"
- "{{ vault_stash_data }}:/data"
- "{{ vault_stash_metadata }}:/metadata"
- "{{ vault_stash_cache }}:/cache"
- "{{ vault_stash_generated }}:/generated"
labels:
- "traefik.enable=true"
- "traefik.http.services.mediaserver-hoard.loadbalancer.server.port=9999"
- "traefik.http.routers.mediaserver-hoard.service=mediaserver-hoard"
- "traefik.http.routers.mediaserver-hoard.rule=Host(`hoard.services.jowj.net`)"
- "traefik.http.routers.mediaserver-hoard.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-hoard.tls=true"
networks:
- pubnet
volumes:
traefik_acme:
traefik_logs:
vol-webdav:
networks:
pubnet:
driver: overlay

@ -22,13 +22,13 @@ entryPoints:
http:
middlewares:
highsea-https-redir:
mediaserver-https-redir:
redirectScheme:
scheme: https
permanent: true
certificatesResolvers:
highsea-resolver:
mediaserver-resolver:
acme:
storage: /acme.json
email: "admin@home.jowj.net"

@ -0,0 +1 @@
sys_packages: [ 'curl', 'vim', 'git', 'emacs', 'build-essential', 'mosh', 'python', 'python3-pip' ]

@ -6,7 +6,6 @@ provider "registry.terraform.io/digitalocean/digitalocean" {
constraints = "~> 2.29.0"
hashes = [
"h1:OLSxMaqLOUl6DjQ3vz14odCyMCcLA63ltBNPgrIQHG4=",
"h1:mJrr4YaOsB7bWfCSJZneiXB6JMnVNnFxYRmQ8vKaOSQ=",
"zh:0af0a1a2de818c5dc8ee7ad4dc4731452848e84cfa0c1ce514af1c7aad15c53c",
"zh:27229f3162b4142be48554f56227265982f3b74e4c79fa5d2528c8a3912d1e19",
"zh:31d6e73bfe12231fa0ab3bbeef0e4aa9822a2008ae2a1a8b22557bdada4af7a3",
@ -31,7 +30,6 @@ provider "registry.terraform.io/telmate/proxmox" {
constraints = "2.7.4"
hashes = [
"h1:ivNrl7WU2BJwIKmB1lLr70+GtXBCfzW+K5tvNpYy454=",
"h1:lgfUuXLdyY2Uf5mO7eJNfJC/fsoUDyBsCpxA/rbs3Z4=",
"zh:3c2163b167d1e342e1683015cd08c70838d1c631b8e374ac6f86ca2c41271a8c",
"zh:453596419e07cd0c41f5f58dd7775664fa685de403e9776197b1502e79bf3814",
"zh:492045cf7859bc31a57730b876dcc29d902a24d543a30a67f34b0ee2b4a71a33",

@ -0,0 +1,50 @@
provider "proxmox" {
# url is the hostname (FQDN if you have one) for the proxmox host you'd like to connect to to issue the commands.
pm_api_url = "https://192.168.1.230:8006/api2/json"
pm_api_token_id = var.PM_API_TOKEN_ID
pm_api_token_secret = var.PM_API_TOKEN_SECRET
pm_tls_insecure = true
}
resource "proxmox_vm_qemu" "high-sea" {
name = "high-sea"
target_node = var.high-sea-host
clone = var.template_name
# basic VM settings here. agent refers to guest agent
agent = 1
os_type = "debian"
cores = 2
sockets = 1
cpu = "host"
memory = 4096
scsihw = "virtio-scsi-pci"
bootdisk = "scsi0"
disk {
slot = 0
# set disk size here. leave it small for testing because expanding the disk takes time.
size = "40G"
type = "scsi"
storage = "sainthood-cifs"
iothread = 0
}
# if you want two NICs, just copy this whole network section and duplicate it
network {
model = "virtio"
bridge = "vmbr0"
}
# not sure exactly what this is for. presumably something about MAC addresses and ignore network changes during the life of the VM
lifecycle {
ignore_changes = [
network,
]
}
ipconfig0 = "ip=10.10.1.10/24,gw=10.98.1.1"
# sshkeys set using variables. the variable contains the text of the key.
}
# Configure DO DNS after VM is build. A record to point to machine?

@ -20,8 +20,8 @@ terraform {
# This is actually not needed, but declaring it here helps me remember where its supposed to live.
# You gotta comment these out when initing the terraform backend? for some reason.
#shared_credentials_files = ["~/.aws/credentials"]
#shared_config_files = ["~/.aws/config"]
shared_credentials_files = ["~/.aws/credentials"]
shared_config_files = ["~/.aws/config"]
}
}

@ -1,118 +0,0 @@
provider "proxmox" {
# url is the hostname (FQDN if you have one) for the proxmox host you'd like to connect to to issue the commands.
pm_api_url = "https://192.168.1.247:8006/api2/json"
pm_api_token_id = var.PM_API_TOKEN_ID
pm_api_token_secret = var.PM_API_TOKEN_SECRET
pm_tls_insecure = true
}
resource "proxmox_vm_qemu" "high-sea" {
name = "high-sea"
target_node = var.high-sea-host
clone = var.template_name
# basic VM settings here. agent refers to guest agent
agent = 1
os_type = "debian"
cores = 2
sockets = 1
cpu = "host"
memory = 4096
scsihw = "virtio-scsi-pci"
bootdisk = "scsi0"
ciuser = "alice"
sshkeys = <<-EOT
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAZhFDzl1lbhWJ7MiTV3+Z1EY8M5b4cH/+ju4uo1d91 admin@home.jowj.net
EOT
# This is our OS disk
disk {
slot = 0
# set disk size here. leave it small for testing because expanding the disk takes time.
# You can't actually set this to anything, it doesn't seem? I'm not sure why. if you clone from a template you ALWAYS get that templates size, and any changes made are not seen on the clone vm.
# Maybe a function of the kind of disk that was created?
size = "32G"
type = "scsi"
storage = "workload_data"
iothread = 0
}
# This is our data disk; we're just adding the data disk capaccity to LVM, so its maybe dumb? but that's what i'm doing for now.
disk {
slot = 1
size = "240G"
type = "scsi"
storage = "workload_data"
iothread = 0
}
# if you want two NICs, just copy this whole network section and duplicate it
network {
model = "virtio"
bridge = "vmbr0"
}
# not sure exactly what this is for. presumably something about MAC addresses and ignore network changes during the life of the VM
lifecycle {
ignore_changes = [
network,
]
}
# sshkeys set using variables. the variable contains the text of the key.
}
# Configure DO DNS after VM is build. A record to point to machine?
# See records_home.jowj.net.tf file in do_domains.
# resource "proxmox_vm_qemu" "testchat01" {
# name = "testchat01"
# target_node = "exgod"
# clone = var.template_name
# # basic VM settings here. agent refers to guest agent
# agent = 1
# os_type = "debian"
# cores = 2
# sockets = 1
# cpu = "host"
# memory = 2048
# scsihw = "virtio-scsi-pci"
# bootdisk = "scsi0"
# ciuser = "alice"
# sshkeys = <<-EOT
# ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPAZhFDzl1lbhWJ7MiTV3+Z1EY8M5b4cH/+ju4uo1d91 admin@home.jowj.net
# EOT
# # This is our OS disk
# disk {
# slot = 0
# # set disk size here. leave it small for testing because expanding the disk takes time.
# # You can't actually set this to anything, it doesn't seem? I'm not sure why. if you clone from a template you ALWAYS get that templates size, and any changes made are not seen on the clone vm.
# # Maybe a function of the kind of disk that was created?
# size = "32G"
# type = "scsi"
# storage = "workload_data"
# iothread = 0
# }
# # This is our data disk; we're just adding the data disk capaccity to LVM, so its maybe dumb? but that's what i'm doing for now.
# disk {
# slot = 1
# size = "240G"
# type = "scsi"
# storage = "workload_data"
# iothread = 0
# }
# # if you want two NICs, just copy this whole network section and duplicate it
# network {
# model = "virtio"
# bridge = "vmbr0"
# }
# # not sure exactly what this is for. presumably something about MAC addresses and ignore network changes during the life of the VM
# lifecycle {
# ignore_changes = [
# network,
# ]
# }
# # sshkeys set using variables. the variable contains the text of the key.
# }

@ -66,6 +66,10 @@ output "digitalocean_record_tfer--273019966_id" {
value = "${digitalocean_record.tfer--273019966.id}"
}
output "digitalocean_record_tfer--273019998_id" {
value = "${digitalocean_record.tfer--273019998.id}"
}
output "digitalocean_record_tfer--273021791_id" {
value = "${digitalocean_record.tfer--273021791.id}"
}
@ -78,6 +82,10 @@ output "digitalocean_record_tfer--273021839_id" {
value = "${digitalocean_record.tfer--273021839.id}"
}
output "digitalocean_record_tfer--273024307_id" {
value = "${digitalocean_record.tfer--273024307.id}"
}
output "digitalocean_record_tfer--273196064_id" {
value = "${digitalocean_record.tfer--273196064.id}"
}
@ -122,6 +130,14 @@ output "digitalocean_record_tfer--282785137_id" {
value = "${digitalocean_record.tfer--282785137.id}"
}
output "digitalocean_record_tfer--289972404_id" {
value = "${digitalocean_record.tfer--289972404.id}"
}
output "digitalocean_record_tfer--318001321_id" {
value = "${digitalocean_record.tfer--318001321.id}"
}
output "digitalocean_record_tfer--318333757_id" {
value = "${digitalocean_record.tfer--318333757.id}"
}

@ -406,15 +406,3 @@ resource "digitalocean_record" "tfer--98495666" {
value = "134.209.53.112"
weight = "0"
}
resource "digitalocean_record" mattermost-dns {
domain = "awful.club"
flags = "0"
name = "mattermost"
port = "0"
priority = "0"
ttl = "900"
type = "A"
value = "104.248.79.77"
weight = "0"
}

@ -213,23 +213,3 @@ resource "digitalocean_record" demiurge-dns {
value = "100.108.60.46"
weight = "0"
}
# this motherfucker is currently set manually.
# TODO: Figure out how to do this programmatically
# Especailly because getting the output of tailscale is difficult??
resource "digitalocean_record" highsea-dns {
domain = "home.jowj.net"
flags = "0"
name = "highsea"
port = "0"
priority = "0"
ttl = "900"
type = "A"
value = "100.72.101.61"
weight = "0"
}
# this motherfucker is currently set manually.
# TODO: Figure out how to do this programmatically
# Especailly because getting the output of tailscale is difficult??

@ -46,6 +46,30 @@ resource "digitalocean_record" "tfer--273019966" {
weight = "0"
}
resource "digitalocean_record" "tfer--273019998" {
domain = "services.jowj.net"
flags = "0"
name = "tubesync"
port = "0"
priority = "0"
ttl = "900"
type = "CNAME"
value = "hatchery.home.jowj.net."
weight = "0"
}
resource "digitalocean_record" "tfer--273024307" {
domain = "services.jowj.net"
flags = "0"
name = "watchtower"
port = "0"
priority = "0"
ttl = "900"
type = "CNAME"
value = "hatchery.home.jowj.net."
weight = "0"
}
resource "digitalocean_record" "tfer--273196064" {
domain = "services.jowj.net"
flags = "0"
@ -54,7 +78,7 @@ resource "digitalocean_record" "tfer--273196064" {
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
@ -116,7 +140,7 @@ resource "digitalocean_record" "tfer--282780675" {
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
@ -128,7 +152,7 @@ resource "digitalocean_record" "tfer--282785060" {
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
@ -140,7 +164,7 @@ resource "digitalocean_record" "tfer--282785080" {
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
@ -152,7 +176,7 @@ resource "digitalocean_record" "tfer--282785089" {
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
@ -164,51 +188,63 @@ resource "digitalocean_record" "tfer--282785137" {
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
resource "digitalocean_record" "tfer--318333757" {
resource "digitalocean_record" "tfer--289972404" {
domain = "services.jowj.net"
flags = "0"
name = "readarr"
name = "requests"
port = "0"
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
resource "digitalocean_record" "tfer--326222435" {
resource "digitalocean_record" "tfer--318001321" {
domain = "services.jowj.net"
flags = "0"
name = "bazarr"
name = "audiobookshelf"
port = "0"
priority = "0"
ttl = "900"
type = "CNAME"
value = "highsea.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
resource "digitalocean_record" "tfer--318333757" {
domain = "services.jowj.net"
flags = "0"
name = "readarr"
port = "0"
priority = "0"
ttl = "900"
type = "CNAME"
value = "hatchery.home.jowj.net."
weight = "0"
}
resource "digitalocean_record" "tfer--360787392" {
resource "digitalocean_record" "tfer--326222435" {
domain = "services.jowj.net"
flags = "0"
name = "hoard"
name = "bazarr"
port = "0"
priority = "0"
ttl = "900"
type = "CNAME"
value = "lair.home.jowj.net."
value = "hatchery.home.jowj.net."
weight = "0"
}
resource "digitalocean_record" "pms-services-jowj-net" {
resource "digitalocean_record" "tfer--360787392" {
domain = "services.jowj.net"
flags = "0"
name = "pms"
name = "hoard"
port = "0"
priority = "0"
ttl = "900"
@ -217,10 +253,10 @@ resource "digitalocean_record" "pms-services-jowj-net" {
weight = "0"
}
resource "digitalocean_record" "calibre-services-jowj-net" {
resource "digitalocean_record" "pms-services-jowj-net" {
domain = "services.jowj.net"
flags = "0"
name = "calibre"
name = "pms"
port = "0"
priority = "0"
ttl = "900"

Loading…
Cancel
Save