chore(deps): update amir20/dozzle docker tag to v8.4.3 - autoclosed #1

Closed
RenovateBot wants to merge 0 commits from renovate/amir20-dozzle-8.x into master
43 changed files with 528 additions and 805 deletions

View File

@ -1,33 +0,0 @@
name: Deploy
on:
push:
branches:
- master
jobs:
deploy:
name: Prepare Build
runs-on: homelab
container: git.comprofix.com/mmckinnon/alpine-runner:latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Deploy containers
run: |
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KNOWN_HOSTS }}" >> ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
eval $(ssh-agent -s)
ssh-add <(echo "${{ secrets.SSH_PRIVATE_KEY }}")
echo "HOST *" > ~/.ssh/config
echo "StrictHostKeyChecking no" >> ~/.ssh/config
echo "${{ secrets.ANSIBLE_VAULT_PASSWORD }}" > ~/.vault_password.txt
echo "nameserver 10.10.10.1" > /etc/resolv.conf
./.gitea/workflows/deploy.sh "${{ github.event.before }}" "${{ github.sha }}"

View File

@ -1,14 +0,0 @@
#!/bin/bash
changed_tasks=($(git diff --name-only $1 $2 | grep '\.yml$'))
if [ ! -z "$changed_tasks" ]; then
for task in "${changed_tasks[@]}"; do
tag=$(echo "$task" | awk -F/ '{print $2}')
if [[ "$tag" != "deploy-homelab.yml" && "$tag" != "main.yml" && "$tag" != "all.yml" && "$tag" != "all.example.yml" && "$tag" != "ISSUE_TEMPLATE" && "$tag" != "workflows" ]] ; then
tag=${tag%.*}_install
/root/.local/bin/ansible-playbook main.yml --tags "$tag" --vault-password-file ~/.vault_password.txt
fi
done
else
echo "No changes detected in task files. Skipping Ansible playbook execution."
fi

View File

@ -3,48 +3,40 @@
become: yes
tasks:
# - name: Delete existing template
# community.general.proxmox_kvm:
# api_host: "{{ api_host }}"
# api_user: "{{ api_user }}"
# api_password: "{{ api_password }}"
# node: "{{ node_target }}"
# name: "debian-12-generic-amd64"
# state: absent
- name: Write notify script
ansible.builtin.template:
src: scripts/notify.sh.j2
dest: /tmp/notify.sh
# - name: Download cloud-init image
# register: image
# ansible.builtin.get_url:
# url: "https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2"
# dest: /tmp
# mode: '0644'
# force: true
- name: Delete existing template
community.general.proxmox_kvm:
api_host: "{{ api_host }}"
api_user: "{{ api_user }}"
api_password: "{{ api_password }}"
node: "{{ node_target }}"
name: "debian-12-generic-amd64"
state: absent
- name: Download cloud-init image
register: image
ansible.builtin.get_url:
url: "https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2"
dest: /tmp
mode: '0644'
force: true
- name: Install Tools
ansible.builtin.apt:
name:
- libguestfs-tools
- python3
- python3-pip
- python3-proxmoxer
update_cache: true
install_recommends: false
state: present
# - name: Install Tools
# ansible.builtin.apt:
# name:
# - libguestfs-tools
# - python3
# - python3-pip
# - python3-proxmoxer
# update_cache: true
# install_recommends: false
# state: present
- name: Install Tools to cloud-init image
ansible.builtin.shell: |
virt-copy-in -a {{ image.dest }} /tmp/notify.sh /usr/local/bin
virt-customize -a {{ image.dest }} --run-command 'chmod +x /usr/local/bin/notify.sh'
virt-customize -a {{ image.dest }} --run-command 'sed -i "s|primary.*|primary: http://mirror.amaze.com.au/debian|g" /etc/cloud/cloud.cfg'
virt-customize -a {{ image.dest }} --run-command 'apt update'
virt-customize -a {{ image.dest }} --install qemu-guest-agent
# - name: Install Tools to cloud-init image
# ansible.builtin.shell: |
# virt-customize -a {{ image.dest }} --install qemu-guest-agent
# virt-customize -a {{ image.dest }} --install vim
# virt-customize -a {{ image.dest }} --install git
- name: Create new VM template from cloud-init image
community.general.proxmox_kvm:
api_host: "{{ api_host }}"
@ -65,6 +57,9 @@
ostype: "l26"
vga: std
scsihw: 'virtio-scsi-single'
#scsi:
#scsi0: "{{ storage_target }}:0,iothread=1,discard=on,import-from={{ image.dest }},format=raw"
#scsi0: "{{ storage_target }}:0,import-from=/tmp/debian-12-generic-amd64.qcow2,format=raw"
net:
net0: 'virtio,bridge=vmbr0,firewall=1,tag=10'
ipconfig:
@ -72,7 +67,11 @@
template: true
timeout: 600
vmid: 10000
# - name: Pause for 5 seconds while template imported
# ansible.builtin.pause:
# seconds: 10
- name: Import HDD to Template
command:
cmd: "qm set 10000 --scsi0 {{ storage_target }}:0,iothread=1,discard=on,import-from=/tmp/debian-12-generic-amd64.qcow2,format=raw"

View File

@ -1,10 +0,0 @@
---
- hosts: frigate
become: yes
pre_tasks:
- name: Base Install
include_tasks: tasks/base.yml
roles:
- role: docker
tags: docker_install
tags: frigate_install

View File

@ -1,124 +1,100 @@
$ANSIBLE_VAULT;1.1;AES256
34646630343732313061396666373463393031646135353834353265613361303438356563383561
3936383632386635396130633831623737373039353061390a343265636532343539376335666536
61343039323530353536373531323939306130346162353535313937323066316135363437336466
3233616635666233370a323336303866333361613535633562666662663732313536613930346461
61356637393363373662613633336332616631393735646130366439316566306265326261373466
66363865306337666238633530383238623763616433306533323934346366323763626231316262
33656263643566666531626236316338353561333536366664356161353234366330396236323139
64393735323130623736623131353631616265653332633862643863653130623732653265363533
66353963643430306164363066303666326534623934383936306233343931343863663637313837
62383030616266356366333236393030356235656231396265363135396461303564323335373830
36626161326133366564323038316135666638633765373435343435336266366338306161353735
39313862653864306432323536303665393130343035303931343834326236333933333235343864
35313935353538636365373262336662343866383333356264656133373331656433616330613734
65653433663533333237653762313466316133333935626661653631343537373832383337386439
37613035633862353266366366336136626635373932383339383730366231353065313733643733
32383035656137303966636565653734653162663766386665656534373862323032306135666363
39393766643865306639363664373265323131353236626438626362356335356636626365616432
37653366376235373830396363613461326663623336346235386530363132323532613666376161
36313961383165643562313563663165646239303664633137366330613565366130323830656234
62613434623833326233323234323939333263613736396335393833336332633064623564373863
37376233616664313234656362393166396365656566313761383236616533663865623532666432
64326639323535373437333564366539666630353661383661336635373636323235356137376564
39613332633133303061633166393837386563316331303938326562323935333331616534633237
39386335346232333964323938383934336665313365623239616539646131376465366635346663
35616339386661313032316234323731336537633539323763623363346266653861653961356234
63383530323432303538353837353061626335383162383464313131353436333630656131383437
65373162393531313831376464333430303736393237323233643833653163613961613561363739
34336162336531636439303839323632393532646633613834316432316631333463646262343636
32313063363337363163343631623938656463323134326461616432663464313132386363393930
39346637643139393561336235326137316663326562323362616166633735616532333364623935
34306230353837643562646565336164366662626431643866623330363064393963383433633739
33623764373838386531356636383630643438393635303638346262306566633437636639356134
66383663326433343333393639633834636235316264386236623961653830363136333031333037
37326631613236633466303935363638623961393363613232303137376132633234396631303461
34343063323132643535346366646330306365316436373862396134613139383861363863336362
61363230396437343337633062636437383133653639363265666230383538383566326432306533
66323434383238336430323464376336656136393331343665646265613833656634356331623530
39653966373733336332386432363463393665343562376366663933353833333462303937356134
38326466396565646664643636376166303332373962333231313738626637306466373964353537
62323434663462613536393963373162313439666262303031303161376161633730373263386439
39323734383333323432313530376634303732663362306262643465353831373839633238313763
34396237623739623037643336616366303135333137303566313330306666313837356536613265
62323361643431376339353039323432623032333135653436363138666237323234333032373232
33616366646465363165303839383562376366373561393932363236373737313736613863376633
32626664393864613436336633353631633363366235366166316534333336653137373863333964
36656363333961653735353063383964616333613561646339613364333537663661313563353436
34623766306437653632396464323133386432353834306538313165636339316661363663383139
61333366303162343337363265373132323830613134656563663966663233376139613861616436
37316439643662623364346339366462336238363462666632616566333331306337396631393762
62633866353538326138366463633461393361666335623362393063333064336236656137373037
65316662313835623131363761396139663064653565643937316138356661306164653366303733
35396432313731303533663930323131666233386164343036346230303261396161343762373863
33613733633565626232336261626466356134353464323665613136373061343537323862313031
32653533643463306664356238333761326637323463336237396339636539386232653866646639
35306336323762396338316131366465326236363238353830336539363664343935346164653832
64333039363066336561303561623331363839623139613939613535333763396564616437326662
64303463333230653439376264386365363035373636366162613662353761643231613034353331
64666334626637373863326264333031346338373337356363396264643864653334346234316332
63373430306531353835313434336331636230306132653065653866613339333632396332363664
62376235623430373536393839656534326665613936316163373562623866396665343334636461
36643264383438636537633536326465313161633535636633643831653439653239653464376335
37633736323232313030633063373031646161373836613535623438313138316631626130653064
39646434323132353732653464656365666266623461376430346335643638346334636164303736
32653766383537656133346632663232306230396366656635333165633465636334323639613265
64613862623036303731373137376164383631386534646636366236636235666237613131636366
30386530376534613066666631386338393265653735343932336263343066353930636230613861
33633033646164626163653435303836336161303937313833303462333134383666623537383934
37303466646230383632343466396230636563336131383165346630303335313633363961646466
62643236653164336561323237316562633363306536653037616132616562653338393364643332
35346130376136393437663535666130373233316439333935623138623561643461353636323539
36313139353662366635313031663938376566343832623432383631646265393334313235333539
31643537383462663361643461363439643065306666353737626431353662343630383432306638
32396262313964326466303630613830626661353661643261373035636536613666363061323539
31366565366337633462363830636162646239363132386563666637656439386161663730653531
31666231663431626266653132633135306332626163393235383630386662326633383534383262
66303163336638643530316137666162386139616234323066343666643834316236336663326166
30333338313932313330616633346566663038663266653139386536653030343438316639363839
62316435653965316662346564353133626232393636623563633530636430303362326534323065
37366234653437323061613462353532393264353139656565326561353530613864343236656164
61653066323966306663353935326136303537373832333738356364393938333139616339633061
64336364313264323234663666386263306437333161313732643435633864386264396639613963
63356132626263393665363163626662633531633264396133626139333062396264306664303762
32316134623933326534633466396366653832363666353835323161333362646362633863396336
36613366626663393538613732623037616339353632303966303665383438346666623465303737
35346532663536326439646464333137646333656239636661383433373664306438366634663039
62633562346166646466633138313936363138633134633631373133333434623830613566303363
62653866663661653933323530656233333235306165616232343330316137656134373038306661
65326533316135373461643564313461336161613237346235333663376162353565613163396133
34316561613439323238666439616266636135656565353636353163653430656638363532623364
37366561646233663464643064333965616166373338646638353834306631353830613334316163
64323761623562623966643932626364376132343733323731343530613262636265356235636635
39613131636663663338623166366165626263333436663339323564313633643134383537356364
37306464633535646530306136666236336566353865356166626361656532373534356266653638
36366533343732333330333234313334633665383939626662316365636333363662383733366132
61326333346635353439356437306364303161646439333930663265303530353835376161393530
35333438643130333334623365363566616165646133653733616661316161313765316463363334
30333432323134646462613762323936346536613331353131613133323866346535383235383362
61323132613163316432353236666130336333363062346638343864653065336237653435623762
34663933316236356364343534623061623265666166346331383133343630363039373631313964
32623766663432366136616566333339333835323531313438313832323365613736663061313264
33653261303061643163343337613166653663333633343136306262643233303734323134306438
63396561366135656333666435393961323461313566353466393133363965393137383761363237
39626661336430646261353963343234303866336437663935656566653936303163343939656263
39383637623961656166373463613561373737633731343034356261616530356133353365393962
36383363666437316335343865396636303864366131623435316637353836376138616139666264
33396363653932633062396634393735653832373933373266333165363438396537303763393765
63316231633964333532323765356632333339383632366361356663616633366436316666643036
66336533653163623762376235396235323536326333383663383538336436656231633230303361
64353431636430353966346163313364333634343438656132326466306130386363303936333732
35356666386264343237313161376538396336643130336134336339646331333536373365303637
62633165333634616661656166636266353634613764326539346631383532323930316464356162
66373762663432303736663961643037363164336137316239353939656665353239663331636330
32346233613264323163646237353361633933323361373763653132323239373136366361626334
37656130316636646539383366626136383931353836643239323633386161643332343639633537
66373931396263346564373963616465646166346231323730326338613534373864366332383561
63326236343933613766623961306236653865393863383261653939336138346232353864656662
31353030316366373164313763316232326165646130356434663963343066653865333264363138
35303361383136333866383038396563356632653263623432646130323036356538643062383630
66366264646531623030373537386632653632656431663466323334306636626564386433306138
33393339376135376462343639633238363631343862636562313534386265616331313263376430
33356636646332626636623634616261323262343532383263643035326636383966616430356336
33306562346634623666623061623365396230653566323032313335653536646539646634376636
643562316534316563643238333762633339
32656263363465383531613338653130323635653238383232646265326433616462363464656539
3162306463653134666135376366643861353862663765630a343165613030633661353463316463
30633162376563663166616366643836316363663065333366643338383939636531323538616536
3136383363636131360a326661366265653364323966386634656465376433633035343033653034
38613637613431616637323038363933383037396236386633303366313835333865316563373966
35623038613166356132633264366361313030313765333335343136326165326333656361363462
61383538356434643333653534346264396335653535343362386234316666626431643130346436
34363265613632666431343735376166383466633338353339646337613135613461363366346562
39333135633061376139333030666365366438366434326139313265643034363934306134643630
65356338373564346362633830383337373131366263323166386435313931633139646233623033
36666334613766356463333963653034316636376364303063666237383732396335636231303764
63343963633664393632613263333563643737393466326665633766663764363236333834313737
66353833636661643536633066366666306231643038623632306230656534336666303930303461
62323137353530396135376364316331353138616161303265376334303666633032646631323664
31323336386339326530646237666239333963343732376235306537323336303030613164623765
33383534326532383230616561376136646632643634393563346565336139656339383631333539
66613830313134313239366232323965343063633433653434373564663861323330323663363965
36363132626535663734653739333331616532666635333936306334656264646336366233356562
34383135343335653130636132633631623634333961376262316536633339313033326239356663
38666361636239356665626139643735333461633436373362373034383536326664336663623038
31383237643733613533633535383939313835313363633362343965633336626263623932663862
32376265666438333663373364613861656564326139363731313731343234373934656633613532
35396535306164323237376232633830613432633735663636396137356361303730376239373130
61313630313235373363333862363961313938303332366233656364616536316366326466316439
39376632663062666135623639343136643065363734366430386563613530343061326661653733
63323036633363386636333636633864333334306164306431663662383562396434306336303337
32383137363834633731393564353238636237313361643438306536386432666663383563653834
38613031353265316230363464353638373564636234303266396264306231383634623664626535
64363033373535666135316364303862343732393036396334326136323437646239363361373762
61633761343362653261316434636664353564363330303131333236336230643161623863376634
34613466396330313837643139333565366263363430343536386266323937336466623931383062
62626363383163663637353235343035323233393033623132336664396464343638303839376561
65376537666430666330323430393337666233636165356665323032343563333833383830616165
33636662633961346561373231646664643932386465343537626237663338613836356430393961
39363963633237306561353161643133396366633762336437633138393139653261373539303539
36316464643362336135363631666130653131326435306463366236323830663965363662646361
35643430666365613465666436386332346561326439643863333138363263306331653733343432
63363932303735396234323963363336353133376362306539333131323262336535333733393639
63613064636333303532623935393262373363636161653566373830636131633835366463363533
61333163326262343037313462303930363234316462623963323563303864383163643936643761
61623461326334396539633364643031366231316535643135313935633439643361656136616532
34653635303631623639656165666231363563383336666337323361636137643564373565323238
35353965633230663166353161643033383666373530623739396139366137316438396333666231
34613136363939633565393336336633636665363838323230346262386335386365376262326462
34393539393365346364393432313665356465653866666538323134636630613137333261383364
39313362333832623837313235353331346434303166633137303234303062646337373664373861
32343037613362346134636531356463303739396364646339333138363064376632356534323834
64313864323065303531366435393864303035303331313737316137376361656438353739333830
64333234353837383938393861643236373338323436323863393933643332366363653935646264
37376336616162346161623136393662306137616638383134363964313835333332366430353364
64363730626564393134383534313130313633623137336630386364326365336262373963396239
32393061663964643036323233633232326232656363613339376663633761316639323737383365
33356562643530313434383639393766633733383263366162316332306532366362653737356539
63656366356333396165383330626535626232336137646464323665316464626139373964623163
31626230393661333164303834396331623934356538326166313635656437316236313630313463
65303633616637383436383737366361313736383262663130343932323830383763643235353264
36643966303937336636653037633739303364626638636438396332373862306665623037306336
61626330313364333639353366363131343434663139643361323836353065656137333162333130
65326364396665613763373565323165383638386135366235646437383130333434346635393566
61303263343132663531663237666337326365653737653731626364383665663334643139346338
66613266633263613037646334346661393063373330616431346161376137656139366166616264
64343737643662663134363265653063636665656366656135633932653165343361633835336665
35336139653939656162323366386435623134623062313461613261343264323731613732313435
65313436396464366662366533313162343233323836323336393665646361343438383063623964
63303761316666643237323364336139323536643664363331643565336166316163663731393065
30643638356231303563343433616335306435316161333937363937633131373536346464356539
36663865633336666539363734613131303931363732643665363866643533643763343433616561
66656238653734383131376330616535636138663933393032613166396436623436393563643336
38656164313566356566613331396539656531666462336163373034613232666439346633616166
35316636323064346531656631363265366335336265316362623438336230626332333838626265
61313834393664353133623132303332353633636464343764643334323866303664346563353839
34366534383963383366633765366337363835326133366264323239323266313433636538303537
65306230666335386332613638333738363965623934366338653133623434373831656361386437
37323232346236616236346539613739313237326433363961666535343634643937343331653366
32313864633562346132343538633035303432383033363939306663613939376261653662666161
39383639646338656233376130633966343637353238346435383637376636363631343037336236
36393361646161613736363135343964383364316265343939393333323937376661356331376465
62616333306137643366386561343234663836653833666239383835393031303163393365356661
31356537313530333934653564353039623766326236663635396539616533303831613135653738
31373234346439373230613139636661656636393238363132383732376436646638643131376435
36376435336232353333353563616164643632363565633639623161386436643663656132373135
35646365336365333931653665343461663263333432306131633335333766396165363631663930
66633039383564613739653436666330363661666631353461613333313632333032373939626263
38326164303131386461613962326166666434393031633365306332383663303638666330363632
31343135613065623464646661623865643765613838376434393765663366343961646432306135
62356234323436653166613462373931616236333265616465346564653563323233383962306162
33393030663330336332316332343731666561346539633531653431303934316663363964616236
37336236346563346533643338366433343035653766383663306333633031343462383931343465
38663432383865616432326236376633353935323434333431313739353232343762626439366263
39333762343761613861396431643561653665303831613964363733396663356333373437383766
66343831373463623233646438393537313966613238366334356331356234356232663066316635
66636666333465643132383536643234343135396632393265663465393930346138383761363139
62623966613964373963623362343164623837626638623330383932396638363766383166653462
65346634646264313132623332633536383236376336313339356561663339656430623866306336
66393263656461316433663735353733646638633430663635643064386633666334326437613839
36316333326663663664363436613933636532393630346430313931633533623035346366343934
61303437666334323231343336366330656261646566653938653733633933653562373938633962
30386438343166316366646565333766393930303435663362303432646337323465316261623565
363632346536336638383065656231373538

11
hosts
View File

@ -1,12 +1,9 @@
[proxmox]
pve2.comprofix.xyz ansible_user=root
[cloud]
vps02.comprofix.com
[docker]
docker.comprofix.xyz
# [docker]
# docker.comprofix.xyz
[omada]
omada-lxc.comprofix.xyz ansible_user=root

199
main.yml
View File

@ -1,10 +1,11 @@
---
- hosts: all
name: Configure all servers
tasks:
- name: Gather facts if run with tags
ansible.builtin.setup:
when: ansible_run_tags | length
- name: Gather facts if run with tags
ansible.builtin.setup:
when: ansible_run_tags | length
tags: always
- hosts: all
@ -15,16 +16,20 @@
- hosts: cloud
become: yes
roles:
roles:
- role: docker
tags: docker_install
- name: traefik
vars:
traefik_host: traefik01.comprofix.com
tags: traefik_install
tasks:
tasks:
# - name: Deploy Homepage
# import_tasks: tasks/homepage.yml
# tags: homepage_install
- name: Deploy Vaultwarden
import_tasks: tasks/vaultwarden.yml
tags: vaultwarden_install
@ -34,126 +39,94 @@
tags: gitea_install
tags: cloud_install
- hosts: docker
become: yes
pre_tasks:
- name: Connect iscsi
import_tasks: tasks/iscsi.yml
tags: iscsi_connect
roles:
- role: docker
tags: docker_install
- role: nfs
mounts:
- name: Data share
path: /mnt/nfs/data
src: truenas.comprofix.xyz:/mnt/datapool/data
tags: nfs_install
- role: traefik
vars:
traefik_host: traefik02.comprofix.xyz
tags: traefik_install
tasks:
- name: Deploy comprofix.com website
import_tasks: tasks/comprofix.com.yml
tags: comprofix_install
- name: Deploy iDrac Fan Controller
import_tasks: tasks/idrac.yml
tags: idrac_install
- name: Deploy MariaDB
import_tasks: tasks/mariadb.yml
tags: mariadb_install
- name: Deploy InvoiceNinja
import_tasks: tasks/invoiceninja.yml
tags: invoiceninja_install
# - hosts: docker
# become: yes
# roles:
# - role: docker
# tags: docker_install
# - role: nfs
# mounts:
# - name: Docker share
# path: /mnt/nfs/docker
# src: truenas.comprofix.xyz:/mnt/datapool/docker
# - name: Data share
# path: /mnt/nfs/data
# src: truenas.comprofix.xyz:/mnt/datapool/data
# tags: nfs_install
# - role: traefik
# vars:
# traefik_host: traefik02.comprofix.xyz
# data_folder: "/mnt/nfs/docker"
# tags: traefik_install
# tasks:
# - name: Deploy iDrac Fan Controller
# import_tasks: tasks/idrac.yml
# tags: idrac_install
# - name: Deploy MariaDB
# import_tasks: tasks/mariadb.yml
# tags: mariadb_install
# - name: Deploy InvoiceNinja
# import_tasks: tasks/invoiceninja.yml
# tags: invoiceninja_install
- name: Deploy Guacamole
import_tasks: tasks/guacamole.yml
tags: guacamole_install
# - name: Deploy osTicket
# import_tasks: tasks/osticket.yml
# tags: osticket_install
- name: Deploy Homepage
import_tasks: tasks/homepage.yml
tags: homepage_install
# - name: Deploy speedtest-tracker
# import_tasks: tasks/speedtest.yml
# tags: speedtest_install
# - name: Deploy osTicket
# import_tasks: tasks/osticket.yml
# tags: osticket_install
# - name: Deploy dozzle
# import_tasks: tasks/dozzle.yml
# tags: dozzle_install
# - name: Deploy jellyseerr
# import_tasks: tasks/jellyseerr.yml
# tags: jellyseerr_install
# - name: Deploy lidarr
# import_tasks: tasks/lidarr.yml
# tags: lidarr_install
# - name: Deploy prowlarr
# import_tasks: tasks/prowlarr.yml
# tags: prowlarr_install
# - name: Deploy radarr
# import_tasks: tasks/radarr.yml
# tags: radarr_install
- name: Deploy speedtest-tracker
import_tasks: tasks/speedtest.yml
tags: speedtest_install
# - name: Deploy readarr
# import_tasks: tasks/readarr.yml
# tags: readarr_install
# - name: Deploy sonarr
# import_tasks: tasks/sonarr.yml
# tags: sonarr_install
- name: Deploy dozzle
import_tasks: tasks/dozzle.yml
tags: dozzle_install
# - name: Deploy sabnzbd
# import_tasks: tasks/sabnzbd.yml
# tags: sabnzbd_install
- name: Deploy jellyseerr
import_tasks: tasks/jellyseerr.yml
tags: jellyseerr_install
# - name: Deploy mealie
# import_tasks: tasks/mealie.yml
# tags: mealie_install
# - name: Deploy pyKMS
# import_tasks: tasks/pykms.yml
# tags: pykms_install
# tags: dockerserver_install
- name: Deploy lidarr
import_tasks: tasks/lidarr.yml
tags: lidarr_install
- name: Deploy prowlarr
import_tasks: tasks/prowlarr.yml
tags: prowlarr_install
- name: Deploy radarr
import_tasks: tasks/radarr.yml
tags: radarr_install
- name: Deploy readarr
import_tasks: tasks/readarr.yml
tags: readarr_install
- name: Deploy sonarr
import_tasks: tasks/sonarr.yml
tags: sonarr_install
- name: Deploy sabnzbd
import_tasks: tasks/sabnzbd.yml
tags: sabnzbd_install
- name: Deploy mealie
import_tasks: tasks/mealie.yml
tags: mealie_install
- name: Deploy pyKMS
import_tasks: tasks/pykms.yml
tags: pykms_install
- name: Deploy gitea-runner-homelab
import_tasks: tasks/gitea-runner-homelab.yml
tags: gitea-runner-homelab_install
tags: dockerserver_install
- hosts: omada
become: yes
pre_tasks:
- name: Update packages
import_tasks: tasks/base.yml
tags: base_install
roles:
- role: docker
tags: docker_install
- role: nfs
mounts:
- name: Data share
path: /data
src: truenas.comprofix.xyz:/mnt/datapool/docker
tags: nfs_install
tasks:
- name: Deploy Dozzle Agent
import_tasks: tasks/dozzle-agent.yml
tags: dozzle-agent_install
- name: Deploy Omada
import_tasks: tasks/omada.yml
tags: omada_install
tags: omada_lxc_install

View File

@ -1,25 +1,8 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended",
"renovatebot/renovate-config",
":semanticCommitTypeAll(chore)"
],
"ignoreDeps": [
"postgres"
],
"automerge": true,
"automergeType": "branch",
"automergeStrategy": "rebase",
"commitBodyTable": true,
"ignoreTests": true,
"major": {
"automerge": false,
"dependencyDashboardApproval": true,
"commitMessagePrefix": "chore(deps-major): ",
"labels": [
"dependencies",
"breaking"
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base",
"renovatebot/renovate-config",
":semanticCommitTypeAll(chore)"
]
}
}
}

View File

@ -43,7 +43,6 @@
- name: Setup cron job for backup
cron:
name: Docker Prune
weekday: 0
minute: 0
hour: 5
job: "docker system prune -af && docker image prune -af && docker system prune -af --volumes"

View File

@ -1,51 +1,51 @@
$ANSIBLE_VAULT;1.1;AES256
30353665336262626664323063343065646461316535613635646633653366653637363634636663
6334616439316438303235613033646663316166316163390a303038313162376636333833373437
37336665636437666463363935303162623366666636373732636137383234636136396630366564
3438613335386432370a353762353637396230396364363632616661313337613431373337653934
66386561613131313337313765386238323434373264636139393637333638346263613662366462
31366639316666343563363564346536653131626532303765613064346666313364663466363038
31613034353839613732646234383462346235393862333735643431303963663232316561643462
66386561663135346130383564646462316532626534333366653565623836393361393765386234
33366532666164653339663439356161386131373662386232383338646566323631363036323130
61623339386437653235343935333739653739376232613533663635313765613366376339323232
37376465336330316431653763363330633831313836623130663936323139333139366562326430
38383232613336313135643836653638356261623161363266373465313934333339653763323836
37313632636366653664366539333232616166366233653537323761386264353035666636633237
65626432633937633034333838356637643764333165643932333465393538663335623662613435
62656465623966326130363364343164303239393038353937356663303130303230626365333662
66623531353237633432316161316565363935343735303530316662336232363636333266383332
35333533376134393339626335383336643535623161376233646264663133623634636336616462
31656236633364303464366539613037616130356637643939366561656534386663303339316134
33643463303562363231383965653633623464396365363531333630333037333337396534376332
39666536343636323834613565653234346230666361376232313135376463363934353365643061
64613030663430633131363264303134353863336566643937306661393732666566643734373832
38356465313339396530386430343863313330633566663839316564643437386464353138373266
64373664636538653439333439303332346535383734653563616266323062306463303338366364
34643161303532373530363338626334383662346562386266373138643736316332363039666361
37656231326232383763363031643762393565616466326566356431613866646462643837313361
65396563366339366461323833393134393236643664363831326465613931353762333261393033
65633435643564343065323262613666646139366661343139313436316134616364366662613362
39323337626265393061636662656334623133666636613663393131376632616637653761396430
31396366386636626465326137326461636136643330613935623966653630313236626436356432
38653362653831646266613734326132356139323665343366386362356435356137353162366661
31396564393763393936646464666537626231353639366262613539623031393830333338356332
63643866653365306532653464343465336565633734306139623862613063613030303234383733
37343135643362306365613361363764643137643265666463666234643163623238303734373264
35346562663331323034326465316666366232663734663537343936333332346337373062346534
66363530323863636238303138383632316166386234653062313434633534303637666636353863
38373466323431363037366538666238353231653138336133636232353530386630373930313334
37633232393238373733363831383962633134633064613333386365346463326339613634636131
33373662643162653762633338343332366461363465393934643337666466623835383238383133
34626663393463383463623636323134376431666237366566636238316636623635393262336436
62643839356364333239356161303838653164306161366234663339313430613635613233366265
65393131326236663336306364333137333632323364313264376332613861656263383361373561
61653831663332383135653566376337653132643062383965396634393538333963636433343061
37613334643465363934306461376339363634306166363138323836626334393739633439363132
32336662343963613531663733353430373932366634303239363937303932396533316233636663
62373435343839633630376362666132613632393064323836323736383335386533306532656536
34353165383861633063343565313733323263333262636262343264663061633863646362633036
34333238386430613334653037346639303630633138643336616164356537313832633634356661
62643738366263326539346139393032356533373735636263623838663435306264616537373266
64626536626232393236393465653063343964666138616164323733363263633233346262326538
3961613338643931323365636262313962316261323938306633
36326633353666613166393030633363373435666230663138303735323132663930663663383138
3131616265626633663430353835663866356436373533390a623564333539306162613532393661
61326437363033383862343034356639316162363364356135616132396136383962333062653566
3966323033663162640a323461656637633062373134656237323339346638663338353266386164
30653839343165663937653534313335316336356262303331643839643733663264643265633337
62633265656330353536663762643130636466353165336535393033663937396364373064363133
66323931663164313235316638393838326532643233636663333635656162343333643233646131
33336239393035613839646434643633313239393764613836343039383361613437626334643534
33373461336363636162646631323266353235326361393338366563653663343537633765653261
30393863323134376466346663376432623938376638393135356439326562656534376233646364
31353336396362323363323964383635303264646661626662333161303961383333636437393264
61623638303066343832303034633736343031333732633437356134393837663637653738303837
65643264663564643432363830373861323062393561386261323638353339663835663830653633
35373865383832656665333263323463303631343239346632336565393032333865353364386431
34633064356233626337646439623665613039666632366162346534656438393965623836366230
38323765633333663266656161376233343131646165343538653335653061363435316536313339
65366539313338623030663233633766373865653938616437323664633537306162353438373564
30383831353563663834373731356330393535613162313461303265353461643434613833376330
39653063363666353261373161636434366464306539306538623533373764666466383766646166
63313263626539316163656431393534393266666632366430323439373931636235663137393363
66323338643835356338646565653235333762343162636434653561626630333233343232633365
64353139376236363039343432636563316562383263336434376236613734396564393137366531
35613232646638313435326234366335356538393331363862353232353961373734646332646635
37323930623932326164323831393462653331373562336264613635396339653161303863623739
34303532376335623533373466366464666662653533363963326536633938333833376432616330
62326261366463323934663939316338306535323935623935323337333866353539336132326564
64623739623064333932386363353235356431656339663039643631353264376234316430356235
33326233356638646163633333613736343732626263333631336333343434353164333436653331
64376539336562393538613134633933373339363737363364623066383130653033633966316665
36323361656131623435346565323638313030343762313765646264396461616165393762366436
65363563313439376437626533386262323036346436663030303736363061396639633338386337
65623534393561643662653538633630363663326430383030393062323934326465313533303662
30323861613333353465396536653632373934363162393465373466636132383064663063383834
66653938346463663335333737386339666430643034386335353938633232323333633238643035
37643239383936393233353735333164663566663833383763306635646666666365336161316437
64343032376139373036366433376263376565656435336662656661336530323130356266353265
32316361623238386530303533343763646533653631613965386639386237303965636634353366
31363137376633376532383361376631663734653262616237373933363330323337386434623261
63656364653162323463626361633533353132666563393538383332306263316639396530323131
63646566623064393930343137623564323234383430363365313834336464333432623466646139
33343833353339633236613439623735316538373962663365623963663639663264396238363465
61313338343435313035643163316631303433383738393162633032613830663264386538343763
30363434653461396239306334333366333232373732353362666538323063313934346433666334
35363236333038333363653737656362653362376338653364636566346637376566306632326438
32663930613066343361616665396334393863643963316239313735363539333263656133356665
62663236366665373637373436656630336630393333393164343265306533666366333964333338
36376337376366333835326565323735613961323264663466356635653763343331373561666632
61343466643661636335373663386466333232393064623538666636653439363639386462373238
38613862656363373434353037613135363464313864386361323136613762306632653838616463
3438636539363664613934313333336535623165306438353130

View File

@ -0,0 +1,2 @@
---
# defaults file for common

View File

@ -0,0 +1,52 @@
galaxy_info:
author: Matthew McKinnon
description: Portainer CE
company: support@comprofix.com
# If the issue tracker for your role is not on github, uncomment the
# next line and provide a value
# issue_tracker_url: http://example.com/issue/tracker
# Choose a valid license ID from https://spdx.org - some suggested licenses:
# - BSD-3-Clause (default)
# - MIT
# - GPL-2.0-or-later
# - GPL-3.0-only
# - Apache-2.0
# - CC-BY-4.0
license: license (GPL-2.0-or-later, MIT, etc)
min_ansible_version: 2.1
# If this a Container Enabled role, provide the minimum Ansible Container version.
# min_ansible_container_version:
#
# Provide a list of supported platforms, and for each platform a list of versions.
# If you don't wish to enumerate all versions for a particular platform, use 'all'.
# To view available platforms and versions (or releases), visit:
# https://galaxy.ansible.com/api/v1/platforms/
#
# platforms:
# - name: Fedora
# versions:
# - all
# - 25
# - name: SomePlatform
# versions:
# - all
# - 1.0
# - 7
# - 99.99
galaxy_tags: []
# List tags for your role here, one per line. A tag is a keyword that describes
# and categorizes the role. Users find roles by searching for tags. Be sure to
# remove the '[]' above, if you add tags to this list.
#
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
# Maximum 20 tags per role.
dependencies: []
# List your role dependencies here, one per line. Be sure to remove the '[]' above,
# if you add dependencies to this list.

View File

@ -0,0 +1,29 @@
---
- name: Create directories
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/portainer"
- name: Create Portainer Container
docker_container:
name: portainer
image: portainer/portainer-ce:2.21.0
command: --admin-password "{{PORTAINER_ADMIN_PASSWORD}}"
restart_policy: unless-stopped
volumes:
- "{{ data_folder }}/portainer/data:/data"
- '/var/run/docker.sock:/var/run/docker.sock'
networks:
- name: proxy
labels:
traefik.enable: "true"
traefik.http.routers.portainer-secure.rule: "Host(`{{portainer_host}}`)"
traefik.http.routers.portainer-secure.entrypoints: "https"
traefik.http.routers.portainer-secure.tls: "true"
traefik.http.routers.portainer-secure.service: "portainer"
traefik.http.services.portainer.loadbalancer.server.port: "9443"
traefik.http.services.portainer.loadbalancer.server.scheme: "https"
register: container_portainer

View File

@ -0,0 +1,14 @@
$ANSIBLE_VAULT;1.1;AES256
66663364383263343838636561393437373730633165306539633566356166313664656166633537
6333663336336463613565666465663430303665323766300a393063366230643139363061633636
65303631383230396461303836386335306261613664393762393266636437333634663464353137
6563366664663331380a346534323264633738663063356565643137323964663964656137633363
33333264383830666637376337633432353732353630333134353638653234333730636166356164
33363433343432623762393834336637626562613633393963323963623661643862636362313930
37346233373231663762346633323634666436323364653136656630636462333638316632626435
30336433353961333334386134383032356633643261656639623237386439653739363133633836
65333065336464386164363037363766353066396163386561323338326439376138316131306636
65376230383666393762393938313535386131313134613033393936633139363366373065623033
33353733613439383366393864623130396231323433393732653966653132313262346538646334
63303831333465613962653661656237326364396465366234383663333431366233363133623936
62663632356361323930326230326565366366663733633137633938643564373766

View File

@ -16,14 +16,7 @@
template:
src: templates/traefik.yml.j2
dest: "{{ data_folder }}/traefik/data/traefik.yml"
mode: "0600"
- name: Copy Traefik config
template:
src: templates/config.yml.j2
dest: "{{ data_folder }}/traefik/data/config.yml"
mode: "0600"
when: traefik_host == "traefik02.comprofix.xyz"
mode: '0600'
- name: Check if {{ data_folder }}/traefik/data/acme.json exists
ansible.builtin.stat:
@ -36,7 +29,7 @@
state: touch
owner: root
group: root
mode: "0600"
mode: '0600'
when: not file_status.stat.exists
- name: Check if {{ data_folder }}/traefik/data/traefik.json.log exists
@ -50,13 +43,13 @@
state: touch
owner: root
group: root
mode: "0600"
mode: '0600'
when: not file_status.stat.exists
- name: Create traefik Container
docker_container:
name: traefik
image: traefik:v3.3
image: traefik:v3.1
restart_policy: unless-stopped
networks:
- name: "proxy"
@ -72,7 +65,7 @@
- "{{ data_folder }}/traefik/data/traefik.yml:/traefik.yml:ro"
- "{{ data_folder }}/traefik/data/acme.json:/acme.json"
- "{{ data_folder }}/traefik/data/traefik.json.log:/traefik.json.log"
- "{{ data_folder }}/traefik/data/config.yml:/config.yml:ro"
# - ./data/config.yml:/config.yml:ro
labels:
traefik.enable: "true"
traefik.http.routers.traefik.entrypoints: "http"
@ -90,4 +83,4 @@
traefik.http.routers.traefik-secure.tls.domains[0].sans: "*.comprofix.com"
traefik.http.routers.traefik-secure.tls.domains[1].main: "comprofix.xyz"
traefik.http.routers.traefik-secure.tls.domains[1].sans: "*.comprofix.xyz"
traefik.http.routers.traefik-secure.service: "api@internal"
traefik.http.routers.traefik-secure.service: "api@internal"

View File

@ -1,51 +0,0 @@
---
http:
routers:
oc-router:
entryPoints:
- "https"
service: oc-service
rule: "Host(`omada.comprofix.xyz`)" # change it to actual address
tls: {}
middlewares:
- default-headers
- https-redirect
services:
oc-service:
loadBalancer:
servers:
- url: https://omada-lxc.comprofix.xyz:8043 # change it to actual ip of the controller
middlewares:
https-redirect:
redirectScheme:
scheme: https
permanent: true
default-headers:
headers:
frameDeny: true
sslRedirect: true
browserXssFilter: true
contentTypeNosniff: true
forceSTSHeader: true
stsIncludeSubdomains: true
stsPreload: true
stsSeconds: 15552000
customFrameOptionsValue: SAMEORIGIN
customRequestHeaders:
X-Forwarded-Proto: https
default-whitelist:
IPAllowList:
sourceRange:
- "10.0.0.0/8"
- "192.168.0.0/16"
- "172.16.0.0/12"
- "100.64.0.0/10"
secured:
chain:
middlewares:
- default-headers

View File

@ -1,14 +1,14 @@
$ANSIBLE_VAULT;1.1;AES256
34363735643132373933616264396162333165313535636239613431353265363635623766353732
3462383931646233383431373265636235303262623136640a626662386133653263376164393935
62373365363439323965626665366463323463346533643632633031383936646338663632383934
6233313931303834330a666530346639306137666638333439333038616335383239613738666265
31666638363638646135313634356665353132666562363062346364346331656130393230626331
34373236633238376531376133353531303563623533656331356631646131646634336337366238
36646637326262323636623935346531616163626230333631376439646238626533363630633832
39323137326365623431313338636233616330616139613934333262373664366664303764306261
63623365623632623762663365646162663331303362633231313931363730653130353837646339
32666438373165313233333235366233353536636232353138626632653234383831353939346230
34646463393030633735376636373737346132333730633463386531633263663935363966393066
32333365373331376161633062336565656536636566626330623137636561626263363438323765
3231
65353236643865303034613264613133353338613962646164333936353761336231643332303164
3834613038663965376661373336646433353437373132300a353663633034643265653937396238
66326632323432646239663762626230326338666138653330323566633864623734396639323062
3735326666306239370a383439646335343965316464386265613437646163636335393139316232
61396631356263333933626334313438633132663764326539393663636631303538636131303830
31633037376231326436306463376134633031666431303133383237316530646261383733313132
62343261303266613764633861393939343937343038383231353137333337383936623338313561
64633330356639643863336437653137393364653833653934633762333461393035393963313432
39633563636164363461326231306237343265626533366562626136643561636464663866303434
64363663396334623738316238316135616162393566613631396163666134663765343230656135
35646364666531303361623833643136663832363737623161386562393234393533306636363265
37343438386439303931633434303939393062363138353732373163663761366337326437316537
6137

30
scripts/backupvpsdocker Normal file
View File

@ -0,0 +1,30 @@
#!/bin/bash
#
#
# Backup vps02 docker data
#Stop all containers
docker stop $(docker ps -a -q)
date=$(date +%F)
cd /data
for dir in */; do
dir=${dir%*/}
backupfile="$dir-$date.tar.gz"
#echo "backup $dir"
tar -zcf /tmp/$backupfile $dir
if [ $dir == "vaultwarden" ]; then
#echo "rclone vaultwarden"
rclone copy /tmp/$backupfile BitwardenBackup:BitwardenBackup
else
#echo "scp $backupfile"
#scp /tmp/$backupfile mmckinnon@truenas.comprofix.xyz:/mnt/datapool/data/backup/docker/
fi
rm /tmp/$backupfile
done
#Start all containers
docker start $(docker ps -a -q)

View File

@ -1,2 +0,0 @@
#!/bin/bash
curl -H "Content-Type: application/json" -d '{"text": "Cloud-init provisioning has been completed on '"$(hostname)"'!"}' "{{ TEAMS }}"

View File

@ -1,14 +0,0 @@
- name: Create the comprofix.com container
docker_container:
name: comprofix.com
image: git.comprofix.com/mmckinnon/comprofix.com:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: proxy
labels:
traefik.enable: "true"
traefik.http.routers.comprofix.rule: "Host(`comprofix.com`)"
traefik.http.routers.comprofix.entrypoints: "https"
traefik.http.routers.comprofix.tls: "true"
traefik.http.services.comprofix.loadbalancer.server.port: "80"

View File

@ -1,12 +0,0 @@
---
- name: Create the dozzle container
docker_container:
name: dozzle_agent
image: amir20/dozzle:v8.10.4
restart_policy: unless-stopped
command: agent
recreate: true
ports:
- 7007:7007
volumes:
- /var/run/docker.sock:/var/run/docker.sock

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/dozzle"
- "{{ data_folder }}/dozzle/config"
- "/mnt/nfs/docker/dozzle"
- "/mnt/nfs/docker/dozzle/config"
- name: Create the dozzle container
docker_container:
name: dozzle
image: amir20/dozzle:v8.10.4
image: amir20/dozzle:v8.4.3
restart_policy: unless-stopped
recreate: true
networks:
@ -19,11 +19,11 @@
- /var/run/docker.sock:/var/run/docker.sock
env:
DOZZLE_LEVEL: "trace"
DOZZLE_REMOTE_AGENT: "omada-lxc.comprofix.xyz:7007"
DOZZLE_REMOTE_HOST: "tcp://omada.comprofix.xyz:2375,tcp://vps02.comprofix.com:2375"
labels:
traefik.enable: "true"
traefik.http.routers.dozzle.rule: "Host(`dozzle.comprofix.xyz`)"
traefik.http.routers.dozzle.entrypoints: "https"
traefik.http.routers.dozzle.tls: "true"
traefik.http.services.dozzle.loadbalancer.server.port: "8080"
traefik.http.services.dozzle.loadbalancer.server.scheme: "http"
traefik.http.services.dozzle.loadbalancer.server.scheme: "http"

View File

@ -1,42 +0,0 @@
- name: Create directories
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/gitea-runner"
- "{{ data_folder }}/gitea-runner/config"
- name: Check that config.yaml exists
stat:
path: "{{ data_folder }}/gitea-runner/config/config.yaml"
register: configyaml
- name: Create config.yaml file
file:
path: "{{ data_folder }}/gitea-runner/config/config.yaml"
state: touch
mode: '0600'
access_time: preserve
modification_time: preserve
when: configyaml.stat.exists == False
- name: Create the gitea-runner container
docker_container:
name: gitea-runner
image: gitea/act_runner:0.2.11
restart_policy: unless-stopped
recreate: true
# dns_servers:
# - 10.10.10.1
# - 127.0.0.11
volumes:
- "/etc/resolv.conf:/etc/resolv.conf:ro"
- /var/run/docker.sock:/var/run/docker.sock
- "{{ data_folder }}/gitea-runner/config/config.yaml:/config.yaml"
- "/etc/hosts:/etc/hosts:ro"
env:
CONFIG_FILE: "/config.yaml"
GITEA_INSTANCE_URL: "https://git.comprofix.com"
GITEA_RUNNER_REGISTRATION_TOKEN: "{{ GITEA_RUNNER_TOKEN }}"
GITEA_RUNNER_NAME: "homelab-runner"
GITEA_RUNNER_LABELS: "homelab:docker://alpine:latest,alpine-latest:docker://alpine:latest,ubuntu-latest:docker://node:22-bookworm"

View File

@ -26,7 +26,7 @@
- name: Create the Gitea container
docker_container:
name: gitea
image: gitea/gitea:1.23
image: gitea/gitea:1.22
restart_policy: unless-stopped
recreate: true
# dns_servers:
@ -78,7 +78,7 @@
- name: Create the gitea-runner container
docker_container:
name: gitea-runner
image: gitea/act_runner:0.2.11
image: gitea/act_runner:0.2.10
restart_policy: unless-stopped
recreate: true
# dns_servers:
@ -92,9 +92,9 @@
env:
CONFIG_FILE: "/config.yaml"
GITEA_INSTANCE_URL: "https://git.comprofix.com"
GITEA_RUNNER_REGISTRATION_TOKEN: "{{ GITEA_RUNNER_TOKEN }}"
GITEA_RUNNER_REGISTRATION_TOKEN: "A01dvleL55F0o5OMJpa4UsE0gJ38ANKrAw5vKei3" #"{{ GITEA_RUNNER_TOKEN }}"
GITEA_RUNNER_NAME: "gitea-runner"
GITEA_RUNNER_LABELS: "alpine-latest:docker://alpine:latest,ubuntu-latest:docker://node:22-bookworm"
GITEA_RUNNER_LABELS: "alpine-latest:docker://alpine:latest,ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,ubuntu-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster"
- name: Create directories
file:
@ -106,7 +106,7 @@
- name: Create the opengist container
docker_container:
name: opengist
image: ghcr.io/thomiceli/opengist:1.8
image: ghcr.io/thomiceli/opengist:1.7
restart_policy: unless-stopped
recreate: true
networks:

View File

@ -1,36 +0,0 @@
---
- name: Create the guacd container
docker_container:
name: guacd
image: guacamole/guacd:1.5.5
restart_policy: unless-stopped
recreate: true
networks:
- name: proxy
- name: Create the guacamole container
docker_container:
name: guacamole
image: guacamole/guacamole:1.5.5
restart_policy: unless-stopped
recreate: true
networks:
- name: proxy
env:
MYSQL_DATABASE: "{{ GUAC_DB }}"
MYSQL_HOSTNAME: "{{ MYSQL_HOST }}"
MYSQL_USER: "{{ GUAC_USER }}"
MYSQL_PASSWORD: "{{ GUAC_DB_PASS }}"
GUACD_HOSTNAME: guacd
labels:
traefik.enable: "true"
traefik.http.routers.guacamole.rule: "Host(`remote.comprofix.xyz`)"
traefik.http.routers.guacamole.entrypoints: "https"
traefik.http.routers.guacamole.tls: "true"
traefik.http.services.guacamole.loadbalancer.server.port: "8080"
traefik.http.services.guacamole.loadbalancer.server.scheme: "http"

View File

@ -16,7 +16,7 @@
- name: Create the homepage container
docker_container:
name: homepage
image: ghcr.io/gethomepage/homepage:v0.10.9
image: ghcr.io/gethomepage/homepage:v0.9.6
restart_policy: unless-stopped
recreate: true
networks:

View File

@ -2,14 +2,14 @@
- name: Create the Dell_R730xd Fan Contoller container
docker_container:
name: Dell_R730xd
image: ghcr.io/tigerblue77/dell_idrac_fan_controller:latest@sha256:ac6ef2e7fc0052219d7041496bd895d046897a1622538ca721462282902198e8
image: tigerblue77/dell_idrac_fan_controller:latest@sha256:5184af88c6c03204611d40d4b1c6bc36202762592d16a97236bb4254951d23b0
restart_policy: unless-stopped
recreate: true
env:
IDRAC_HOST: "10.10.10.138"
IDRAC_USERNAME: "root"
IDRAC_PASSWORD: "calvin"
FAN_SPEED: "50"
FAN_SPEED: "35"
CPU_TEMPERATURE_THRESHOLD: "80"
CHECK_INTERVAL: "60"
DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE: "true"
DISABLE_THIRD_PARTY_PCIE_CARD_DELL_DEFAULT_COOLING_RESPONSE: "true"

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/invoiceninja/"
- "{{ data_folder }}/invoiceninja/config"
- "{{ data_folder }}/invoiceninja/db"
- "/mnt/nfs/docker/invoiceninja/"
- "/mnt/nfs/docker/invoiceninja/config"
- "/mnt/nfs/docker/invoiceninja/db"
- name: "create stack.env"
copy:
dest: "{{ data_folder }}/invoiceninja/stack.env"
dest: "/mnt/nfs/docker/invoiceninja/stack.env"
content: |
APP_NAME="Invoice Ninja"
APP_ENV=production
@ -60,29 +60,29 @@
docker_container:
name: invoiceninja-app
image: invoiceninja/invoiceninja:5
env_file: "{{ data_folder }}/invoiceninja/stack.env"
env_file: /mnt/nfs/docker/invoiceninja/stack.env
restart_policy: unless-stopped
recreate: true
networks:
- name: proxy
volumes:
- "{{ data_folder }}/invoiceninja/config/hosts:/etc/hosts"
- "{{ data_folder }}/invoiceninja/docker/app/public:/var/www/app/public"
- "{{ data_folder }}/invoiceninja/docker/app/storage:/var/www/app/storage"
- /mnt/nfs/docker/invoiceninja/config/hosts:/etc/hosts
- /mnt/nfs/docker/invoiceninja/docker/app/public:/var/www/app/public
- /mnt/nfs/docker/invoiceninja/docker/app/storage:/var/www/app/storage
- name: Create the invoiceninja-nginx container
docker_container:
name: invoiceninja-nginx
image: nginx:1.27.3
env_file: "{{ data_folder }}/invoiceninja/stack.env"
image: nginx:1.27.1
env_file: /mnt/nfs/docker/invoiceninja/stack.env
restart_policy: unless-stopped
recreate: true
networks:
- name: proxy
volumes:
- "{{ data_folder }}/invoiceninja/config/nginx/in-vhost.conf:/etc/nginx/conf.d/in-vhost.conf"
- "{{ data_folder }}/invoiceninja/docker/app/public:/var/www/app/public"
- "{{ data_folder }}/invoiceninja/docker/app/storage:/var/www/app/storage"
- /mnt/nfs/docker/invoiceninja/config/nginx/in-vhost.conf:/etc/nginx/conf.d/in-vhost.conf
- /mnt/nfs/docker/invoiceninja/docker/app/public:/var/www/app/public
- /mnt/nfs/docker/invoiceninja/docker/app/storage:/var/www/app/storage
labels:
traefik.enable: "true"
traefik.http.routers.invoiceninja.rule: "Host(`invoice.comprofix.com`)"

View File

@ -1,88 +0,0 @@
---
- name: Ensure open-iscsi is installed
package:
name: open-iscsi
state: present
- name: Ensure parted is installed
package:
name: parted
state: present
- name: Discover iSCSI targets
command: sudo iscsiadm -m discovery -t sendtargets -p "10.10.10.2"
register: iscsi_discovery
- name: Set target_iqn variable based on discovery
set_fact:
target_iqn: "{{ item.split(' ')[1] }}"
loop: "{{ iscsi_discovery.stdout_lines }}"
when: item.startswith("10.10.10.2")
- name: Check if iSCSI target is already connected
command: iscsiadm -m session
register: iscsi_sessions
changed_when: false
failed_when: iscsi_sessions.rc not in [0, 21] # Allow success if the return code is 0 or 21
- name: Connect to iSCSI target
command: sudo iscsiadm -m node -T "{{ target_iqn }}" -p "10.10.10.2" --login
when: target_iqn is defined and target_iqn not in iscsi_sessions.stdout
- name: Set iSCSI target for automatic login
command: sudo iscsiadm -m node -T "{{ target_iqn }}" -p "10.10.10.2" --op update --name node.startup --value automatic
when: target_iqn is defined
- name: Fail if no target_iqn found
fail:
msg: "No target IQN found for iSCSI server IP 10.10.10.2"
when: target_iqn is not defined
- name: List all block devices
command: lsblk -o NAME,SIZE,TYPE,MODEL
register: lsblk_output
- name: Set iSCSI device variable
set_fact:
iscsi_device: "/dev/{{ item.split()[0] }}"
loop: "{{ lsblk_output.stdout_lines }}"
when: item.split()[2] == 'disk' and 'iSCSI' in item # Adjust based on the MODEL you observe
- name: Fail if no iSCSI device found
fail:
msg: "No iSCSI device found!"
when: iscsi_device is not defined
- name: Create a partition on iSCSI device using parted
parted:
device: "{{ iscsi_device }}"
number: 1
state: present
part_type: primary
fs_type: ext4
part_start: 0% # Start at the beginning of the device
part_end: 100% # Use the entire available space
- name: Create filesystem on new partition
filesystem:
fstype: ext4
dev: "{{ iscsi_device }}1" # Format the partition
- name: Create mount point
file:
path: /data
state: directory
- name: Mount iSCSI target
mount:
path: /data
src: "{{ iscsi_device }}1" # Mount the new partition
fstype: ext4
opts: defaults,_netdev
state: mounted
# - name: Ensure iSCSI target is mounted at boot
# lineinfile:
# path: /etc/fstab
# line: "{{ iscsi_device }}1 /data ext4 _netdev 0 0"
# state: present

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/jellyseerr"
- "{{ data_folder }}/jellyseerr/config"
- "/mnt/nfs/docker/jellyseerr"
- "/mnt/nfs/docker/jellyseerr/config"
- name: Create the jellyseerr container
docker_container:
name: jellyseerr
image: fallenbagel/jellyseerr:2.3.0
image: fallenbagel/jellyseerr:1.9.2
restart_policy: unless-stopped
recreate: true
networks:
@ -20,7 +20,7 @@
PGID: "1000"
TZ: "Australia/Brisbane"
volumes:
- "{{ data_folder }}/jellyseerr/config:/app/config"
- /mnt/nfs/docker/jellyseerr/config:/app/config
labels:
traefik.enable: "true"
traefik.http.routers.jellyseerr.rule: "Host(`jellyseerr.comprofix.xyz`)"

View File

@ -8,13 +8,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/lidarr"
- "{{ data_folder }}/lidarr/config"
- "/mnt/nfs/docker/lidarr"
- "/mnt/nfs/docker/lidarr/config"
- name: Create the lidarr container
docker_container:
name: lidarr
image: ghcr.io/linuxserver/lidarr:latest@sha256:24a9bff8d50bf818d564198da43361d0576dfca8e51269b7ad3b922bd0f8da2f
image: ghcr.io/linuxserver/lidarr:latest@sha256:a77af413426b8509fad2d02f5b89104a5766ee6ebb13497d73993e74f6cfa0a8
restart_policy: unless-stopped
recreate: true
networks:
@ -26,7 +26,7 @@
AUTO_UPDATE: "true" #optional
DOCKER_MODS: "ghcr.io/themepark-dev/theme.park:lidarr"
volumes:
- "{{ data_folder }}/lidarr/config:/config"
- /mnt/nfs/docker/lidarr/config:/config
- /mnt/nfs/data:/data
labels:
traefik.enable: "true"

View File

@ -8,13 +8,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/mariadb"
- "{{ data_folder }}/mariadb/config"
- "/mnt/nfs/docker/mariadb"
- "/mnt/nfs/docker/mariadb/config"
- name: Create the mariadb container
docker_container:
name: "mariadb"
image: ghcr.io/linuxserver/mariadb:10.11.10
image: ghcr.io/linuxserver/mariadb:10.11.8
restart_policy: unless-stopped
recreate: true
ports:
@ -25,5 +25,5 @@
MYSQL_ROOT_PASSWORD: "{{MYSQL_ROOT_PASSWORD}}"
TZ: "Australia/Brisbane"
volumes:
- "{{ data_folder }}/mariadb/config:/config"
- "/mnt/nfs/docker/mariadb/config:/config"

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/mealie"
- "{{ data_folder }}/mealie/config"
- "/mnt/nfs/docker/mealie"
- "/mnt/nfs/docker/mealie/config"
- name: Create the mealie container
docker_container:
name: mealie
image: ghcr.io/mealie-recipes/mealie:v2.4.2
image: ghcr.io/mealie-recipes/mealie:v1.12.0
restart_policy: unless-stopped
networks:
- name: proxy
@ -27,7 +27,7 @@
BASE_URL: "mealie.comprofix.xyz"
SMTP_HOST: "{{MAIL_HOST}}"
volumes:
- "{{ data_folder }}/mealie/data/:/app/data"
- /mnt/nfs/docker/mealie/data/:/app/data
labels:
traefik.enable: "true"
traefik.http.routers.mealie.rule: "Host(`mealie.comprofix.xyz`)"

View File

@ -1,24 +0,0 @@
---
- name: Create directories
file:
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/omada"
- "{{ data_folder }}/omada/data"
- "{{ data_folder }}/omada/logs"
- name: Create the omada container
docker_container:
name: omada
image: mbentley/omada-controller:5.15
restart_policy: unless-stopped
recreate: true
network_mode: host
volumes:
- "{{ data_folder }}/omada/data:/opt/tplink/EAPController/data"
- "{{ data_folder }}/omada/logs:/opt/tplink/EAPController/logs"
env:
PUID: "1000"
PGID: "1000"
TZ: "Australia/Brisbane"

View File

@ -4,8 +4,8 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/osticket"
- "{{ data_folder }}/osticket/config"
- "/mnt/nfs/docker/osticket"
- "/mnt/nfs/docker/osticket/config"
- name: Create the osticket container
docker_container:

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/prowlarr"
- "{{ data_folder }}/prowlarr/config"
- "/mnt/nfs/docker/prowlarr"
- "/mnt/nfs/docker/prowlarr/config"
- name: Create the prowlarr container
docker_container:
name: prowlarr
image: linuxserver/prowlarr:1.29.2
image: linuxserver/prowlarr:1.23.1
restart_policy: unless-stopped
recreate: true
networks:
@ -22,7 +22,7 @@
AUTO_UPDATE: "true" #optional
DOCKER_MODS: "ghcr.io/themepark-dev/theme.park:prowlarr"
volumes:
- "{{ data_folder }}/prowlarr/config:/config"
- /mnt/nfs/docker/prowlarr/config:/config
labels:
traefik.enable: "true"
traefik.http.routers.prowlarr.rule: "Host(`prowlarr.comprofix.xyz`)"

View File

@ -4,8 +4,8 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/pykms"
- "{{ data_folder }}/pykms/db"
- "/mnt/nfs/docker/pykms"
- "/mnt/nfs/docker/pykms/config"
- name: Create the pykms container
docker_container:
@ -13,6 +13,8 @@
image: ghcr.io/py-kms-organization/py-kms:latest
restart_policy: unless-stopped
recreate: true
networks:
- name: proxy_network
ports:
- "1688:1688"
env:
@ -21,6 +23,6 @@
HWID: "RANDOM"
LOGLEVEL: "INFO"
volumes:
- "{{ data_folder }}/pykms/db:/home/py-kms/db"
- /mnt/nfs/docker/pykms/db:/home/py-kms/db
- /etc/localtime:/etc/localtime:ro

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/radarr"
- "{{ data_folder }}/radarr/config"
- "/mnt/nfs/docker/radarr"
- "/mnt/nfs/docker/radarr/config"
- name: Create the radarr container
docker_container:
name: radarr
image: linuxserver/radarr:5.17.2
image: linuxserver/radarr:5.9.1
restart_policy: unless-stopped
recreate: true
networks:
@ -21,7 +21,7 @@
TZ: "Australia/Brisbane"
DOCKER_MODS: "ghcr.io/themepark-dev/theme.park:radarr"
volumes:
- "{{ data_folder }}/radarr/config:/config"
- /mnt/nfs/docker/radarr/config:/config
- /mnt/nfs/data:/data
labels:
traefik.enable: "true"

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/readarr"
- "{{ data_folder }}/readarr/config"
- "/mnt/nfs/docker/readarr"
- "/mnt/nfs/docker/readarr/config"
- name: Create the readarr container
docker_container:
name: readarr
image: ghcr.io/linuxserver/readarr:develop@sha256:0ee742f72f9f2731a3fde321cf5f0c1b3ab1087c45e73f4ceec39d9457a706dc
image: ghcr.io/linuxserver/readarr:develop@sha256:dbca70a2dedff17b12698f55c02a49e3ec37e8ce884c5352b54264f9a3979aae
restart_policy: unless-stopped
recreate: true
networks:
@ -21,7 +21,7 @@
TZ: "Australia/Brisbane"
DOCKER_MODS: "ghcr.io/themepark-dev/theme.park:readarr"
volumes:
- "{{ data_folder }}/readarr/config/:/config"
- /mnt/nfs/docker/readarr/config/:/config
- /mnt/nfs/data/:/data
labels:
traefik.enable: "true"

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/sabnzbd"
- "{{ data_folder }}/sabnzbd/config"
- "/mnt/nfs/docker/sabnzbd"
- "/mnt/nfs/docker/sabnzbd/config"
- name: Create the sabnzbd container
docker_container:
name: sabnzbd
image: linuxserver/sabnzbd:4.4.1
image: linuxserver/sabnzbd:4.3.3
restart_policy: unless-stopped
recreate: true
networks:
@ -22,7 +22,7 @@
HOSTNAME: "sabnzbd.comprofix.xyz"
DOCKER_MODS: "ghcr.io/themepark-dev/theme.park:sabnzbd"
volumes:
- "{{ data_folder }}/sabnzbd/config:/config"
- /mnt/nfs/docker/sabnzbd/config:/config
- /mnt/nfs/data:/data
labels:
traefik.enable: "true"

View File

@ -4,13 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/sonarr"
- "{{ data_folder }}/sonarr/config"
- "/mnt/nfs/docker/sonarr"
- "/mnt/nfs/docker/sonarr/config"
- name: Create the sonarr container
docker_container:
name: sonarr
image: linuxserver/sonarr:4.0.12
image: linuxserver/sonarr:4.0.9
restart_policy: unless-stopped
recreate: true
networks:
@ -21,7 +21,7 @@
TZ: "Australia/Brisbane"
DOCKER_MODS: "ghcr.io/themepark-dev/theme.park:sonarr"
volumes:
- "{{ data_folder }}/sonarr/config/:/config"
- /mnt/nfs/docker/sonarr/config/:/config
- /mnt/nfs/data:/data
labels:
traefik.enable: "true"

View File

@ -4,14 +4,13 @@
path: "{{ item }}"
state: directory
with_items:
- "{{ data_folder }}/speedtest"
- "{{ data_folder }}/speedtest/config"
- "{{ data_folder }}/speedtest/web"
- "/mnt/nfs/docker/speedtest"
- "/mnt/nfs/docker/speedtest/config"
- name: Create the speedtest container
docker_container:
name: speedtest
image: lscr.io/linuxserver/speedtest-tracker:0.26.0
image: lscr.io/linuxserver/speedtest-tracker:0.21.2
restart_policy: unless-stopped
recreate: true
networks:
@ -29,9 +28,10 @@
TZ: "Australia/Brisbane"
SPEEDTEST_SCHEDULE: "0 * * * *"
DISPLAY_TIMEZONE: "Australia/Brisbane"
volumes:
- "{{ data_folder }}/speedtest/config:/config"
- "{{ data_folder }}/speedtest/web:/etc/ssl/web"
- /mnt/nfs/docker/speedtest/config:/config
- /mnt/nfs/docker/speedtest/web:/etc/ssl/web
labels:
traefik.enable: "true"
traefik.http.routers.speedtest.rule: "Host(`speedtest.comprofix.xyz`)"

View File

@ -6,14 +6,11 @@
with_items:
- "{{ data_folder }}/vaultwarden"
- "{{ data_folder }}/vaultwarden/config"
- "{{ data_folder }}/vaultwardenbackup"
- "{{ data_folder }}/vaultwardenbackup/config"
- "{{ data_folder }}/vaultwardenbackup/config/rclone"
- name: Create the vaultwarden container
docker_container:
name: vaultwarden
image: vaultwarden/server:1.32.7
image: vaultwarden/server:1.32.0
restart_policy: unless-stopped
recreate: true
networks:
@ -33,30 +30,33 @@
traefik.http.services.vaultwarden.loadbalancer.server.port: "80"
register: container
- name: Create rclone config folder
file:
path: "/root/.config/rclone"
state: directory
- name: Copy rclone config
copy:
src: scripts/rclone.conf
dest: "{{ data_folder }}/vaultwardenbackup/config/rclone/rclone.conf"
dest: /root/.config/rclone/rclone.conf
decrypt: yes
mode: "0600"
- name: Create the vaultwarden container
docker_container:
name: vaultwardenbackup
image: ttionya/vaultwarden-backup:1.22.0
restart_policy: unless-stopped
recreate: true
env:
PUID: "1000"
PGID: "1000"
TZ: "Australia/Brisbane"
CRON: "0 4 * * *"
BACKUP_KEEP_DAYS: "14"
ZIP_PASSWORD: "{{ VAULTWARDEN_BACKUP_ZIP_PASSWORD }}"
volumes:
- "{{ data_folder }}/vaultwarden/data:/bitwarden/data"
- "{{ data_folder }}/vaultwardenbackup/config:/config"
register: container
- name: copy backup script
copy:
src: scripts/backupvpsdocker
dest: /usr/local/sbin/backupvpsdocker
mode: 0755
- name: Setup cron job for backup
cron:
name: backup backupvpsdocker
minute: 0
hour: 4
job: "/usr/local/sbin/backupvpsdocker >/dev/null 2>&1"