Compare commits

..

37 commits

Author SHA1 Message Date
Reynir Björnsson 65527be1f0 phanpy: Use base_domain 2024-04-02 10:12:14 +02:00
Reynir Björnsson 78cd1306b2 Add phanpy service 2024-04-02 10:11:37 +02:00
Sam A. e633ca13b4
Add hostname to Restic container 2024-03-29 21:01:50 +01:00
Víðir Valberg Guðmundsson 92ca044d06 Adding diun (#208)
Closes #174

Reviewed-on: data.coop/ansible#208
Co-authored-by: Víðir Valberg Guðmundsson <valberg@orn.li>
Co-committed-by: Víðir Valberg Guðmundsson <valberg@orn.li>
2024-03-28 14:02:24 +00:00
Víðir Valberg Guðmundsson 41116063a2 Bump forgejo to 1.21.8. 2024-03-28 14:33:12 +01:00
valberg 1bfa6bdd1d Merge pull request 'Fix another instance of domain=>remote_domain' (#205) from fix-restic-domain into main
Reviewed-on: data.coop/ansible#205
Reviewed-by: valberg <valberg@orn.li>
2024-03-08 10:05:06 +00:00
Reynir Björnsson 9a03f71252 Fix another instance of domain=>remote_domain 2024-03-08 10:57:32 +01:00
reynir 00927a19df Merge pull request 'Rename variables to avoid name clash' (#204) from fix-restic-domain into main
Reviewed-on: data.coop/ansible#204
Reviewed-by: valberg <valberg@orn.li>
2024-03-06 12:40:47 +00:00
Reynir Björnsson a0988aa05d Rename variables to avoid name clash 2024-03-06 13:38:46 +01:00
Víðir Valberg Guðmundsson 4112bb73b6 Bump forgejo to 1.21.7. 2024-03-06 13:35:47 +01:00
Víðir Valberg Guðmundsson e30f1d57d5 Bump mastodon (deployed some time ago). 2024-03-06 13:32:50 +01:00
reynir ebf3608bdc Merge pull request 'Add uptime-kuma push url for restic' (#203) from restic-uptime-kuma into main
Reviewed-on: data.coop/ansible#203
2024-03-06 12:29:44 +00:00
Reynir Björnsson ce030b2dea Fixup yaml 2024-03-05 09:57:55 +01:00
Reynir Björnsson 4f129168c6 Add uptime-kuma push url for restic 2024-03-05 09:55:04 +01:00
Reynir Björnsson d468e49830 . 2024-03-04 14:15:52 +01:00
Reynir Björnsson ae497f0284 . 2024-03-04 13:30:58 +01:00
Reynir Björnsson ac64706fcb . 2024-03-04 12:48:51 +01:00
Reynir Björnsson 9fb16d3a69 Address comments by @samsapti
We need to use ':' instead of '=' in yaml for environment variable
bindings.
Spurious tab where it should be all spaces
Rename variable mail-from to mail_from to align with existing code style
Nit: change email addresses
2024-03-04 09:20:04 +01:00
Reynir Björnsson 6982d0feaa Restic: send an email on backup failure 2024-03-03 21:17:48 +01:00
Sam A. 1b68766cd6
Improv 2024-03-01 20:53:08 +01:00
Sam A. d90b769640 Merge pull request 'Add uptime kuma as a service we can deploy to a different host for monitoring.' (#196) from add_uptime_data_coop into main
Reviewed-on: data.coop/ansible#196
Reviewed-by: Sam A. <samsapti@noreply@git.data.coop>
2024-03-01 19:47:57 +00:00
Sam A. f792bf3dd1
Fixes and add Watchtower to Uptime Kuma instance 2024-02-29 20:45:59 +01:00
Víðir Valberg Guðmundsson 266f990d1a Pin forgejo to 1.21.6-0. 2024-02-22 20:44:55 +01:00
Víðir Valberg Guðmundsson 241d63494f Upgrade forgejo to 1.21. Closes #201. 2024-02-21 14:26:28 +01:00
Víðir Valberg Guðmundsson 4c65521447 Mastodon: Fix container name for crontab cleanup jobs 2024-02-21 13:36:31 +01:00
valberg a95c3ea17e Merge pull request 'Forgejo SMTP_ADDR was split into ditto + SMTP_PORT' (#200) from forgejo-smtp-port into main
Reviewed-on: data.coop/ansible#200
2024-02-21 11:19:01 +00:00
Reynir Björnsson 590597b137 Forgejo SMTP_ADDR was split into ditto + SMTP_PORT
And the default SMTP_PORT is 25 while we use 587 => mail notifications
broke
2024-02-21 11:23:29 +01:00
Sam A. d05a504e61
Move vars around 2024-02-18 17:27:52 +01:00
Sam A. a99b39824c
Merge branch 'main' into add_uptime_data_coop 2024-02-18 17:23:43 +01:00
Sam A. 7aae344da0
Don't specify service settings twice 2024-02-18 17:18:54 +01:00
Víðir Valberg Guðmundsson 26b98681fc Bump mastodon to 4.2.7. 2024-02-16 15:35:12 +01:00
Víðir Valberg Guðmundsson 542268ffc6 Bump mastodon to 4.2.6. 2024-02-14 20:43:05 +01:00
Víðir Valberg Guðmundsson 54a63ca069 Add uptime kuma as a service we can deploy to a different host for monitoring. 2024-02-11 14:50:21 +01:00
Sam A. 46ffcd792c
Add missing bind mount and upgrade WriteFreely, close #192 2024-02-09 22:00:02 +01:00
Víðir Valberg Guðmundsson 068d3bd444 Bump mastodon to 4.2.5. 2024-02-01 18:55:42 +01:00
Sam A. 39fffe71ae
Upgrade Nextcloud to version 28 2024-01-13 15:04:02 +01:00
Sam A. 0fdfd2e76f
Exclude Mastodon cache from backup 2024-01-10 18:03:39 +01:00
27 changed files with 377 additions and 197 deletions

2
.gitignore vendored
View file

@ -1,4 +1,4 @@
playbook.retry *.retry
*.sw* *.sw*
.vagrant/ .vagrant/
*.log *.log

View file

@ -1,4 +1,8 @@
[defaults] [defaults]
remote_user = root ask_vault_pass = True
inventory = datacoop_hosts inventory = datacoop_hosts
interpreter_python = /usr/bin/python3
remote_user = root
retry_files_enabled = True
use_persistent_connections = True use_persistent_connections = True
forks = 10

View file

@ -1,3 +1,5 @@
###################################### [production]
### All hosts hevonen.servers.data.coop ansible_port=19022
hevonen.servers.data.coop ansible_port=19022 ansible_python_interpreter=/usr/bin/python3
[monitoring]
uptime.data.coop

View file

@ -9,7 +9,7 @@ usage () {
} >&2 } >&2
} }
BASE_CMD="ansible-playbook playbook.yml --ask-vault-pass" BASE_CMD="ansible-playbook playbook.yml"
if [ "$1" = "--vagrant" ]; then if [ "$1" = "--vagrant" ]; then
BASE_CMD="$BASE_CMD --verbose --inventory=vagrant_host" BASE_CMD="$BASE_CMD --verbose --inventory=vagrant_host"

View file

@ -1,166 +1,170 @@
$ANSIBLE_VAULT;1.1;AES256 $ANSIBLE_VAULT;1.1;AES256
64633439653739323864356533633331313134343730623162373736323137326339626162396330 30613439636234396439623634656338666330643936373563656336323831353464353239353661
3636653431343664626638396438383733666139613531320a633836653331366134333338373939 6234316535383838653865643964353033623935313432630a666563316534343733363464396635
63643838623766623231393736316438643439383335336338303739316663383630306632623334 34396664643137643136633837656432623633383361633336343562333039326538393034616637
6131303830653230630a623666363464643336343463656630613139643534623462363634656630 6634613631636433610a663835343739376534356133323163343132323233643135613333313132
62663865333762626334633164303230656433316361366462656235326430633138313963336638 65373233666535366137343839363938303561653731633038376631386161653038613631396364
63626430396231303432663663366330303930313463663434633965396538623138383633646566 33636131636536306134346336636332393436303063306262333430613137376438626133353963
30336232343137366535363233383536303931323034346134306165666661623063376435336637 66396332363335333436623335613966323730616139353762656662386530356435623831656632
33383965643066363433646235383834656235373030356336646461386330366666353135396133 30333363376132653362323339386437346134323232363336363461323332613962613131386264
33646661633239313630373835633131393662666365366162376335346533306462326233383933 37383435653061653466613834346430656632626338316564656136666266353231363661666461
64633162623833363665343232636430393964306431663233376666343037333437313261376266 32646461313365626232376536376463313531613861363462643062326538326234613332646430
63643631656436373232323931383136613366376335336436663032613662646262303236663231 33383438613961623134343665383638346164653031363435656162306163653232353162343431
33343039646131653766663364323430356538343331373464663937613032343338313362306339 38333239393332613466663231383932316330376535383466643233326134623530306361393639
35386462316561326431313365313765623938656635613135373331313630666339653464616665 63386530643733393033646139613730313239313866343730643337393533366330373363353338
39643335376239633661616532333432313638666539666136623931653331656538383066383162 62313739613531636166663135646262396334373538636634393534616337363337323630666261
35366530306264646365303439656235393634653234643636303066396434326232666664326339 39643164363437653661633666376431303662396431633661663933343666613234326637636231
39656236356363336436646232616330393238613261333630373034343038353039626666333665 38383537333532326636343366343564646630363838323162373339323365666262303836636232
33373661383566663133316334636235633337653862326430396361623737376562616132353865 31343637616261636130656637393633383165353332346239323063646162306235313962363935
36643236666531643633623866626536363933393261616336336332393461346563643163333161 64633639653261363563646664393630666564646165393736363562623231626634326163306630
34386461343965353064663332626635626238316664366466323634303964613630316662323430 37613635306136643334616364303439323332666431386264623265323636623738303364396636
33393630303965383365346366323864383239393766383231636461373034636162653036626235 37626161363466646166633434333265623236633033666562643264303662333363396631646638
33656333636566326633353365333131383761363163353331663931376333633135633431626334 36626636363261313966393235313866353936323064343331626362306162323166323063656433
36386330333465336134383962363463636637356262623966386132653434393537343863623332 63303762346330323031353034356162373433356436663134373930633634366330653233613139
31376238396536613935306265393663626538633539396262353562393337326139623333656463 63363639343833616431633765613938623037323961623663336662666135313466303661316133
63666130353566373766643565333364313534346161626439656465356435393933313535633836 39353664633036323031373862393530653433373062623233313965653735353566306538393439
38616464636364363062613733666564343633393131613239346361613365326534323833646162 30366162663138326535346639393337393362366630343266643035353465663332333539613337
61363265336161366334373162626435386437656330383034653939663262396138323834343962 30666666363134313239306231356663343166363137366636643931313039333732383833313036
33323061623734663231393633613531646331333635633462626363373731663437373539353032 37393064396662623063613462336363386336393839313465323062646535373733326338353766
37643031616335633130616634313861303239313032656430373438333165376131643338666263 31666639303836316266343764336462343765363930326338313635336633323662366238356264
33663165626364313963356639333132663863313436326438313266656437366333353764383535 38613631313434383830333031643938393566633236383861633266326336653033663163336132
62323862613330643264613939633534393361383264313565333131666265346462393636356139 61313132643062666434346333653234393865656463343363313636613364616361353561343739
64396462346633623037353865316431636335306331343535336663383265623033666566333065 38313231333431303664323730626162613264343630356438336636373739653234336666646438
31303565386636393039646166383464646131656666386565353663316532303864396463373262 37636437623336323461613063396137396533353265333034333435306666636261353933613232
35613436396635376539383838616439313663636237386331643961353066363932396632613434 65363632383039666666323030323830333534376362326136313232393732613166303461383933
34643064626230383038306365393962366132633034316662646164313537626437656265613564 62303166396533616538666566356238393265663163343264333664393936613066313665616137
39383866626661623266383734333137353135623166636336356332343237356563353333613234 38613030623937633730646461666233333035323661363835313161613930336237396332623338
64353439366237313263353338353436323664363865643464363563616230373931663630326163 30666166636662613130363430333436613532326437393730376536353963356633393736303065
66653466316536636461656161386665646165646463623934323931333963353735353930663161 31393534646537323037316664313438643836386333613961663031383231663932633934656461
35353331663931326337333161396534363066633962303339633463623165363539393035313261 62313163616635626131663961326438396439383432346337386261313330343330353637376330
33316665633464376232663363373233663234643236386631333330386362386464663732636539 38346532396533326135303264613361663836646163623630323832653032396237353966663661
61656465303437633162393862643565343039656261316265663834343130353638333066343564 36353365313962663832393333336138346335363832396535346336643565366465643565616638
65366430336435626237303565373637386137656137363161646334623733363130343732626333 63616565356663623531323935393334326639626236353338643237343764366464666131393332
30316236633732623035663562313464356239393264646631366631623763396461333538653436 64396665343535323339383434366133613235313866653663313639633930323864646536346232
61366336373761383038353062353661633065653663323837303430346633623861333635643762 65316465643662376264373536393232326666663335316631376433343062646361376165363732
34633635376137366233353636303934333337333062643766383636666266386565323836386364 66326165643163333737313139386461363431353239626236366238343035386663363435366464
63666330303239366435373532653730303136376162613261306638626338346633356236386230 31633738336263633961306436613233303861633263343030336637373165663261316632663537
64343832373338363837663735633462336637396437623131303965353838646361323336613366 31613636663163323365303038373134306264343831326264326261633834393366623061616262
30346262353831663061376137356334643238303264326332316236323133383136396437306138 63393463333833393636666232626662643738653634306364326231343830633834643664353730
36346364363030656137316563636564663539303435623733653263643337333336306537636138 37346131346263356539363630363230626364663161643064323538396131636633623866383939
32303139666661343839346137346163616562626636306437666662386632636262616264376561 66346434323935353632633837363530663438636539616130633532346236343661633766383434
64396434633035653739643162393138643631653738653138393136663361313036643830343730 34343339646662393030323661623665643432376365633435666333316439356631386234303062
61383661303439656636343461373033363366616461636665376664393937333633303664626432 35346631656230346565323130333765663933373638303639363530373431343232393864656639
62653963623130326539646134633436386332663037303932623731383363336433643736366538 33666433366131396464323137393239653531376662646235343962613639343831636261326265
39333238373664333237373333343534643264386636643133306232643037343062646132626133 65663564613766313634653938316339306434663463623563316431633234323330623738646636
38316462636434653039333364653966313766383536346435626238376139306139663636316433 37643535623664323433626561383462393033343232303838333930653366376536353765613036
31613933636530653631643432626530346238633539396666393463636263633165373435346262 35663165623265616630373161336632646435613331373166303632373633313865386134636362
34336632386539373635636232363765366565373236323536633461386361636631346539373462 61636134343839643735636461626663626237613262316564646339323933363864303935353834
64396639653666326464656261383466383834663735353931666466663862346665303030346366 39396637646264633736366336616336643032313237653662646331383963366533373766356539
33653732306636626262373166623038623464346339636534363035383030623265323337366166 35306165306534393463663332336430336635666135643561303935386635393838323865623162
33663839366364663638656138626333343737613635396338626634363761383538336135353361 36323565616232353261303139623465646234313136383436376162376165303664613164356162
38393333626364613562663934666466663662303130363133306662306132383566636264313066 33373237333666616135636231653637396330663930663962636161326664333261343737343735
31343133373766333265303161313230316465396337393339663133656631353037316634313935 37313465396130653138613539376436373237343138636535626632326435383234326466363235
62393130343333353964623934636532313361323434663966616138376438363339323264393334 34646663653038396630353637636166346261346233333632363361326536383634663433613564
61646630383565326335613063313732333737393336366630393936303333643435646663663035 35633864343630333033613133626635313931333031643564396164393135346131343832363861
61346165353834386631326236663566336662653935653234326464386634636239323635636465 61366664363838653438653137383933386233633836323332643531303936353237623734666135
36333931306233623465346530363637383566666235636266313030656430626132663031623838 31356166613664636634336536343032646239643130346564303162356431346539646336323339
33333737353466343461613832623431666132303238626163393036316461313939376262343234 61626236346535336638353134353838333434663838303730613363393365633739383563613434
37393262656263616165356539623534373935346466393338353038363336633632646130323862 64336331306639323061386338656361653636353831346237373134346538623464343562393735
63353935663736313435653361396636313634383234633033643230396230346365323734613532 39333764343139333133393233626564643266373034623764633835383561366265636632633937
30366439333738313534373639623963653639656232323238383435653932666461373634343866 62343635343161363231653138613263313562366439316435633964396161343566316435303465
32396437363832616630646333623732346234643139646262343765303330613361343361636538 39666236316339653839313333396264623636663561653932386638366366663933353761353162
37393461366432323830373162333631633262386632326162636236303130383261306662666439 61343038383939396231346534336361306430373564353633653139306334623630343738636430
61653936366162626438326235333433366665356432643634663531613536396132613866303338 66376631366662313131646130363530323232383535333163363466636262363461633232343532
35636637383633353765346436636233613435316634353735363731366432613034373734646366 63626430336261353861633362396638643937623832386638626334663333363637393637373939
35666466363935363766393963336231336237643266393630343563626531323266656561633539 64303039666432303535636265613564376139333331653336666563663238366639393366363334
63626537333364616165646366353830386634646338366232333763323438306239626431636633 36303635633933333832396562373965653361303034653139643466656534326231383162336366
33393336346161633736643662393261633434396262326638356161393161383966386232376465 31656138656539383539396462326134333331653131306537643962653762373035343235333233
35353130613165383662393631353162346430336262356163336234313632323232336631393164 34373730623663346430303962653061623330653263393633383835663739663961326566323036
37376135373430333332633662396630336537646638643063313864316266653763336432366565 30336365616532303362396230616531386639333636336332366335613935623836616134393033
35616434363265373938336139373036323665323131356363643233333136336138393937393336 62653535396630383436393631396337336163323361663930323532633666663238333366383462
61376237663265326133303664653466626137656432643065346661323037306661623262626331 36393261376262643336643761613731643032626632646332366661626331333233363436613937
34316338323336636430376139633765643039323363656233306332613230613732343231396261 34653731666137313733653863396164323963383037353265373532303137623037343733616537
39343564306237643236653634666437363438313334653137653530623835653533616638663833 66336433343334626536323639636139653931383466633833326234633332613431353432343561
31333664353862376435373763316337336530616533643061316639663035316462393231343930 36626339656536383862623833633634356435393764316633353135326639623534366538313330
39663161376338666366353237316330396134363465386563376332356333663164386662633935 62633333303266613630326330333336353264343937393864393239623664323366373565383334
31373230613336633330623239383062646332313632313265353166376564326339356537366463 37383237376664643065383834633961366632643261343635336335353765353863323131653866
64333862356366393233383033353031646565393036653730386536393733653530623065393833 31326531303461323736303730623638663863353939636437636231636437323730656463633733
62613936343838383531393862353934366538643038333733663836333433383538643036323935 65383934343534383631363162363830386365313935663337366335326131393262353030663765
36613837306564623733353230316563306638613362633664646466363064613832653938363538 30643665383332613030336439346332363135366232303166623534333637366133656437643231
36346166313865313135343833313433643137633061373333633332643632356662666536373466 30306634636430643864363561316334383530613165326663326665613633636237353830393334
65656265363562363238346136616561613230353466383539326435333565353462373234346139 62653333623563626131666166646335663334393662336337333836376631303631666136376332
32663261396166393530613966626633333237343737373033626430643764306136386639373032 37316537356531346464623363653033306537636239633065646533643239653063613835363665
38616562303439386137626435663266646465343839356431646663643964376536663665646537 30383139326465613864316533643033333430326230646334353364633138666532353736313265
34663964393761616662326162353461653765383637356663316662333236326262646232316130 34623733613864646661353730666433613961643261346166303264386435643565373565323864
35656437666263623263363862303131313263666162613136303632613334333836663562353566 61346465336231613865363263303034396439346163393534666439666437353266323565653032
38306131376534663535636338396339626361633733303934333164383564663839666565386565 39386439646438313938356237643831643434666161383632316530356465616632313235643834
34633537656462666161323737373861613664633039643039626634373935383733653933393364 33303865653836303632656663366465333331616634313863656438393838636631313364633637
30303339346261656230313337386563656532316166343731346433386637616161626561346539 38646230643734393733663261326161376536643237626130353831363731306231313864613066
30353263386463313466306234336564303031656534626436373439363863643062316561393533 34623239396362336639363163313161323065653461363563353631613730373830643133336464
35393534376166613764323138366561383161303930646364336136363866633933653462356337 31336439636361363539383539323631303462633833353032373530333539336538363033383363
30333563613536663436663263656463326134383562656631386133346462383934386436313065 32613733623839623938326165356237313165383366646233393933393965613363666532646434
32663734326339343865636266393438356533653564336638363864313632326261653639623335 63316133613130313363303537366230646235663130313538333761633237383262316633366364
34303036353162353336326238393938356662303234363439393163653566353637363339343530 65373664616237316534613831313966623939396331626334313430386638653461386334363939
31383336653031373561386335646162303265343432303061663931616464366664386636303264 35333339643837666264356535643365353331393437313866643034663934336466336534343035
33383632633462613765616166333736396438663066363833646136316635383435376534616566 61313837666662343363613962623462333935353837333336363839623466303534303837396634
31336233316434343037636131383336646637393234663531393430333662653637306437656263 38656330666661356235626130303538666533666563323936633564383164633834353831306634
62633761343964666462306236646362366135626330613462633538383864666538636365353166 36343836353464623962333362353133386563343831336463646635646263383832666232323736
37623463323035643663633539363635326530636235353730393336383537363463643065373265 38613730316634373365343938623237356231643931303333366462373134383137366339613662
39343231653165376633363435363633313039396163363635313133643062376436333265383065 62643832323734363635643634373066303366306366663036623139393761636533326130313336
30653562633436616537316536303563313936326165313136396462326335633362353136623636 30316536396466383463393233363035393335343565323635333665346464366139626165636661
36666235613864363230326534383536333635363865346338353035306464616232323263633264 39363066643437613537653836636363376532643038363063383234353066313737663061363334
64353163376633363234346335643765333033396439613631383965643563386331303666326565 38306563613561663165623630366135303332636133343733343836383865613661393761333031
34306366663234623861316231646439643237313361383534396361333963373130376439653133 62653162626461616564643138613737623632313739393962396439306133646138303936636435
31393234316161333536323133313933643861663739363938366561643739646436346563333538 39393663653865363166316365376562353461633163353734343132343831386434653037323732
39653164313063323738306262376236356138313463396539343061626365653834363432303734 36356162356336616330636630376438636165653439376137313934663939376639396266323962
66626662643965306262383261333236396130333835316462396233323162656366646536653535 37383736333536653438363963316435326632393966383534326337303336386135616636363936
35306230626131643466393862616361623839306435343230383834396230623830646531633238 35393331313938653830646332376631623763383439623633396433633739663038313264323835
31633836313337653239373264653962313234353266353762656336633461653238633032336231 33373664313562366664363630316132643465363964383339363339656237323465626262306364
61303162373830336138666563656633613837373630376165353365376564623566633932336535 33306133373065303135613235623262396365363634316365356364373561363762666235666430
65356631363136666432626231626635323962653132663237316264663063306238666561363064 62336362643564313238363933623366396138646237336336623062326161326536323534326364
61663235333966383765643338316164396336383233306334653361656363353536643836666365 39316162643966616436343737313434616230346237346237363962653033613930623462386431
33353764326564316336643330353966376234643166393233316463373565656665663463303537 38343662356665383763633034393236613733643430313937326335356466376139653533333965
38333437656564666135316462353261353265616534373535393865366337346238373862616336 39386138623134666132663837616637376362303561393133656139653438386363613965393661
64336361373634663335633665343034653430346133323237313737333132383438666661376262 36343566643931393061373031343331336463643034383065383763663234373438383064303232
64656233656631643432636133393864393266323934393961323862393233323531376439306164 64666236313935346237666466333562613935646163653331303661386138313739326538353935
37653935333631353663326437383332386162656364643164333933376238306434663737383738 64323737323532663731353136336138633533386464616362333838396332323563353537613430
33646562386638346335363766653762326130376436343562613739633763303565346661393532 33633631326238366166346437316638363161386562383630623466386564323266333033313461
33383563346536363163383661393561626237326334306333663435666536383464643332643839 63666535363034613232346239636233623130393032353030363334333531646238373262323765
35346362356534373162386163633462646362666562333036306461636564313665343039623863 61373739396162643661353031613663353531653836323730326166383463613330333966336233
34623439623737653536376139306165396530333835643862323065336265306536383435323233 30386136346466336361303237303534373064353230653238363231633530613866663461643465
34303861326236636663386438356166373830343635343365376562646662323062656638633430 30396266356164353063323432663561396564636231346534366661663766613634376235356637
32636364636535626266386461376535313764393364623739656232363263386233376261636639 39313839616336666461313431326430333932623262333437386464636264373430653566386631
64353637333436633934366661383565303661656634616265323439646435306237656461316363 64653866623662363864376663613136306165393863346533303634623936373835633864313462
31633736353364633237623030643639383431666633383865633038653062353465663735633634 61333562646233303232623861366634383466633537383831626334356561353637663038643531
34313134643531346463353263373837313030363664356165333964633039366363613463326534 39386635326366646134333231653737653630356135396634326537633232333166616161653136
36663130366361373866343734623861343238313038663264306639353031643635373137303036 33393562383233656564356530386465623239386666313964343534343466616134373132636631
66653834343862663064386562613031653334616337613239346331383239353062633961663131 39666365393063323838343963366339373434353839383039383238613133636237316365323861
61643037313836336464333562386231343163363937323330303065666363306436323661373338 30626330643665626465666338353030653839383234393237623633646566376361646536353233
61313265656663383732633432376537613231336534656537366237616363363162613861653438 31393235623561323765633835313139313538343761393064353632316335656231353930656437
31666631653633323432396435623963333262353235656562336536343761623939303931653935 31313639313931636633333230653730666638373864326239333561393134356632623138366131
35616363646639373838376365666539613436363638653132386539303732396461663562346534 65356462373336383039316131626562633330666363386631383663343838393435663538343934
35616162343964666361373936303230383464343964356561303537366662366564373735353530 65386339626362623664393532386131303234633466363437383236616463343831353862323961
31666537623661636638653865326233383635363466613033366662636562653864623262343739 39663835313234326137303965663963663761656531653437343234643634316565333762663139
38383336333931646130343832323837366464626332653936393965653239316663386164623939 65393830633237623031303234636134633539316131396135616237316266333437633861303831
32386438646463663861613366323330386638393736363466343063396462343762633231636632 62656630373763343366636635653033666630613533363365636261323661383364343161343439
66353764643465616664636330613037653236316338396232633738373931303032643165666261 35626531346665656263643461306261376238353033343032353731373861333239333862653231
35663561666536663438373430353933636438616531336162623366643364653736623865383366 31336562653133623163353230633331346237356534333534613161323462636639636662623435
31373839363162313765343136383336636635626232353565666133393766383435633430343165 63633035336662376636623339326433393035646539626231363762643532323463316263393736
66326535333061613934393466373562313431386465356665623034636630383765333133373234 62613038333733636362356636373331313661663830633433643039653233626261613739663836
31663664363833643361666537333263666533646531656135363331366238663539366338393937 38643030313338383266323134326337323334343230623331386664333937316266623134336362
66316562356662663165366532363837306230663336613464313938346331653732323033306338 61373037353664623863393233376264616438656332386130316361663665323135386463383763
30333166313437626334303833373965306237373638326537643539653839336537613561643263 33303633356133353439393664363630336133306364363430393232326665393339323265383630
30373561623332646336643038316437666366383664393330353262373465323066616536383431 31656463343064383837333630366465396633393465666235626330343937313630623039383465
35306562623437623963316535663363613562376130663438633864643333653438323363613730 63326361663238653035613935343932623237396362643833313731323830313962616362613539
66613130633663396434663336326237323830613362356336363035313666613662663464343334 32346165303930323739313837643933363863643937346561643930653530393636383036613235
37303931353030383966326165383030353363646131653037663839643537633637323639313631 61376166386563643733333233343437623630323632643463353131386461663936313065313562
63346230633138303530383737623561653039313264643831646538356432306534393531316430 31393032646262386634353436643466323731366631393136393433616332613036666163336635
37306561646366663232393632303236636364343933643138326239363530316365653433316336 37303365633338613630656463663533653336666562653236336264303238383930383132346365
65333933626664653762363535373965323233366663316538626631373262633631396264633164 35386662636439653930343738633265363635626132343030653462306431363234633635643537
38353565316664386130653564363435343065353732646262323734353862613634373033336635 61666363346430653131623762666564313665653262386332396532646339383136383337353863
30333838383239313532343535643238356232393561366162346336636432323133313632646638 38386632316632373338653535323335363265653563376330663239343861346563646366313039
62653939633961623264333137646339343665666662613536666233643430343665383764653531 33306364623536346339393566326533633133393866303535326535306435626531346264616138
39653037333831386538663032613264626439333035333539653865373837633465353839303763 34356231373561633337653663643566633632393330386564393966666365306565316135646163
39323532323432633666396430366165386464343664373465383166616538373733306361656666 63366365383839343134303635376233343865663631633331333230616630366633396231333435
39653530316666323166653430663565353231323736633466656362386461326135363062653565 30366137383238393139336433353764633038616238326136663636656132626538393565393130
6637 38653765326137393136386233383636383165613235373437353730306564643033306534386666
61623538663537653166313264303533623162356134393333373732383535386261333535383039
65613166666230336265366335323434636336663835323034373930393430363065376665666337
35363265666130653830333536326433316639613638613730666139623137333736663535633032
33363135376636636536623731323134343237393633333038393364376237386165

View file

@ -33,6 +33,7 @@ drone_secrets:
restic_secrets: restic_secrets:
repository_password: xxx repository_password: xxx
ssh_privkey: xxx ssh_privkey: xxx
uptime_kuma_url: xxx
matrix_secrets: matrix_secrets:
registration_shared_secret: xxx registration_shared_secret: xxx

View file

@ -1,6 +1,6 @@
# vim: ft=yaml.ansible # vim: ft=yaml.ansible
--- ---
- hosts: all - hosts: production
gather_facts: true gather_facts: true
become: true become: true
vars: vars:
@ -15,6 +15,9 @@
smtp_host: "postfix" smtp_host: "postfix"
smtp_port: "587" smtp_port: "587"
services_exclude:
- uptime_kuma
tasks: tasks:
- import_role: - import_role:
name: ubuntu_base name: ubuntu_base

View file

@ -4,7 +4,6 @@ volume_root_folder: "/docker-volumes"
volume_website_folder: "{{ volume_root_folder }}/websites" volume_website_folder: "{{ volume_root_folder }}/websites"
services: services:
### Internal services ### ### Internal services ###
postfix: postfix:
domain: "smtp.{{ base_domain }}" domain: "smtp.{{ base_domain }}"
@ -45,12 +44,16 @@ services:
restic: restic:
volume_folder: "{{ volume_root_folder }}/restic" volume_folder: "{{ volume_root_folder }}/restic"
pre_deploy_tasks: true pre_deploy_tasks: true
user: dc-user remote_user: dc-user
domain: rynkeby.skovgaard.tel remote_domain: rynkeby.skovgaard.tel
host_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBLGol2G+a87ssy0nu/STKBZSiGyhZhZKx/ujfe9IeFo host_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBLGol2G+a87ssy0nu/STKBZSiGyhZhZKx/ujfe9IeFo
repository: restic repository: restic
version: "1.7.0" version: "1.7.0"
disabled_in_vagrant: true disabled_in_vagrant: true
# mail dance
domain: "noreply.{{ base_domain }}"
allowed_sender_domain: true
mail_from: "backup@noreply.{{ base_domain }}"
docker_registry: docker_registry:
domain: "docker.{{ base_domain }}" domain: "docker.{{ base_domain }}"
@ -62,12 +65,11 @@ services:
version: "2" version: "2"
### External services ### ### External services ###
nextcloud: nextcloud:
domain: "cloud.{{ base_domain }}" domain: "cloud.{{ base_domain }}"
volume_folder: "{{ volume_root_folder }}/nextcloud" volume_folder: "{{ volume_root_folder }}/nextcloud"
pre_deploy_tasks: true pre_deploy_tasks: true
version: 27-apache version: 28-apache
postgres_version: "10" postgres_version: "10"
redis_version: 7-alpine redis_version: 7-alpine
allowed_sender_domain: true allowed_sender_domain: true
@ -75,7 +77,7 @@ services:
forgejo: forgejo:
domain: "git.{{ base_domain }}" domain: "git.{{ base_domain }}"
volume_folder: "{{ volume_root_folder }}/forgejo" volume_folder: "{{ volume_root_folder }}/forgejo"
version: "1.20" version: "1.21.8-0"
allowed_sender_domain: true allowed_sender_domain: true
passit: passit:
@ -157,7 +159,7 @@ services:
volume_folder: "{{ volume_website_folder }}/cryptoaarhus" volume_folder: "{{ volume_website_folder }}/cryptoaarhus"
phanpy_website: phanpy_website:
domain: "phanpy.data.coop" domain: "phanpy.{{ base_domain }}"
volume_folder: "{{ volume_website_folder }}/phanpy" volume_folder: "{{ volume_website_folder }}/phanpy"
version: latest version: latest
@ -181,7 +183,7 @@ services:
volume_folder: "{{ volume_root_folder }}/mastodon" volume_folder: "{{ volume_root_folder }}/mastodon"
pre_deploy_tasks: true pre_deploy_tasks: true
post_deploy_tasks: true post_deploy_tasks: true
version: v4.2.0 version: v4.2.8
postgres_version: 14-alpine postgres_version: 14-alpine
redis_version: 6-alpine redis_version: 6-alpine
allowed_sender_domain: true allowed_sender_domain: true
@ -206,10 +208,25 @@ services:
domain: "write.{{ base_domain }}" domain: "write.{{ base_domain }}"
volume_folder: "{{ volume_root_folder }}/writefreely" volume_folder: "{{ volume_root_folder }}/writefreely"
pre_deploy_tasks: true pre_deploy_tasks: true
version: latest version: v0.15.0
mariadb_version: "11.2" mariadb_version: "11.2"
allowed_sender_domain: true allowed_sender_domain: true
watchtower: watchtower:
volume_folder: "{{ volume_root_folder }}/watchtower" volume_folder: "{{ volume_root_folder }}/watchtower"
version: "1.5.3" version: "1.5.3"
diun:
version: "4.27"
volume_folder: "{{ volume_root_folder }}/diun"
### Uptime monitoring ###
uptime_kuma:
domain: "uptime.{{ base_domain }}"
status_domain: "status.{{ base_domain }}"
volume_folder: "{{ volume_root_folder }}/uptime_kuma"
pre_deploy_tasks: true
version: "latest"
services_exclude: []
services_include: "{{ services | dict2items | map(attribute='key') | list | difference(services_exclude) }}"

View file

@ -0,0 +1,4 @@
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;

View file

@ -4,7 +4,7 @@
cron: cron:
name: Clean Mastodon media data older than a week name: Clean Mastodon media data older than a week
cron_file: ansible_mastodon_clean_media cron_file: ansible_mastodon_clean_media
job: docker exec mastodon_web_1 tootctl media remove --days 7 job: docker exec mastodon-web-1 tootctl media remove --days 7
special_time: daily special_time: daily
user: root user: root
state: present state: present
@ -13,7 +13,7 @@
cron: cron:
name: Clean Mastodon preview card data older than two weeks name: Clean Mastodon preview card data older than two weeks
cron_file: ansible_mastodon_clean_preview_cards cron_file: ansible_mastodon_clean_preview_cards
job: docker exec mastodon_web_1 tootctl preview_cards remove --days 14 job: docker exec mastodon-web-1 tootctl preview_cards remove --days 14
special_time: daily special_time: daily
user: root user: root
state: present state: present

View file

@ -46,3 +46,27 @@
owner: root owner: root
group: root group: root
mode: '0600' mode: '0600'
- name: Create scripts directory
file:
path: "{{ services.restic.volume_folder }}/scripts"
owner: root
group: root
mode: '0755'
state: directory
- name: Upload failure.sh script
template:
src: restic/failure.sh.j2
dest: "{{ services.restic.volume_folder }}/scripts/failure.sh"
owner: root
group: root
mode: '0755'
- name: Upload success.sh script
template:
src: restic/success.sh.j2
dest: "{{ services.restic.volume_folder }}/scripts/success.sh"
owner: root
group: root
mode: '0755'

View file

@ -0,0 +1,9 @@
- name: Upload vhost config for uptime domain
copy:
src: vhost/uptime_kuma
dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.uptime_kuma.domain }}_location"
- name: Upload vhost config for status domain
copy:
src: vhost/uptime_kuma
dest: "{{ services.nginx_proxy.volume_folder }}/vhost/{{ services.uptime_kuma.status_domain }}_location"

View file

@ -3,6 +3,15 @@
- name: Create subfolder for MariaDB data - name: Create subfolder for MariaDB data
file: file:
name: "{{ services.writefreely.volume_folder }}/db" name: "{{ services.writefreely.volume_folder }}/db"
owner: "999"
group: "999"
state: directory
- name: Create subfolder for encryption keys
file:
name: "{{ services.writefreely.volume_folder }}/keys"
owner: "2"
group: "2"
state: directory state: directory
- name: Upload config.ini - name: Upload config.ini

View file

@ -8,8 +8,10 @@
include_tasks: include_tasks:
file: block.yml file: block.yml
vars: vars:
service: "{{ item }}" service:
loop: "{{ services | dict2items(key_name='name', value_name='vars') }}" name: "{{ item }}"
vars: "{{ services[item] }}"
loop: "{{ services_include }}"
when: single_service is not defined and when: single_service is not defined and
(item.vars.disabled_in_vagrant is not defined or (item.vars.disabled_in_vagrant is not defined or
not (item.vars.disabled_in_vagrant and vagrant)) not (item.vars.disabled_in_vagrant and vagrant))
@ -18,7 +20,9 @@
include_tasks: include_tasks:
file: block.yml file: block.yml
vars: vars:
service: "{{ {single_service: services[single_service]} | dict2items(key_name='name', value_name='vars') | join }}" service:
name: "{{ single_service }}"
vars: "{{ services[single_service] }}"
when: single_service is defined and single_service in services and when: single_service is defined and single_service in services and
(services[single_service].disabled_in_vagrant is not defined or (services[single_service].disabled_in_vagrant is not defined or
not (services[single_service].disabled_in_vagrant and vagrant)) not (services[single_service].disabled_in_vagrant and vagrant))

View file

@ -0,0 +1,21 @@
# vim: ft=yaml.ansible
---
version: "3.5"
services:
diun:
image: "ghcr.io/crazy-max/diun:{{ services.diun.version }}"
command: serve
volumes:
- "./data:/data"
- "/var/run/docker.sock:/var/run/docker.sock"
environment:
- "TZ=Europe/Paris"
- "DIUN_WATCH_WORKERS=20"
- "DIUN_WATCH_SCHEDULE=0 */6 * * *"
- "DIUN_WATCH_JITTER=30s"
- "DIUN_PROVIDERS_DOCKER=true"
- "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true"
labels:
- "diun.enable=true"
restart: always

View file

@ -22,7 +22,8 @@ services:
FORGEJO__mailer__ENABLED: true FORGEJO__mailer__ENABLED: true
FORGEJO__mailer__FROM: noreply@{{ services.forgejo.domain }} FORGEJO__mailer__FROM: noreply@{{ services.forgejo.domain }}
FORGEJO__mailer__PROTOCOL: smtp FORGEJO__mailer__PROTOCOL: smtp
FORGEJO__mailer__SMTP_ADDR: "{{ smtp_host }}:{{ smtp_port }}" FORGEJO__mailer__SMTP_ADDR: "{{ smtp_host }}"
FORGEJO__mailer__SMTP_PORT: "{{ smtp_port }}"
FORGEJO__security__LOGIN_REMEMBER_DAYS: "60" FORGEJO__security__LOGIN_REMEMBER_DAYS: "60"
FORGEJO__security__PASSWORD_COMPLEXITY: off FORGEJO__security__PASSWORD_COMPLEXITY: off
FORGEJO__security__MIN_PASSWORD_LENGTH: "8" FORGEJO__security__MIN_PASSWORD_LENGTH: "8"

View file

@ -5,15 +5,19 @@ services:
backup: backup:
image: mazzolino/restic:{{ services.restic.version }} image: mazzolino/restic:{{ services.restic.version }}
restart: always restart: always
hostname: {{ inventory_hostname_short }}
domainname: {{ inventory_hostname }}
environment: environment:
RUN_ON_STARTUP: false RUN_ON_STARTUP: false
BACKUP_CRON: "0 30 3 * * *" BACKUP_CRON: "0 30 3 * * *"
RESTIC_REPOSITORY: sftp:{{ services.restic.user }}@{{ services.restic.domain }}:{{ services.restic.repository }} RESTIC_REPOSITORY: sftp:{{ services.restic.remote_user }}@{{ services.restic.remote_domain }}:{{ services.restic.repository }}
RESTIC_PASSWORD: "{{ restic_secrets.repository_password }}" RESTIC_PASSWORD: "{{ restic_secrets.repository_password }}"
RESTIC_BACKUP_SOURCES: /mnt/volumes RESTIC_BACKUP_SOURCES: /mnt/volumes
RESTIC_BACKUP_ARGS: >- RESTIC_BACKUP_ARGS: >-
--tag datacoop-volumes --tag datacoop-volumes
--exclude '*.tmp' --exclude '*.tmp'
--exclude '/mnt/volumes/mastodon/mastodon_data/cache/'
--exclude '/mnt/volumes/restic/'
--verbose --verbose
RESTIC_FORGET_ARGS: >- RESTIC_FORGET_ARGS: >-
--keep-last 10 --keep-last 10
@ -21,17 +25,26 @@ services:
--keep-weekly 5 --keep-weekly 5
--keep-monthly 12 --keep-monthly 12
TZ: Europe/Copenhagen TZ: Europe/Copenhagen
POST_COMMANDS_FAILURE: /run/libexec/failure.sh
POST_COMMANDS_SUCCESS: /run/libexec/success.sh
volumes: volumes:
- "./ssh:/run/secrets/.ssh:ro" - "./ssh:/run/secrets/.ssh:ro"
- "./scripts:/run/libexec:ro"
- "/docker-volumes:/mnt/volumes:ro" - "/docker-volumes:/mnt/volumes:ro"
networks:
- postfix
prune: prune:
image: mazzolino/restic:{{ services.restic.version }} image: mazzolino/restic:{{ services.restic.version }}
environment: environment:
RUN_ON_STARTUP: false RUN_ON_STARTUP: false
PRUNE_CRON: "0 30 4 * * *" PRUNE_CRON: "0 30 4 * * *"
RESTIC_REPOSITORY: sftp:{{ services.restic.user }}@{{ services.restic.domain }}:{{ services.restic.repository }} RESTIC_REPOSITORY: sftp:{{ services.restic.remote_user }}@{{ services.restic.remote_domain }}:{{ services.restic.repository }}
RESTIC_PASSWORD: "{{ restic_secrets.repository_password }}" RESTIC_PASSWORD: "{{ restic_secrets.repository_password }}"
TZ: Europe/copenhagen TZ: Europe/copenhagen
volumes: volumes:
- "./ssh:/run/secrets/.ssh:ro" - "./ssh:/run/secrets/.ssh:ro"
networks:
postfix:
external: true

View file

@ -0,0 +1,21 @@
# vim: ft=yaml.docker-compose
version: '3.3'
services:
uptime-kuma:
image: "louislam/uptime-kuma:{{ services.uptime_kuma.version }}"
restart: always
container_name: uptime-kuma
networks:
- external_services
volumes:
- "./uptime-kuma-data:/app/data"
environment:
VIRTUAL_HOST: "{{ services.uptime_kuma.domain }},{{ services.uptime_kuma.status_domain }}"
LETSENCRYPT_HOST: "{{ services.uptime_kuma.domain }},{{ services.uptime_kuma.status_domain }}"
LETSENCRYPT_EMAIL: "{{ letsencrypt_email }}"
networks:
external_services:
external: true

View file

@ -3,21 +3,22 @@ version: "3.8"
services: services:
db: db:
image: "mariadb:{{ services.writefreely.mariadb_version }}" image: mariadb:{{ services.writefreely.mariadb_version }}
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- "./db:/var/lib/mysql" - "./db:/var/lib/mysql"
environment: environment:
- MYSQL_DATABASE=writefreely MYSQL_DATABASE: writefreely
- MYSQL_ROOT_PASSWORD={{ writefreely_secrets.db_password }} MYSQL_ROOT_PASSWORD: {{ writefreely_secrets.db_password }}
app: app:
image: "writeas/writefreely:{{ services.writefreely.version }}" image: ghcr.io/writefreely/writefreely:{{ services.writefreely.version }}
restart: unless-stopped restart: unless-stopped
networks: networks:
- default - default
- external_services - external_services
volumes: volumes:
- "./keys:/go/keys"
- "./config.ini:/go/config.ini" - "./config.ini:/go/config.ini"
environment: environment:
VIRTUAL_HOST: "{{ services.writefreely.domain }}" VIRTUAL_HOST: "{{ services.writefreely.domain }}"

View file

@ -0,0 +1,14 @@
#!/bin/sh
curl smtp://{{ smtp_host }} --mail-from {{ services.restic.mail_from }} --mail-rcpt admin@data.coop --upload-file . << END_OF_MAIL
From: Restic backup <{{ services.restic.mail_from }}>
To: admin@data.coop
Subject: Restic backup failed
Date: $(date)
Dear sir or madam,
Tonight's backup failed!
Best,
Your backup software.
END_OF_MAIL

View file

@ -1,3 +1,3 @@
Host {{ services.restic.domain }} Host {{ services.restic.remote_domain }}
ServerAliveInterval 60 ServerAliveInterval 60
ServerAliveCountMax 240 ServerAliveCountMax 240

View file

@ -1 +1 @@
{{ services.restic.domain }} {{ services.restic.host_key }} {{ services.restic.remote_domain }} {{ services.restic.host_key }}

View file

@ -0,0 +1,2 @@
#!/bin/sh
curl '{{ restic_secrets.uptime_kuma_url }}'

View file

@ -14,4 +14,4 @@
- name: Install Dell OpenManage - name: Install Dell OpenManage
apt: apt:
name: srvadmin-all name: srvadmin-all
when: not vagrant when: not vagrant and not skip_dell_apt_repo

View file

@ -2,10 +2,11 @@
--- ---
- import_tasks: ssh-port.yml - import_tasks: ssh-port.yml
tags: [change-ssh-port] tags: [change-ssh-port]
when: not do_not_change_ssh_port
- import_tasks: dell-apt-repo.yml - import_tasks: dell-apt-repo.yml
tags: [setup-dell-apt-repo] tags: [setup-dell-apt-repo]
when: not vagrant when: not skip_dell_apt_repo and not vagrant
- import_tasks: upgrade.yml - import_tasks: upgrade.yml
tags: [do-full-system-upgrade] tags: [do-full-system-upgrade]

24
uptime.data.coop.yml Normal file
View file

@ -0,0 +1,24 @@
# vim: ft=yaml.ansible
---
- hosts: monitoring
gather_facts: true
become: true
vars:
vagrant: false
base_domain: "{{ 'datacoop.devel' if vagrant else 'data.coop' }}"
letsencrypt_enabled: true
letsencrypt_email: "admin@{{ base_domain }}"
services_include:
- nginx_proxy
- uptime_kuma
- watchtower
do_not_change_ssh_port: true
skip_dell_apt_repo: true
tasks:
- import_role:
name: ubuntu_base
tags:
- base_only
- import_role:
name: docker

View file

@ -1 +1,2 @@
[production]
localhost ansible_port=19022 localhost ansible_port=19022