Working webdav commit with one big oopsie.

the FUCKING bytemark image fucking recursively chowns everything you
mount to its fucking directory, which if collossally fucking stupid.

now i've gotta go build my own fucking image and test it and make sure
it works and fuck :(
master
josiah 3 years ago
parent 76f7f70c1d
commit c1c7f552b6

@ -1,91 +1,94 @@
$ANSIBLE_VAULT;1.1;AES256
30643032326264646432303364373735613262346362643131633532373534613638343365323037
6538646464353734343265346639636266353436313461330a336337363134646163366133626330
37646530653363343130613964316463336230646435376632396366643231323266373462343535
3762333865303462640a333464666335323437643637313535666237323337313931326237633061
34306665396466306439623035393034346561336430653338303937343164363065333865393934
34346264373630643961643431663464666130376561373533346166666361643538373737313231
66376231623934313832313364666338303032303261613537373634616638616264333561396561
63646364386562613233303633333533393961363539383661633331383735663837616366626339
37396137353532393635666566656337303137326230313130633465343133653936623032356630
62346130323864306533653634643133393138316637633136666364383633663132623265353232
33633562643361363062613734356339366466656436643837376166353839393836653030343766
30356435626364323231336435613934353138313233393634353961323235616465656630303939
35376338656666396664636562616337336566336565366465383063373236366364393338653665
66623931633134303633623665653437376136643035653263343066616132383434636235346232
63326337613536656435373432383265666466656535643364396465396230613838343761646637
64643432333333313330656462656133663439333137353661353061613235656663373238613536
66663236373964343531643335323132376266363436316330333664633038343931633439633230
63306562363832656131346537383937373834356635383134353231363864363865363036616666
33633730316135303039633831373130343163633765656330363062656637646236646135393433
37636633623935306135303938356463616365346365646337623639393737646261346232633537
65623034383962336430353739373530626461653462393762343864373961653963313539396136
61363239333461353962356130656632363461373064306266356436323833303464353739396561
34346262653234333966363037303062393435333066363136643463313363376534663738323632
34363535386439353833343131633765343166336638663630313465613335393561343530373238
65633365303264306264626135363232653535373062666136383638623465666163363438333462
37363536393537323836646531323738636261303532653265653833653632346634346333306131
62656632383734663666613965386562313663373166336437343238393266383231643033643534
38356237356433356361633465396533626233326338303333646564366238383766343765393038
62373735363737633030636562346662356463353861653762663361356362323436313338333365
36653137356566613662326432636337626232383339393165343036376232333630346663646134
65333265353230303437663937373762366437616633306131363763633764626362613134636133
36376530363534373931343739626261633833353938613733336333383131313332613434306564
62663637643564313532383233636136323235363835313330323463303561663663656232346266
33383266313463373834353831333061316133633732653039343565323331323532626639363461
33383064666238383963306337316233646231316531313564616430663236653738636231333832
35643330303563323863343530636666633361393339653438646131333531666633366238643864
38306161666439353632633563343461353439396236343232333034346635313032306236653838
66383838386231366637646530643832386336623837316636376234316363386162316163343931
35366131653930353337346633383861366232316565613363653966613363396234383766623039
65666464373062333530373863333863343830316630306236626438393266346239613738343337
37653663373935333632383638306636366236326438313163626332343132303130316134316636
63306332646166393365386562396633313232616431646233336464363832333164383937653634
31363731613133393937346330653864666536663130346564623333316137373736386566613263
32313131363038323335346663336537333238333965633965333030363163656465396564643763
37643532356165316666383031353364336331343363346366356466333438326537343363646436
38363763333063636337613861643366313030383931663665303035396437373539366436616532
35313863356234343666353631663862646662393535666439343231663661353063643839353033
34366337613935336632363938616461376239363636626134333765393939643865376638353230
61633931333062313366383261363665396634343836373030313066333339373163646364363363
64323366373739383066643436666538366132613931393831326133366466626264313638373235
63373035323133303437353631656463626131346233353137333464633765323932303431373536
37306639386137353134613764623334626632326135303437643930663339353233623630633833
35373938633664666365646536313131626234333731663434383864656161623039393963336537
31616134336563353132623332386333373532366561373363383639653038383864323637323137
64343765663234346530353136333064613839666136303230376239663164333134316134613635
39333939656534643138343462326562653038306464653338653961656332623762663336393731
65343932656437646161643061616636613333383534363634663138376664306465643664363062
36393865366331653232326135633663623133313630663437376365306235613062303036363038
63353439666165306631346534376534643664653031326539343165616236653364323834613063
32353066353863346637316430616333316234396236356436623733653563366438363065646430
30393632666435636338656565343966323038386335316333373761666466633764613930333339
38633162393739613335373862393737383163623065396237623132616665666130633463663964
65373939323730336564303935323934646662356138356264633461316434383839373265373364
33356337306132393964393437396565383239323735626432353065626461393535363132336566
62623564616435613666303834656361396131653030626165386438623237313061613562356566
36343737623964373832353838366237373966623834666362643266303835633465646662633665
36316537633639376639336363363737353337373630363861383530663037386163313430643066
35333437366565636233356237303135306134333234303164313331663666343737393963646265
64643066663965323864383539656435383363663037323866363163306333356336326134633832
64316361396439393134663835353863303132663764653966316530303631333032336137356134
63353031326265663035336662623536346136666264363765613733626366353633613933373430
65663938633761646533626437303336666639643235316638366361323636633839666334653536
37303365366233353731306466333665643633343734663330356564303765646630353366306538
39646365616330346561646136666662376232313037613431636337306561626637393634386538
39323162653462303661333133633433333038383239333033396637356530636139353833383831
37366566363930396538636236613861396532656538323963636335316333623461653437643963
31313339393266383132353562343730353831333366303530613765353635643065656663323064
36346639343531346333346362343632613565303133626461383636646366303236636336643362
33623738663434396132386539626332623264306264303764393462346532356666643463303665
39363931383836356436393634353537326333306162626631646264393063346465336534323766
38623031323538323462626537343331663962656437656333373939653861343839393633666665
34356566333864343133636238343732363363653666376130383530303338313131343634646434
32653239643632373833613862326334656436393066343264613565623237646335663564653339
63316463663664346534386165386566393439306665393962333066323534646532643437343238
31313364626161356534646661353338366439623765643437336335366136313466653639363165
37326563356231346332393539353865626436633131306130333538613261656365366364366532
66666465646338373034343963333530373264343564373865396432353534333338363866353135
34636463643461356332633366623232303364323061626661323033643635376465326661376365
62623564653631363638393838383737323233643737316562396665336534316539303333313663
3737333935616530323134333861393639326631666234336539
62666263363832373133396163386664383736306334383964393732353332383663376230633738
3937623038613464313965343735353262313131303237650a663038663864613565363964353837
34616630346662646464636261663631383864303561376636653035323263393338316535623535
3738343733373438660a623134333464356333353566653633376436633166366335373462613935
36343236666332343434393764626466323537636331343163393935356132613439343232333238
31383134343363616136376235393064643165326137633334626633316264663133386333333265
62373765303163646364626534366531326131323131333137613437623236356530366333393631
37613065306336656362383931303831643462306336653038366535653465386465366363636438
37616237393336336136616663663661323739613035616538646236373338346138366639613164
63383637643662613236613663333962386632333335636462376338616138663364346339346639
32656262373236376530353832633439633031646535653064303932306432636430366166303234
34333262353735383938353563623462666137323962646136623131646537373738393637633161
62303839303763366362346236663837373637316663303836373037373934656663393134316635
61636138316561393337383464613562653434313338633931346436613663313234303438653264
39363035313630643361313530643834386564666136633631626434343634393833643863616633
61613436643937303965666337653333383166663836613761633331616632313137346665633838
64633934386338663931376636613266356566356230346337353765646431663938623032343562
62656337613334323962656361666336646430393837303364346130326665633037623331303664
33353530353335386531366162653763326137353131396338313738626263653136396564633763
64613839333561333365616135333637316535636163356433626363386137363262366266343866
35386239653339393738373964366163303230633931363465663939383237653338306237333730
31646536633564616263623130306666323736383466313438653862663635626531353336343161
63666264373739383237353862343238356635376539633465626162613262343633333038353161
31643439616335396434623439613263303562663761303035316661313364343361303134366436
35613638633235626632373264633462393839363162386562643738326664316130396362313539
34623234313634366662663461333166383333303433383233336232643463313266656438323338
34616239323562376438666439613936313965316463396566303032613165646334386564663561
31356132633539653831326234323136623538663039326666633166643761353539633337353738
32623265626132353665376635636266666664663231656461386339353438656565623135656231
39633966386566373631626138643032636338643634663462313432373339613364666365376432
30306365633534663331663135646131396261313832616235643335343964653434303735336263
33366165326266373036643236346235313164346265356132383131646538316139666164633136
35643862313264383062643965636537356238653730303866376634643938643932316439646539
64663234646634653331316130626433313764346435613833663938343430643365643837656338
32633561363431363164303366306166323434633734316436643663303432633564356461623562
65313332303262363636666266383465623463376132353839306536373735376162373363643430
39643738623933613836356363346630393264626461313036393837306537653861373639376432
30353461383166313537346566326136626230343933353738326534396461346239633364376530
35303737393238653266663939393531366539306665376561306530303536663965656136646534
30366539393161613766303239663531623136366361336539336432653564363131653666646635
61323231386661386638393433646536626264363234303036316330383636323462336565663136
61613636316432623437313235613232303066376235313735666166373266316232353331623836
62653536333239356330323633613537303161346337336564636566363332613333393630306435
62396439363061663362326539373765376234373833373363353731366230663630643633393431
32323863353765313034643331643331343532326139333637323434313765393431373364626635
30336232393366383764366635353236626538373963396364393561326230366437353433373137
31653363313562356532313839373464633262313363613562343864626161356461663437343361
65383238346337353434366165613239306264393433383239653534306432353432373530303336
34663264323761613966373639336433313761383361373563376331363030316364313039376233
38643761353865363631386239316134633265366266386432333462656263356365303831313533
62313136663865393864393965383566383430383064656139353630313166336536643363393361
32316436303561663061323531613633633664376331336261333364313533663830313435653735
66383763386437303432636332303333313238666135333633613430323935343938336432646331
63303138616634396432316466333430666663613734383532373030336437353763356632613034
36643936366538363061316465643065393236356566303239396566306132313634376233633839
37643730633735306635326665386532313832303139323235393636366336363138666161643965
31313834623461626237663934646234396236336432356332333063643238633766623561373930
30363263343161316236656665303835633130633636303139353661303262653235313932383433
66303639663963656364396233343632613033313233303134363064663766626238636532336461
34653139333331643762343466303261626131636466373766383334383137356336343636656331
63313839646634633434633233306334353661303762313333653436306663623138663862663030
35633265333563346364366261323764383030616134666665363963656365326135346265636263
39616230393537636363643439343634383166303838633334333865316562633133383363626339
32386161346365666533623737613464353436653331663636653533306263643464636133626236
66663564636661316333396263666130616434363638363438353165336633646563323064363334
30343931656234666137366262626135356461363132383133323935373963366562346361636431
61653334633132396363373537653531353265366564663565663866316139383564303735616134
30373933393730393830623732613936646565656237643966386162616565313963653831356138
63626432363833353065323037323434626130343265613839636436383166373130613431303635
36363439336661346262343134346536653566346434376136363666326434366535326631626137
62313134613637646664326137346132653532393536376435363265313936336534646662333937
37633731326238316436646630313661653535306637353138343965663030636132383735303264
63303231383634633232653961386339333633303630323162333936663433623937353132333536
31643037653163303930656132663966383635633839303632656161393831376330343764393366
39383038346232356338333437663665656633313264303062343263386464386138336432626132
30366563376630663761363632376435343430323333653736383432343131303737646433336237
34383461653230383863393466386238636666323034666233633730616364643832333437343538
64653330346435373830323931313961626163616439633164313161316233383662323466353636
33363534386336306633326335313361653562626135373733383666626662376264336130653862
38626235333434376439353338643138613532636534613233636663316431626366643639393265
33396362626564366337343731336565653636613333656236316561346438383961623363373765
65333161356630633263646532336463386439656134316465653565626133623865393265316534
39663930303230646639653738323763613836613135393166623366396137646333303131326337
37653563663338643436356434633536313661316235326432363538386631646662643935363864
61646635633538303631313935613361663961666439636533613138383262316232326131623234
37626339343266353732303039306630316466363333313336313865336564336636363863316539
65383933353066616333376330323931316563363331623236326663643138343335636463306536
63306334613736623862356330363063393238346134653537656330353133393964396163326661
62386161366137353263333033336239393730653639393231393733373339613061383363616639
37346637346637363631613432383633356231353035636335636134613764626638646262666235
64306439323762623133313035633962383237333231623963376636653535306536663764316337
31636438393130663833616336356666393439336364626464303637616331306161616662323132
3433

@ -8,7 +8,10 @@ all:
hosts:
hatchery.home.jowj.net:
larva.home.jowj.net:
appliances:
hosts:
storage.home.jowj.net:
cloudkey.home.jowj.net:
vpn:
hosts:
vpn.awful.club:

@ -25,5 +25,7 @@ you probably want to deploy clients individually most of the time. to do that, p
* instructions on specific roles
** awfulAll
awfulAll is a single server that's a catch all for services that don't need a dedicated vm.
~ansible-playbook -i hosts.yml awfulAll.yml --tags awfulAll
~
~ansible-playbook -i hosts.yml awfulAll.yml --tags awfulAll~
** mediaserver
~ansible-playbook awfulAll.yml --tags mediaserver~

@ -0,0 +1,5 @@
# mediaserver
this role deploys our media server to the target host. its not very well written and should use more ansible vars.
## notes
If a container is failing, use docker service logs mediaserver_SERVICENAME to see the logs from the failed containers

@ -64,6 +64,15 @@
- {src: 'mediaserver-compose.yml', dest: '/home/josiah/apps/mediaserver/mediaserver-compose.yml'}
- {src: 'traefik.toml', dest: '/home/josiah/apps/traefik/traefik.toml'}
- name: Ensure acme.json exists
copy:
content: ""
dest: /home/josiah/apps/traefik/acme.json
force: no
owner: root
group: root
state: file
mode: '0600'
- name: Deploy mediaserver stack
docker_stack:

@ -0,0 +1,22 @@
# Docker Compose can read environment variables from this file.
# See https://docs.docker.com/compose/env-file/
# Put admin areas behind a login prompt, with username and password
# specified here. Run `htpasswd -n admin` to create a password hash
# for user "admin". Paste the output here. SSL strongly recommended.
BASIC_AUTH=
# Let's Encrypt needs an email address for registration.
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=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

@ -9,8 +9,9 @@ services:
ports:
- 80:80
- 443:443
- 8080:8080
volumes:
- traefik_acme:/acme/
- /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.toml:/traefik.toml
@ -19,11 +20,24 @@ services:
placement:
constraints:
- node.role == manager
environment:
DO_AUTH_TOKEN: "{{ DO_AUTH_TOKEN }}"
labels:
# dashboards
- "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.routers.mediaserver-traefik-api.entrypoints=http"
- "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/hydra2:latest
@ -41,6 +55,8 @@ services:
- "traefik.http.services.mediaserver-hydra2.loadbalancer.server.port=5076"
- "traefik.http.routers.mediaserver-hydra2.service=mediaserver-hydra2"
- "traefik.http.routers.mediaserver-hydra2.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/hydra2`)"
- "traefik.http.routers.mediaserver-hydra2.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-hydra2.tls=true"
sabnzb:
image: "linuxserver/sabnzbd"
@ -65,6 +81,9 @@ services:
- "traefik.http.services.mediaserver-sabnzbd.loadbalancer.server.port=8080"
- "traefik.http.routers.mediaserver-sabnzbd.service=mediaserver-sabnzbd"
- "traefik.http.routers.mediaserver-sabnzbd.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/sabnzbd`)"
- "traefik.http.routers.mediaserver-sabnzbd.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-sabnzbd.tls=true"
sonarr:
image: "linuxserver/sonarr"
environment:
@ -80,6 +99,8 @@ services:
- "traefik.http.services.mediaserver-sonarr.loadbalancer.server.port=8989"
- "traefik.http.routers.mediaserver-sonarr.service=mediaserver-sonarr"
- "traefik.http.routers.mediaserver-sonarr.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/sonarr`)"
- "traefik.http.routers.mediaserver-sonarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-sonarr.tls=true"
networks:
- pubnet
@ -98,6 +119,8 @@ services:
- "traefik.http.services.mediaserver-lidarr.loadbalancer.server.port=8686"
- "traefik.http.routers.mediaserver-lidarr.service=mediaserver-lidarr"
- "traefik.http.routers.mediaserver-lidarr.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/lidarr`)"
- "traefik.http.routers.mediaserver-lidarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-lidarr.tls=true"
networks:
- pubnet
@ -116,6 +139,8 @@ services:
- "traefik.http.services.mediaserver-radarr.loadbalancer.server.port=7878"
- "traefik.http.routers.mediaserver-radarr.service=mediaserver-radarr"
- "traefik.http.routers.mediaserver-radarr.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/radarr`)"
- "traefik.http.routers.mediaserver-radarr.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-radarr.tls=true"
networks:
- pubnet
@ -128,10 +153,54 @@ services:
- "traefik.http.routers.mediaserver-whoami.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/whoami`)"
- "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"
watchtower:
# https://hub.docker.com/r/centurylink/watchtower/
image: v2tec/watchtower:latest
# https://github.com/v2tec/watchtower#options
# This schedule applies updates (if available) at midnight.
command: --cleanup --schedule "0 0 0 * * *"
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- pubnet
labels:
- "traefik.enable=true"
- "traefik.http.routers.mediaserver-watchtower.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/watchtower`)"
- "traefik.http.routers.mediaserver-watchtower.service=mediaserver-watchtower"
- "traefik.http.services.mediaserver-watchtower.loadbalancer.server.port=80"
- "traefik.http.routers.mediaserver-watchtower.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-watchtower.tls=true"
# The main WebDAV container.
webdav:
# https://hub.docker.com/r/bytemark/webdav/
image: bytemark/webdav
restart: always
networks:
- pubnet
volumes:
# - /home/josiah/apps/webdav/user.passwd:/user.passwd
- /home/josiah/sync/:/var/lib/dav/data
environment:
SERVER_NAMES: "hatchery.home.jowj.net"
LOCATION: "/webdav"
USERNAME: josiah
PASSWORD: "{{ vault_mediaserver_webdav_password }}"
labels:
- "traefik.enable=true"
- "traefik.http.routers.mediaserver-webdav.rule=Host(`hatchery.home.jowj.net`) && PathPrefix(`/webdav`)"
- "traefik.http.routers.mediaserver-webdav.service=mediaserver-webdav"
- "traefik.http.services.mediaserver-webdav.loadbalancer.server.port=80"
- "traefik.http.routers.mediaserver-webdav.tls.certResolver=mediaserver-resolver"
- "traefik.http.routers.mediaserver-webdav.tls=true"
volumes:
traefik_acme:
traefik_logs:
vol-webdav:
networks:
pubnet:

@ -22,8 +22,10 @@ defaultEntryPoints = ["http", "https"]
[certificatesResolvers.mediaserver-resolver.acme]
storage = "/acme.json"
email = "<me@jowj.net>"
email = "admin@home.jowj.net"
[certificatesResolvers.mediaserver-resolver.acme.dnsChallenge]
provider = "digitalocean"
delayBeforeCheck = 0
[providers.docker]

Loading…
Cancel
Save