add mastodon stack
This commit is contained in:
parent
2b31d94f1d
commit
f6a6afc70a
6 changed files with 286 additions and 0 deletions
|
@ -8,6 +8,7 @@ docker_node_labels:
|
||||||
syncthing: "true"
|
syncthing: "true"
|
||||||
seafile: "true"
|
seafile: "true"
|
||||||
radicale: "true"
|
radicale: "true"
|
||||||
|
mastodon: "true"
|
||||||
|
|
||||||
data_directories:
|
data_directories:
|
||||||
- 'traefik'
|
- 'traefik'
|
||||||
|
|
|
@ -7,3 +7,4 @@
|
||||||
- {role: forgejo, tags: forgejo}
|
- {role: forgejo, tags: forgejo}
|
||||||
- {role: seafile, tags: seafile}
|
- {role: seafile, tags: seafile}
|
||||||
- {role: radicale, tags: radicale}
|
- {role: radicale, tags: radicale}
|
||||||
|
- {role: mastodon, tags: mastodon}
|
||||||
|
|
122
ansible/roles/mastodon/docker-stack.yml.j2
Normal file
122
ansible/roles/mastodon/docker-stack.yml.j2
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
# vi: ft=yaml
|
||||||
|
version: '3'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
traefik:
|
||||||
|
external: true
|
||||||
|
mastodon:
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
cache:
|
||||||
|
|
||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:14-alpine
|
||||||
|
networks:
|
||||||
|
- mastodon
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD', 'pg_isready', '-U', 'postgres']
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /mnt/data/mastodon/postgres14
|
||||||
|
target: /var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- 'POSTGRES_HOST_AUTH_METHOD=trust'
|
||||||
|
- 'POSTGRES_PASSWORD={{ mastodon_postgres_password }}'
|
||||||
|
- 'POSTGRES_DB=mastodon_production'
|
||||||
|
- 'POSTGRES_USER=mastodon'
|
||||||
|
deploy:
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- "node.labels.mastodon == true"
|
||||||
|
redis:
|
||||||
|
image: redis:7-alpine
|
||||||
|
networks:
|
||||||
|
- mastodon
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD', 'redis-cli', 'ping']
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /mnt/data/mastodon/redis
|
||||||
|
target: /data
|
||||||
|
environment:
|
||||||
|
- 'REDIS_PASSWORD={{ mastodon_redis_password }}'
|
||||||
|
deploy:
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- "node.labels.mastodon == true"
|
||||||
|
web:
|
||||||
|
image: tootsuite/mastodon:v3.5.3
|
||||||
|
env_file: /srv/mastodon/mastodon.env
|
||||||
|
command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
|
||||||
|
networks:
|
||||||
|
- mastodon
|
||||||
|
- traefik
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:3000/health || exit 1']
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /mnt/data/mastodon/public/system
|
||||||
|
target: /mastodon/public/system
|
||||||
|
- cache:/mastodon/public/system/cache
|
||||||
|
deploy:
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- "node.labels.mastodon == true"
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.mastodon.entrypoints=websecure
|
||||||
|
- traefik.http.routers.mastodon.rule=Host(`social.pizzapim.nl`)
|
||||||
|
- traefik.http.routers.mastodon.tls=true
|
||||||
|
- traefik.http.routers.mastodon.tls.certresolver=letsencrypt
|
||||||
|
- traefik.http.services.mastodon.loadbalancer.server.port=3000
|
||||||
|
- traefik.http.routers.mastodon.service=mastodon
|
||||||
|
- traefik.docker.network=traefik
|
||||||
|
|
||||||
|
streaming:
|
||||||
|
image: tootsuite/mastodon:v3.5.3
|
||||||
|
env_file: /srv/mastodon/mastodon.env
|
||||||
|
command: node ./streaming
|
||||||
|
networks:
|
||||||
|
- mastodon
|
||||||
|
- traefik
|
||||||
|
healthcheck:
|
||||||
|
# prettier-ignore
|
||||||
|
test: ['CMD-SHELL', 'wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1']
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
deploy:
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- "node.labels.mastodon == true"
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- traefik.http.routers.mastodon-streaming.entrypoints=websecure
|
||||||
|
- "traefik.http.routers.mastodon-streaming.rule=(Host(`social.pizzapim.nl`) && PathPrefix(`/api/v1/streaming`))"
|
||||||
|
- traefik.http.routers.mastodon-streaming.service=mastodon-streaming
|
||||||
|
- traefik.http.services.mastodon-streaming.loadbalancer.server.port=4000
|
||||||
|
- traefik.docker.network=traefik
|
||||||
|
sidekiq:
|
||||||
|
image: tootsuite/mastodon:v3.5.3
|
||||||
|
env_file: /srv/mastodon/mastodon.env
|
||||||
|
command: bundle exec sidekiq
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
- redis
|
||||||
|
networks:
|
||||||
|
- mastodon
|
||||||
|
volumes:
|
||||||
|
- type: bind
|
||||||
|
source: /mnt/data/mastodon/public/system
|
||||||
|
target: /mastodon/public/system
|
||||||
|
- cache:/mastodon/public/system/cache
|
||||||
|
healthcheck:
|
||||||
|
test: ['CMD-SHELL', "ps aux | grep '[s]idekiq\ 6' || false"]
|
||||||
|
deploy:
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- "node.labels.mastodon == true"
|
126
ansible/roles/mastodon/mastodon.env
Normal file
126
ansible/roles/mastodon/mastodon.env
Normal file
|
@ -0,0 +1,126 @@
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
66373333363835643061643565323065346266346663376133633966383863656531336664656237
|
||||||
|
3231356236346361393262616662303931633463363932640a356363363834396338653331353230
|
||||||
|
34353937313866363332376263346638663430353232343563616530323762386639343632633563
|
||||||
|
6665613863343864340a633434636136303163393833376663343464656231623237623864336538
|
||||||
|
62356537306330626338316536653464616662333963313736663036313735306666366237396430
|
||||||
|
37663739313432613564313434383961313231393134626665383238633861666632343738383032
|
||||||
|
35613363353264653731333637633464366263373162373531313438363762383062633363313636
|
||||||
|
31623032356566386631336362656634353432373132313461353664316365613232373763623836
|
||||||
|
66306430373033656563316661336539613162353662343266613537316432623465666138333334
|
||||||
|
37373239656433393564333236393339656165623137316561623935396139373935333963326431
|
||||||
|
37333261336132633964656239623738613833383462356135363761366564393164616530363436
|
||||||
|
66323162643466363839626237313638336639343636616536303339643839366261303934373766
|
||||||
|
39653264333036323334663634366165343438303132393737393461663038383037616536326161
|
||||||
|
64666534623462363534636633353630666665376138386664653037323164643364373431313136
|
||||||
|
35643337353961396333653264646139383264393736366332643331656635663362323537323462
|
||||||
|
32383030643433306136386463663862313362383264633335613563663531323065646563363161
|
||||||
|
62313539303266386238363561373634363336643635366164626564623033613366353937383230
|
||||||
|
36373165643834353733656563663333653839663631373330373733633938333263366333313336
|
||||||
|
65373733376434373630323339316131363765663166313039336262666265333266366236363932
|
||||||
|
30383163643830623334386532636236393664613064376633633061363539623661333361353565
|
||||||
|
30363064666635306130366165313535613236616366383630323930336230646461643362346532
|
||||||
|
36663464383333323866373439363436346534306365653462663437646561363335303635623838
|
||||||
|
66653338366433326330386462326539316235666233383333366330626630663934313836386333
|
||||||
|
34626134376463336164666335333565353132333530646632323531643731316436316333333261
|
||||||
|
38343033333862343965336434333131636333386336393266306437623032323266333564386431
|
||||||
|
62323733346239343136663933393134366161363532646331373066643834346238633433663535
|
||||||
|
37353666333530613138373932343661653165373161393533326137643936623133373765346434
|
||||||
|
39633532663236636434336461653433626637323931303833313437373264363439343264623438
|
||||||
|
35396636656266623831316633643837363931366231396537333633313831623865626331616633
|
||||||
|
66386265633037373131313039306431373134303131666239373335356133656430353862656432
|
||||||
|
61323439303336356632383962343236303135363931636534393238636136663834363439386461
|
||||||
|
39386462303135313637666535336565643439373961373336396237636431623537653932353330
|
||||||
|
32653038396665326539366135343439316335656331653165376339613630333331313430386664
|
||||||
|
32616431653461636164373437383864653265396461656330613335636532386133386336616631
|
||||||
|
30643466633635613131653361393735303735633138623663626234633434343831653138656335
|
||||||
|
61346139303438333562633964396334303063336530336434643031633265666137666230313732
|
||||||
|
63366133383463336565393464306330343733636439326362366364303539636139633437373861
|
||||||
|
63643431313830643164613661353231313665333765363032333739353731353334636336363065
|
||||||
|
30316536303561326330626637393538373838313833393038643132643535333132373032383937
|
||||||
|
35363833393063663865323630346665393236366464613861326666313337613334626139663037
|
||||||
|
65343563343464336130643764333031643432343736643065653335303536373637346134373834
|
||||||
|
31636366376232376262633235643762333665613163623066396138623133656334356538636266
|
||||||
|
36353466303234303331326632646634343262336135643533353234326532643464356538663934
|
||||||
|
63366237383136343035386331323232633066343263353534386635343238613637656232623266
|
||||||
|
39666638353938393936636133386234633064303439333633303136326333396233366231653166
|
||||||
|
37646131313064343338316264396563376334343535326161656664633934316137616533363134
|
||||||
|
30393133666461656266393530636538313038346530386238666132346133363930333130356439
|
||||||
|
34306339616263663930363939623531613233373135656465373030663938313333616231613862
|
||||||
|
36366632333238376439666339363932646335656139346635393233343766343432363962323430
|
||||||
|
35613462663631643533363135376665363061633866306665653537303736353338306164303433
|
||||||
|
34373438616138303234336638653963386566663464346262643838373030323235326162656536
|
||||||
|
33326130633863626463393335643630363166373564326433663633393837333832663236353233
|
||||||
|
30313364393935393961623663383337383964666263363433663434646161316264386635616565
|
||||||
|
36613961343733376636373336383634346134366330616464636430333236396533623663326261
|
||||||
|
63666539303735363135636336643139366139306163336330383334396165346363646565323634
|
||||||
|
65396535356439366162663135646238643930643935316531323561633266323965336236376162
|
||||||
|
36356533356465303635646632303663373432333037343035313834623364356438336661653065
|
||||||
|
33383037663766323830623365336435356563333131376264393432626337636435626332633766
|
||||||
|
31646133646161623138613839316131383338383161643331353934336366343562656435336335
|
||||||
|
30653938306431396665356237623165303564613231386236363465623030316265633932636138
|
||||||
|
31313434346133613561636163656166666532393838303432656266343239373336643236323864
|
||||||
|
64633566343032663866343930346330396436376432343232393338656334633764656365343733
|
||||||
|
65623632343930303035643035646337313139383830333664636537306331323330663536636364
|
||||||
|
65393332326130643234653939653037623531636439383464343133323234373961323934326462
|
||||||
|
38636133356339613339383237383833366364663635313835613763623738663164663866393034
|
||||||
|
31326638623938626432353631303763633066326538666365376461653365323937303265353362
|
||||||
|
38303232626531633064383139646261373530363631316436636665623633353538653132656239
|
||||||
|
39346464633530613332383138386363613131303530643835613736363966613063383939663434
|
||||||
|
65326338363662643034373662633735656138313838623937663135643534353135653539333765
|
||||||
|
61396362643565323261313666376362656631666566306130363365616536376631636139356662
|
||||||
|
39313766663265343764393031303934303633363437396530396539636436323864393434343736
|
||||||
|
62343066623736626461353634653938353666376433636161303235356430633938636366333862
|
||||||
|
61333364353431663665643232373136373733633334303831643566356565396535396437383036
|
||||||
|
33316639386566643636373034626237393533666137376135396163633961386438633339333466
|
||||||
|
35323265326635653866353365646434626234616335653262663766633038636537356331326563
|
||||||
|
34316438663962313232653366613036333936663531323362383637653530376639643936303263
|
||||||
|
31373637633166333230313732613738623362663838663139336531363362626463643135313064
|
||||||
|
34653130613566613536356533633564663031613562363430646331653239363666303463303933
|
||||||
|
37366237613538636233323630393139636462653239643736623133623336613938623865613135
|
||||||
|
66326431373831636166303438623239646364343639303237623864663064383933353963643966
|
||||||
|
63666562323563386465326337656434316538656437646165623466393735656162383339636565
|
||||||
|
38656564383437363935623564633137363662383536626263336437353166613637633837356237
|
||||||
|
61353734313836623931623333643138336538613136323831343935333532303463363834373461
|
||||||
|
35376133616165663438646266653532393065396230613635656264376663336133316463663164
|
||||||
|
63376666323532613032363565626439656464366662613737303565366332356334343134363163
|
||||||
|
64373039316664333436373265656337326638353661383663303962353865616439626239653634
|
||||||
|
63343362363733346230643736323130623764643364366637316433353431366530633163356665
|
||||||
|
33306166303632333231376535323734313262636432393839656630303138326264303065626139
|
||||||
|
61623731663630373264646165373462616635326338333465646339633630653066656363653036
|
||||||
|
62346264303163663634653965386262353233336630633233623733643164646436323861383833
|
||||||
|
33386266656466623563643134333662383130343862396433346366373837643066616464316230
|
||||||
|
39326265383261333835613635383730663837656136643666323833313534663365643662643863
|
||||||
|
63386438316561306661636134633636313866663436393639333831323761303034323831616639
|
||||||
|
31383463346536393133636336376236633963313962643432623065653765326631343964386138
|
||||||
|
32383531363062616661653264653462613836636531366233326464646534316664366537356439
|
||||||
|
37633466313465383362366261373936363765353735646231323561363635663933356562386361
|
||||||
|
37613230306638636435643630623136376264353038613265353234313938386162323938613165
|
||||||
|
35613262613362303637666466316461373435633037633963623834663232623736636634356334
|
||||||
|
39323466313936313963616135393263623162333032666430343235643763343862336434663238
|
||||||
|
32393439313665363535343530383133636634623035656265646164366234336432383865653566
|
||||||
|
36383763616161383265323361643761343361653134353232643334633739643335376331353765
|
||||||
|
37343664636137656434313137663464303864356261313532333663623431303734316132346563
|
||||||
|
32303838376633666330656564336532346532306633396138393061656436323564353762326164
|
||||||
|
32356137643036646662333065396463633230363437663362363661346662326231653364376232
|
||||||
|
37386661653736633434356161373532343030363062316161643634626530306335326661303532
|
||||||
|
34363462363932353130633964623462396163313965343837666333613932636531383762323234
|
||||||
|
34653337613138373361336165613164333765373539393035373736653233383363613730383339
|
||||||
|
38613161323035343664393637383163356633346132613035336639643036383231343939616533
|
||||||
|
34353633323764366664646338303766643863366662616663346237356230383433386130313665
|
||||||
|
33663339383830663366346261393461353465303762393534646562316331386239646365303961
|
||||||
|
31393237663533363933656238623138316432396132356663643132313431663962393434633136
|
||||||
|
61376634343939383566633834386531613365313531343738623965663637653266343431303736
|
||||||
|
33343837303334663130306365386337323430336230303839663062333164383064656637303562
|
||||||
|
64376430343765366332646562626233333631363161366561666531663961633966656536656262
|
||||||
|
38396538353561626639353261646434376133643561613566343534363766626639616432386233
|
||||||
|
36306136383031323538386336613039393130333132343433316633363031313264313233326638
|
||||||
|
37633032306238376162633236353536656663383761653938333239376662326336343132333136
|
||||||
|
62353439366135653934646561643434366466383632343836383262666430613265633936353638
|
||||||
|
30306232386534323366633164386630343562336438343937363062393365626333356632663535
|
||||||
|
64373234356163616165393736323236623530306462353737376134643161336331343733323463
|
||||||
|
32303337346330653833343838366263323862613534376133646437643162333433636262663233
|
||||||
|
32306639313065396538393939633565386131303761373735303665656434663261336539303939
|
||||||
|
31323065353437393333323937363665396332363763313066303961303633623137643565643432
|
||||||
|
39386165323137636231663634643935643838616531633738623537363063633631336130323130
|
||||||
|
3863
|
20
ansible/roles/mastodon/tasks/main.yml
Normal file
20
ansible/roles/mastodon/tasks/main.yml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
- name: Create working directory
|
||||||
|
file:
|
||||||
|
path: /srv/mastodon
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Copy env file
|
||||||
|
copy:
|
||||||
|
src: "{{ role_path }}/mastodon.env"
|
||||||
|
dest: /srv/mastodon/mastodon.env
|
||||||
|
|
||||||
|
- name: Copy Docker stack file
|
||||||
|
template:
|
||||||
|
src: "{{ role_path }}/docker-stack.yml.j2"
|
||||||
|
dest: /srv/mastodon/docker-stack.yml
|
||||||
|
|
||||||
|
- name: Deploy Docker stack
|
||||||
|
docker_stack:
|
||||||
|
name: mastodon
|
||||||
|
compose:
|
||||||
|
- /srv/mastodon/docker-stack.yml
|
16
ansible/roles/mastodon/vars/main.yml
Normal file
16
ansible/roles/mastodon/vars/main.yml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
mastodon_postgres_password: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
34643131323762373635383736636432643161646130373565333432323337646435656233383131
|
||||||
|
3066353734373938353162656335666536323265643162620a663562303636383737393061396331
|
||||||
|
30353538326333393031373736363933666636383866373763303237376561333061323131303062
|
||||||
|
3532316632613062310a343566393237363364613931353062636537663864383839623930383836
|
||||||
|
32613634616335616462336261303632646266326663383166366236643438616538626263343835
|
||||||
|
6539616439636364626466333163316164633631616132623665
|
||||||
|
mastodon_redis_password: !vault |
|
||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
35643365666261333939303162366366393933613034306438323031393763343065613034366331
|
||||||
|
3537383364313562623234363465363937613736616536360a323664306562653337616534313737
|
||||||
|
62343433333033376363386333663632663965373963386432316136376563383763623631326133
|
||||||
|
3430346364303334380a613932336534346437346539623864306233626265336663343565303866
|
||||||
|
33393665633236653536383636616537396432366532366438316135303437313736336536336264
|
||||||
|
3366643332306236376466386630666230366235333662663161
|
Reference in a new issue