Compare commits
22 Commits
278839fdba
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
9ebadac569
|
|||
|
08dfa02fd8
|
|||
|
93f19fa957
|
|||
|
|
786e038f6c | ||
|
|
902a3cdc96 | ||
|
3b08d1a615
|
|||
|
825c2b78a5
|
|||
|
|
1c5cd1afcc | ||
|
68a6635c5e
|
|||
|
|
23b5cd5bc1 | ||
| a9fdce52dc | |||
|
|
09961d2bdb | ||
|
a551f86e37
|
|||
|
e2c9e783e6
|
|||
|
cafdc07631
|
|||
|
963ba3d785
|
|||
|
88133daf7e
|
|||
|
c0103496a1
|
|||
|
73c370b360
|
|||
|
2d96ed9348
|
|||
|
e86533701a
|
|||
|
b03628f8de
|
2
.idea/alpina.iml
generated
2
.idea/alpina.iml
generated
@@ -4,7 +4,7 @@
|
|||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
<excludeFolder url="file://$MODULE_DIR$/venv" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="jdk" jdkName="Poetry (alpina)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PyDocumentationSettings">
|
<component name="PyDocumentationSettings">
|
||||||
|
|||||||
10
.idea/jsonSchemas.xml
generated
10
.idea/jsonSchemas.xml
generated
@@ -106,6 +106,16 @@
|
|||||||
<option name="applicationDefined" value="true" />
|
<option name="applicationDefined" value="true" />
|
||||||
<option name="patterns">
|
<option name="patterns">
|
||||||
<list>
|
<list>
|
||||||
|
<Item>
|
||||||
|
<option name="pattern" value="true" />
|
||||||
|
<option name="path" value="*/compose.yml" />
|
||||||
|
<option name="mappingKind" value="Pattern" />
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<option name="pattern" value="true" />
|
||||||
|
<option name="path" value="*/compose.yml.j2" />
|
||||||
|
<option name="mappingKind" value="Pattern" />
|
||||||
|
</Item>
|
||||||
<Item>
|
<Item>
|
||||||
<option name="pattern" value="true" />
|
<option name="pattern" value="true" />
|
||||||
<option name="path" value="*/docker-compose.yml" />
|
<option name="path" value="*/docker-compose.yml" />
|
||||||
|
|||||||
12
Makefile
12
Makefile
@@ -1,19 +1,23 @@
|
|||||||
.POSIX:
|
.POSIX:
|
||||||
.PHONY: *
|
.PHONY: *
|
||||||
.EXPORT_ALL_VARIABLES:
|
.EXPORT_ALL_VARIABLES:
|
||||||
|
MAKEFLAGS += -r # no use of built-in rules
|
||||||
|
|
||||||
env ?= staging
|
env ?= staging
|
||||||
vault_id ?= alpina@contrib/rbw-client.sh
|
vault_id ?= alpina@contrib/rbw-client.sh
|
||||||
|
|
||||||
clean_desired ?= false
|
playbook_cmd := poetry run ansible-playbook --vault-id ${vault_id} -i inventories/${env}
|
||||||
|
|
||||||
all: site
|
all: site services
|
||||||
|
|
||||||
setup:
|
setup:
|
||||||
poetry install --quiet
|
poetry install --quiet
|
||||||
|
|
||||||
site: setup
|
site: setup
|
||||||
poetry run ansible-playbook --vault-id ${vault_id} -i inventories/${env} --extra-vars "clean_desired_arg=${clean_desired}" site.yml
|
$(playbook_cmd) site.yml
|
||||||
|
|
||||||
services: setup
|
services: setup
|
||||||
poetry run ansible-playbook --vault-id ${vault_id} -i inventories/${env} services.yml
|
$(playbook_cmd) services.yml
|
||||||
|
|
||||||
|
clean: setup
|
||||||
|
$(playbook_cmd) clean.yml
|
||||||
|
|||||||
@@ -6,23 +6,38 @@ default:
|
|||||||
- subnet: {{ docker_ipv6_subnet | ansible.utils.ipsubnet(80, subnet_index) }}
|
- subnet: {{ docker_ipv6_subnet | ansible.utils.ipsubnet(80, subnet_index) }}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
{% macro traefik_labels(host, service="", port="", auth=false) %}
|
{% macro traefik_labels(host, port='', path_prefix='', auth=false, wildcard=false) %}
|
||||||
|
{% set name = host ~ (wildcard * '-*') ~ path_prefix -%}
|
||||||
|
{% set tls_base = domain %}
|
||||||
|
{% if wildcard -%}
|
||||||
|
{% set tls_base = host ~ '.' ~ domain %}
|
||||||
|
{%- endif -%}
|
||||||
|
|
||||||
traefik.enable=true
|
traefik.enable=true
|
||||||
- traefik.http.routers.{{ host }}.rule=Host(`{{ host }}.{{ domain }}`)
|
- traefik.http.routers.r-{{ name }}.rule={{ host_rule(host, path_prefix, wildcard) }}
|
||||||
- traefik.http.routers.{{ host }}.entrypoints=web
|
- traefik.http.routers.r-{{ name }}.entrypoints=websecure
|
||||||
- traefik.http.routers.{{ host }}-tls.rule=Host(`{{ host }}.{{ domain }}`)
|
- traefik.http.routers.r-{{ name }}.tls=true
|
||||||
- traefik.http.routers.{{ host }}-tls.entrypoints=websecure
|
- traefik.http.routers.r-{{ name }}.tls.certresolver=letsencrypt
|
||||||
- traefik.http.routers.{{ host }}-tls.tls=true
|
- traefik.http.routers.r-{{ name }}.tls.domains.0.main={{ tls_base }}
|
||||||
- traefik.http.routers.{{ host }}-tls.tls.certresolver=letsencrypt
|
- traefik.http.routers.r-{{ name }}.tls.domains.0.sans=*.{{ tls_base }}
|
||||||
- traefik.http.routers.{{ host }}-tls.tls.domains.0.main={{ domain }}
|
|
||||||
- traefik.http.routers.{{ host }}-tls.tls.domains.0.sans=*.{{ domain }}
|
|
||||||
{% if service -%}
|
|
||||||
- traefik.http.routers.{{ host }}.service={{ service }}
|
|
||||||
{% endif %}
|
|
||||||
{% if port -%}
|
{% if port -%}
|
||||||
- traefik.http.services.{{ host }}.loadbalancer.server.port={{ port }}
|
- traefik.http.routers.r-{{ name }}.service=svc-{{ name }}
|
||||||
|
- traefik.http.services.svc-{{ name }}.loadbalancer.server.port={{ port }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if auth -%}
|
{% if auth -%}
|
||||||
- traefik.http.routers.{{ host }}-tls.middlewares=authentik@docker
|
- traefik.http.routers.r-{{ name }}.middlewares=authentik@docker
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
{% macro host_rule(host, path_prefix="", wildcard=false) %}
|
||||||
|
{% if wildcard %}
|
||||||
|
{# regular a.host prevents warnings from 'No domain found in rule HostRegexp' #}
|
||||||
|
{# TODO: figure out this stupidity properly #}
|
||||||
|
Host(`a.{{ host }}.{{ domain }}`) || HostRegexp(`^.+\.{{ host }}\.{{ domain | replace('.', '\.') }}$`)
|
||||||
|
{%- else %}
|
||||||
|
Host(`{{ host }}.{{ domain }}`)
|
||||||
|
{%- endif %}
|
||||||
|
{% if path_prefix -%}
|
||||||
|
&& PathPrefix(`{{ path_prefix }}`)
|
||||||
|
{%- endif %}
|
||||||
|
{% endmacro %}
|
||||||
|
|||||||
@@ -5,7 +5,11 @@ alpina_svc_path: ~/alpina
|
|||||||
base_volume_path: /mnt/dock
|
base_volume_path: /mnt/dock
|
||||||
media_volume_path: /mnt/media
|
media_volume_path: /mnt/media
|
||||||
|
|
||||||
traefik_subnet: 172.16.122.0
|
docker_ipv6_subnet: "{{ \
|
||||||
|
ansible_default_ipv6.address \
|
||||||
|
| ansible.utils.ipsubnet(64) \
|
||||||
|
| ansible.utils.ipsubnet(72, docker_ipv6_index) \
|
||||||
|
}}"
|
||||||
|
|
||||||
# Authentik
|
# Authentik
|
||||||
authentik_db_password: "{{ vault_authentik_db_password }}"
|
authentik_db_password: "{{ vault_authentik_db_password }}"
|
||||||
@@ -18,6 +22,7 @@ auth_gitea_client_secret: "{{ vault_auth_gitea_client_secret }}"
|
|||||||
auth_nextcloud_client_secret: "{{ vault_auth_nextcloud_client_secret }}"
|
auth_nextcloud_client_secret: "{{ vault_auth_nextcloud_client_secret }}"
|
||||||
arrstack_password: "{{ vault_arrstack_password }}"
|
arrstack_password: "{{ vault_arrstack_password }}"
|
||||||
auth_vpgen_client_secret: "{{ vault_auth_vpgen_client_secret }}"
|
auth_vpgen_client_secret: "{{ vault_auth_vpgen_client_secret }}"
|
||||||
|
auth_pgrok_client_secret: "{{ vault_auth_pgrok_client_secret }}"
|
||||||
|
|
||||||
auth_default_enrollment_group: vpgen
|
auth_default_enrollment_group: vpgen
|
||||||
|
|
||||||
@@ -52,6 +57,8 @@ redis_password: "{{ vault_redis_password }}"
|
|||||||
nextcloud_sendgrid_api_key: "{{ vault_nextcloud_sendgrid_api_key }}"
|
nextcloud_sendgrid_api_key: "{{ vault_nextcloud_sendgrid_api_key }}"
|
||||||
|
|
||||||
# VPGen
|
# VPGen
|
||||||
|
vpgen_auth_invite_token: "{{ vault_vpgen_auth_invite_token }}"
|
||||||
|
|
||||||
vpgen_opnsense_api_url: https://opnsense.cazzzer.com
|
vpgen_opnsense_api_url: https://opnsense.cazzzer.com
|
||||||
vpgen_opnsense_api_key: "{{ vault_vpgen_opnsense_api_key }}"
|
vpgen_opnsense_api_key: "{{ vault_vpgen_opnsense_api_key }}"
|
||||||
vpgen_opnsense_api_secret: "{{ vault_vpgen_opnsense_api_secret }}"
|
vpgen_opnsense_api_secret: "{{ vault_vpgen_opnsense_api_secret }}"
|
||||||
@@ -62,3 +69,13 @@ vpgen_ip_max_index: 100
|
|||||||
vpgen_vpn_endpoint: "{{ vault_vpgen_vpn_endpoint }}"
|
vpgen_vpn_endpoint: "{{ vault_vpgen_vpn_endpoint }}"
|
||||||
vpgen_vpn_dns: "{{ vault_vpgen_vpn_dns }}"
|
vpgen_vpn_dns: "{{ vault_vpgen_vpn_dns }}"
|
||||||
vpgen_max_clients_per_user: 20
|
vpgen_max_clients_per_user: 20
|
||||||
|
|
||||||
|
# Woodpecker
|
||||||
|
woodpecker_agent_secret: "{{ vault_woopecker_agent_secret }}"
|
||||||
|
|
||||||
|
# Pgrok
|
||||||
|
pgrok_db_password: "{{ vault_pgrok_db_password }}"
|
||||||
|
|
||||||
|
# Minecruft
|
||||||
|
|
||||||
|
minecruft_cf_api_key: "{{ vault_minecruft_cf_api_key }}"
|
||||||
|
|||||||
@@ -1,138 +1,165 @@
|
|||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
38376439643766303237356563616337663731366435613930393135383962666435313530663632
|
31623438643264373065653633306538336133623864643438653630353265376138613361393466
|
||||||
3432326162343632613565393737363335306263653032300a643539393562376162333761376631
|
3464643166633332666230353734333363623030646564310a313134336539343436626234626364
|
||||||
62343731316430316638363338343966326635383930623339383339653936343765316439393233
|
62336366323433346165373666656466616434613565323632353033323161363533356133613732
|
||||||
6562323634383363300a323233346338393764623363346139313661386433656337363332656230
|
3464353362333362350a633937313036336438393462396538613764636337386166613861613439
|
||||||
31306233643735333033316139363165373062363334363933396563366234316330646230353261
|
39656466383833646236383062396130306563633861396234383462306331663136396331333433
|
||||||
62326539663337323036346533303031333730373061656563613535376162633138306634626462
|
37303737626533666530393632616130313734653331353364616135633664343035303631343266
|
||||||
37313038356466336138643834643863393333373939616362636365366231383762633030313831
|
65356133376438393639643931636561616434333637393264343832613035653034363863653233
|
||||||
33393139313336623437396161623437323163633362363137626262653462633737373062643735
|
35313035303731316431313634643638666339396139333565663464633131393266333036316437
|
||||||
63353561313639393166306466346134623933323532636438656263663338376337376434356163
|
32363661303534306535326130313139366466393634373762393165393735613563396230636538
|
||||||
64343239616632313566656664393136363337386464613932383961343134363233653039336137
|
37623665373538633237373235396430333539343232363931656463363866363539326464613337
|
||||||
65656566306463313264646163646130323533666464323464643433313030346535346535323264
|
65303932396666383235616162333564626231656361353133326333663039303331613433613030
|
||||||
34356433343739343166383034313935666139663239653662663734343139343035616134303730
|
38353366393466343334656130306131626330613934313865343039616462363137336238303262
|
||||||
39643136623735666333646234346239303337333961343261383834393963386633633030633962
|
64393931353466643466373331396536386231363233396339326637643662613438376666386661
|
||||||
61376132313532643730633865326130666565303631386262396366306565613665363934383335
|
34346530346533643364636665313633633635656564333436346531623564646534646566623135
|
||||||
37376139616165396436663135373932653064656136356662363137653036383537613665393634
|
30613036616662643461623561623837386538633231383736376462363836313538393036356164
|
||||||
38313063656637353630373634316564383362663335356364626161663163323362333937316461
|
61323664666663313838313033336664363062646562336561663138393635626134613036623332
|
||||||
64336636386234623438613766316430353261346339313863306462393335636131363966363038
|
39396137306531366464643862376238643238336230626533653033376361653839323962373162
|
||||||
66393561323335393063663838393466656331323433376461653838313638303564666662636438
|
65373463643235626463316362356161323737623335633832353663613661636436626632313634
|
||||||
38663735616261656338626437336433613730353236636266316536656165303534353538316232
|
39333033393861306333356335623439653432626336376133646432633332393639323230306435
|
||||||
62363063376464323932383261663537393263333266633461326536656533653661303335646431
|
66376631313033643336373430616638393366313538316239386430393064613430666330363233
|
||||||
36616436396137343634373563386439653833306537373735353764346430616231313538636362
|
39343234663635623764646332666634346437333264636339616431666330313138623734326364
|
||||||
30363430613839373761363032316137636432643339383561313637376339323836353161343639
|
34336335353763396238353633333837616534303537303565323264383963616362643761363332
|
||||||
36316665656164396236383538346561306432333637393431393566333566633434393961663330
|
61326566656337373437353236363865376661376462346430626639623561326435613131626330
|
||||||
32383833396238633966393837336564626135653733383863346161663364353062303931303931
|
64643361323533633462313330333536343739393461616264653737626432343362393232613166
|
||||||
39653662373734643037393832643439653437353935666430373337643532346161376661633738
|
35376631666537373765343035616333323663376363613563336366623235643536356134353434
|
||||||
61643431633431666535333463636461613166363238373138306565643533623039353031646634
|
63363337366461623762653964396534336530373134333364633037343739393134616230363033
|
||||||
62383662663435346635373865633731393362623761313834393964623930646364366534333236
|
66666231346362313561323432376164316439646263333131306335333533353939363763653964
|
||||||
35393138346433366435313066633436393561643263343534393034373161343834633261363933
|
36656164623838323638663363336666343766383865393461653435666539663339656239303861
|
||||||
65376636393263663566653436633762643331336139653565663334373561353130653065653935
|
65353032623966653239393234646664633132306163323438343436343365353361653638376637
|
||||||
31616337313764313532303934376236623833363433336335303262643135643339613839623231
|
34393734316166393234313536656533326337616564663732353735343130646265386635363439
|
||||||
37343730616166323239653537313137373136626337333665633134363830626131353030393662
|
33393331656538346563623031623861396437613437663437326134656535633362323039396232
|
||||||
31643366386365353336326133636434303636343637643539653131316133306132643133643364
|
35346135633235623933393239373361376535376332666338626538353333303038666239643837
|
||||||
64636464373564383938663838613031626563613362626435383832346661306562343165643539
|
30356265313235626330613931323538303362626330333162323062326139353661326536633239
|
||||||
66353431393032313262393566353833343632366139656234306561366139633431653133356165
|
38386336613362646465313635613432666436663938353733313365353137333830333362393365
|
||||||
32363332636433626132666462626137653337646234646565303831646330333133353964626461
|
66623961336335633365386339643437303933346432376466643562623232336461306231623038
|
||||||
37333265623865376562663365336339353036346135363062663534643537353331623630356264
|
63646566636434616364613230316238363563623364643138316135326166613939343464633462
|
||||||
66386665333633383534313062623533383239383231333163663565633531666236306465633135
|
36326338343234643338333737313434366461306435643165353030323939333635666435353639
|
||||||
36363164636165343863363866343437636630353863316633623761373232643262623762316162
|
32346563353037653231373836656261623162356138393861313463616532653039396138383436
|
||||||
32613665306535626139366564616362393536336364666663333761383362393631316134373138
|
38646462636464336564663633333631323731623663383138613231643861323932613466326439
|
||||||
32616665363164363639303538373539346239663261373731613464333734326436666433666539
|
31666535313136613632383833323134613639623836653635326336363531363832303633323731
|
||||||
31656264326535626134323231646535656563363231633434636337323538343038303233363765
|
61646630353462363932396661613639353538343136653433656132323637313434306136306366
|
||||||
61393164316237323533313336316530316431653731343261636265393361616464323536333130
|
66336164643431333564623965623064326139646664383965656636393564366535343365616634
|
||||||
65346538306664663566666435393738323832396365363764333637613331356661306535376332
|
31366665396330663864323666386431633439323933306538316231663066323565386132326563
|
||||||
62313533306365373737643835396364363737306631346161353031633531383364636563383237
|
64376434333636373362613937323632356261326439653736336331323233653063613661633539
|
||||||
64633432386565356137333730313736393737303665326531356265376333663636393430386233
|
39323261363333666461393166353362656630633262373661636535363863323664666438306633
|
||||||
33666532616632373061633063656136646533363034363330366231653936396166663134396139
|
61643865323634643063636631366165373230303533323338333832643364663066333131383436
|
||||||
66393131653963386365656364666263666362316136333561326566626562616138383739346139
|
32623662373439636164633939623164396666613138623632333532636634303633356638393537
|
||||||
62343035646435393136656434646138376331346164663562306166646132363230333538323536
|
31343933313965326238643331653635373430636236656433363039383263366363626565326462
|
||||||
38643934613633373734653337666261356639353235326539356264633232343834633062336539
|
30336631656431643262613663376331353631333563623361373231643439646465333261303862
|
||||||
31616536663730656163626437653932313564633938643163313765393731386533323465303831
|
36343766323033356536623931306365313363343232343538396561636133643365663933306231
|
||||||
34353663363862363761643565633635373834623665653131613531373637386361636661376532
|
31666362313935346336333662643237326137336263633934663663656636663836626364643966
|
||||||
64386435643966343034643763393461373961626134346539653865636161333962333463393734
|
34653830356163616636306536303030393634343062623538383239636365373663343463306262
|
||||||
62343838363432396133326235323636613239326139376365353930373835313531326433326234
|
62666536393332316365646630636232376165313266353138346536663435313063663466343533
|
||||||
66396537636162363865663433626230316362343334653735646637613130636436633132663538
|
35323238323466323663396563636361353833663636383234383533356362626232353632633665
|
||||||
64623230303266373965616533346464373661363233613837613765343463306136623063313139
|
31323865303935643765323663383730643462376464626566663562323339613037373761326632
|
||||||
31383039343462363536646636653736316362356565326538636331646235373162663332313961
|
33623636353832323735383866366534663561623136633639653232313564383639653833623532
|
||||||
64623061636638666234623336656365383165626461323561343930316432313632316332306334
|
32326535306661383433656436633031626235373466383633366663376537306530616438383361
|
||||||
61376430303835383934396266303564363230313735366464386134393265326334663633663632
|
65363838663965333831636166316464383964656431383161313838303736656130363132623664
|
||||||
38643034393737303963643733656333316137646435653666353239373738373632383561646333
|
32656232363933616532643461353565366438323166323237393434333630633830366562396531
|
||||||
65363865353362383832643238363332613931343038366563316163303764323936316466666364
|
35626564306634376364333332326539613839346639336561303038653937306339376161393763
|
||||||
31373439383661656336653431666164393833643266656133383137376133636134643137663532
|
30356464646435653237643065643264326630656366656138376566636161323261663366343462
|
||||||
33353531663336346562653339616430333133363232336461353937303435346337363932306133
|
62643837336133316262306261363238316533326436343631643031623731353563323836336533
|
||||||
37623164343462363830323263323664303334633563313439376232303031633633316636383164
|
66613737306232366339653962613136326430353732373034623130306539366431363864626535
|
||||||
66306238333432333635653435383138383339343837346134613630353335656335663062326132
|
38346166613864396434616663393837613466666436613730373466653532663561386533343635
|
||||||
65323638343963623062663638366538363162343230323262616138373239653163623832313366
|
37336233383337343266663037333133373036373435303432313265663539343961653665363762
|
||||||
65323834383631646164316363383636643437346435313030656362653332653635343066666232
|
64323761376632393638356235316362366630323039323336316262343663343563383839363165
|
||||||
39346235383265326262306434383861653138393835663863383032363664323565316165646566
|
38346161303931613832316333353130303637373638636561366134636137376537393538306532
|
||||||
61646238393062373131346536343533663839313831383335316363343465663130633133393436
|
66343133616333353664353062613862656439636161653864343734663537663762626539636138
|
||||||
66333465633636353639663836376561353839613533346164366238353833636534633338313262
|
32643361623135363539663865643935666263373432656138383966393162656164363734626332
|
||||||
30656433376362346333303630643639353262323532666238633764363132303161326638643761
|
61626634643135323262616465393332366235333637393937646531386562313338363431336135
|
||||||
36616131636538613539383935613337643930333334613566393031646630383330656164363361
|
30316632326637393431323538376663336136323438636463656639623238353533633336376534
|
||||||
37306536356164633831626362653364313164356235653464333633313263383032333439626434
|
32303566643264373861323030303033393939326161613037333162363864653839643966393939
|
||||||
65376531396661636661303831393062666362623966353739303330393631323963373564353265
|
34353765653765393336393338663761626663366136303136353932386231346331363961363930
|
||||||
61343862323737336238356231626561396333386264666563356235333339653538626130623936
|
39383131366466633365376635636231363639656238613737356630363734646166336432303535
|
||||||
63326431316538346534313764356333396565666431633833613337323136643137306166623238
|
34313938663864303730373331643437613636356139363934343261306666326437353737336466
|
||||||
66393561333137373964353935323930636237366433613038383761643665363330323865386133
|
30653139656335356133376239386666393166613062303233396330386462633666336532663765
|
||||||
37623339613733353366656637383030623663313639363334656361623035643232626633313864
|
36343230663035353638633662343035656639633433363165346539396661646635653562653161
|
||||||
36346564653766646333613763616163363462613937656534363461376235613064373039326165
|
31363161346565356164343530363731353935663563643532363535343266623935646663336333
|
||||||
32666265383065636232613632333830633439653066653666663261646536663434393535613131
|
35313065663439313535623430333533303964663263643064393331363035376635663964646138
|
||||||
30373062313765663038313534623165653833623330383032363063393239373234636630646561
|
63366361393531326132623236636333626334333433383531653161663961636430663964636561
|
||||||
38633962363530666638666630316434613462656335613236363831313863613030636539356133
|
36333463636334323834336435663636623133306434646530336332386265613962663132663737
|
||||||
66386133383433663964306661636131633236633935633236623530373864646363383534383735
|
31393537336162336532613239666332646436363266313632653538366561643137393332643065
|
||||||
63633165626464333332303331333338313838393832626637626137316338643136336333633930
|
32643264396135653439613632613332393937336230303131343465346232353261646536633130
|
||||||
61346436336635656639616261383666336330333862303139633137373362303033653432613039
|
35626363363763623839343566376633323765353934356431313537323332323736656635613039
|
||||||
35623663353538323761623839623438646363313164356631386364356533346133333334326565
|
39383039366437356535396133396336666330396566373961653762633965373761393633336165
|
||||||
32303837663261386463313535373765356166376165386535623838326431616564346632363732
|
39613261306465353634336666363138343830653939666637353330303234393632306166626633
|
||||||
62373231356530346632373134343865303532326136653731633038353066623435336462303138
|
62336531373636656130363731363334313731376561636466643638363530353363323730643232
|
||||||
37363039343433613939363663623135396636396433653362666164323237393664623564393532
|
31643636623363646233613733326630646235383539393834303864383039313934383633613232
|
||||||
61376463336564396537366365373936333666373432376566323864343735636264643139643063
|
33376433656561356337666638353038353362363936366561323966653862303837663264623039
|
||||||
66396230303336633438666234336434353866323637316334313162363734623763666338336234
|
36353966626362373531333939633934373266313831663337383464616237386361303166383634
|
||||||
39303330343035333864396631323231363134646238323065356138633131323135613133356237
|
61643434633964373634646436623861646266366530313535663361626438323530343361313430
|
||||||
34373562633430613062313261363939373632313838333934303165336562663839663833383763
|
31663066323232353130333732616663373361666661333561343133353837353766623230623963
|
||||||
39316632656561653033613933373861366361353761346539306234366538373461373930306535
|
32323936373336646131653166633365323963616339643630623962663866373038393034623632
|
||||||
66623430343336333033306135303639646566393336663538313430616364653933663536386535
|
35656130383562353734666162666264626138363265626263666661346465333130373764653262
|
||||||
64323962353734356134656361663131376564626461386233643731393664353038626464313763
|
65623939623831633265346638626134386131303339386434343466656565373538613934653035
|
||||||
64396265373737313134613962376334373965353338303363303935353538643561336461393032
|
31663265646266656432333739653439356134366663346366373139353562303964333537396361
|
||||||
37356434343837376534663938366434343063643966643965346465636166363235643635333466
|
35353132636266613965313232326439366231653535653861653131373936303439303662643261
|
||||||
38323664366366663363616664336165653264633437393636363866316262303432356461386330
|
32623662636565396632376437633064663032393538323432393764383062643835616563656535
|
||||||
63326539626363333331366162363230626462656633653866383331333164663734633630353265
|
31386366393839643931656334633930343535326462623761353762396264323362326231643336
|
||||||
63303832376230646136346261383965626633613739616330666232376366613332663839336531
|
32633534323661666239366563633837666161643438643033303732623237356139333739663135
|
||||||
32343031336363663865643165666435623462376130326433316562363530343662366432313031
|
36343732656263313536383136663832323130393031313265326439383061666264333461373134
|
||||||
63626538656633346563663735323030363231643933326337613634376531636235333339373633
|
34616163643839373663306630343861613663643030643437373833643239633539616565636233
|
||||||
66353362333265343964353966383363613336636536393734363363623363316532653533633434
|
66303234303036616438356563663636633833396137323462316363613864663536343137303064
|
||||||
39333162303834353362323362656630343733653336613065333462626637303264653361393462
|
32623030616562313131343536373435353636353161346337303337633135343262336164336632
|
||||||
32336238326535383662636465383832346438333230666662633430303964343236626331623536
|
39343736313165626562353665613061626461393130373735303533636239376533636137396331
|
||||||
65383666316431646538396661386332323037383666336138666135613763363633343934663836
|
37346234396364333537623034333430616133396363656164393337396338613766336433396464
|
||||||
32656362323631303732613235663135633939643165626231373162643963613637626235613365
|
36346664383838386366366537306333306436383235316535623631343438633232313234613036
|
||||||
32326266323431636434633234333730373836373039666137663232323539396364373061393232
|
36396564353833626566316130343439653562313863653761383564643162386362383138356530
|
||||||
30646432666365333336333836313333363537363163383034656136383164663331373632313564
|
63376336616266623133323031353966623830633135316636383863333266333136303839373333
|
||||||
34353731363338323438366464663938393632626530323537306233613866356234323364373766
|
35366130306431636362636162333661343939386463373936313866646162396138626663353765
|
||||||
34326662656263383864613538326536626133386532303932326362376632363631356535393937
|
61666463653939373363393463656537653965313735653863323965666237353230316135346138
|
||||||
33346462336636656165316166363364343330383337636361656438383661333366633532616131
|
34373637326366363033393830386164643530313937663031363932343637323836363932303832
|
||||||
37313033623430663039626131303933316561666233613666636433363537373264653331323136
|
30316163393431663436643638313233643664333461623932356231383636633536393133666463
|
||||||
66663532653233373735326333333738663931343735306262353831303330633136623966316431
|
38303030633866383866356262386235623034666161326632633735396162653437643533313034
|
||||||
39316462313066336536623438626163383139343532313932316435356431323865373035343465
|
35306134343731376563383662353463386164323633643231386339356263663534613061306632
|
||||||
30346237393531353833616136323431376530333635633632666431313938643539363831313539
|
37646338653633366530323837386333393335323664306265643235346366613164303962643433
|
||||||
38396338336136363165323135663836336139623865666631663237616664636233653663383965
|
66303964346339663364633631656434626361396564666366333165396436666632663364336431
|
||||||
39623665656563316334323738323730306631636565393662313536353565383033653365663461
|
31376435396134646665353135636138663733363565393833336464653465303961373262393932
|
||||||
38326432353166376438356238386161396638666131636536356333393563613461373263346538
|
63396461653133396633376130326463313465363161633861653964313639666534633434393032
|
||||||
36656138353762323662363061613764633466303566353338626666646533616137393336333333
|
38383334386432353630316336313839363362643533356433636665623235366664326139346430
|
||||||
30393733316636353266653039346237363830333831383535646531616130353534633062643135
|
35646435356131666230383966383230336336623935336431653562363863643739373962366230
|
||||||
64373533646462313035383236333866313866366130663863363162613234393762646662666233
|
32373661313832313963373263613764336635616239393063346232666364623631373839303632
|
||||||
30653666353333366365343036643462346361303536363935396133343166303339623461376563
|
66386462666166616465336538313335323461316162346461613163643363313732366331313166
|
||||||
39333163636466646534356337656431376663623833303235303534633634386665636162346634
|
39646535393235383633323663333865383462623162393665336132303334326138303431616665
|
||||||
34646665633639663763316339663539663261333436363935316334656330313835616138626237
|
35633864373530613762396632303737653535663538316237663538646465313038373961616361
|
||||||
35623363393532633937653132303635396536646635633062393661616538303631663136363038
|
39643866363563643133346437643038393361373938633935363332346236353362363238353365
|
||||||
35623539303963383063343338653130643233636537356264323238633839303337383665393333
|
38393632336139313937616536633839383830376131633561383237313264373739626661646139
|
||||||
36303330393638643464646535653833626531343634626531396261363139326336623765623039
|
32613465613933623062653362646439343035376261613361356233363631636539653062613138
|
||||||
32613237636366376463343766303964336661363432646436373963626537373137396661633766
|
65633235656534633135633434336233303031333135363838666361306238323530643838386264
|
||||||
63633830663035663764303634643662333464353234646232343066306131336533396435313239
|
33666639613931313239306539313131313530353836306361643665666231663966316237613134
|
||||||
66366630643564313665306130656463633065646430373334336664633264353336376439666137
|
30303437376132373034366534383435626139623162653335636434373665623034376163633239
|
||||||
65366537366462623136353539373961333238373733663837373430663865643334393565333861
|
39326332396631333965373337653239356237656235393765303236366565326536313732353137
|
||||||
35363035343561633164613631633532623164376339633630393633396437333034376339656538
|
32623036343831383335336539303439303864666561323463393162353536303235626631373363
|
||||||
32653030626434326632386635383739663932393331333062656565303939373566653031613839
|
37346338393336363038643430313037373164336264633838656231343331356266386266376563
|
||||||
31363162666330393232646562333833633266643165316464623533623539356339333365623966
|
31633561376166343939326534383363393738613837653135663765366464306336326663333566
|
||||||
65323638396531346261303835373138333262323466656263643737343734303237303638353036
|
61613339373234303838633639396562313930643339633733663030323761343737323862343232
|
||||||
3733
|
64343233326330306662653535633539393566626565306530363161343731613439383362393738
|
||||||
|
61303339373565643036396563376230376464636632316265326165333761656164626632303235
|
||||||
|
61353962613731633238643937343166343261363337303731633134373238643062643133633434
|
||||||
|
37306265373666613131316332663066363834663864396364373637613632376539616363623963
|
||||||
|
31356264393335366266613339343233383830643364356435316432613566316365326130333531
|
||||||
|
64366536383937306437386538643338306662633739363231616438633465613563336564616363
|
||||||
|
64363130326337383734666435336333656136326663336637336231623637633738323863636437
|
||||||
|
39373766646333363433383130336336626163616564376336633833633835653231333239656462
|
||||||
|
63316263313931626333663832653939616436643964613061343866303035653830633734643631
|
||||||
|
35316533383333616332313938653762623435353161653061633732386365303138656466313238
|
||||||
|
30616666666433333237313835623764373361633938396361393930393832323763373533356565
|
||||||
|
65393261393363623435346463343537386531643439383764626239356530346666346633313332
|
||||||
|
61656639616361396562633137666631613062303031343734313738313735346237613233363833
|
||||||
|
39663036653865346336653734306631303563343563663438643533626638363463353731386132
|
||||||
|
62326538613237616264623936393530613366303632643939336539333138626464383964663838
|
||||||
|
34363763663732336536656162393635306563633662636664323563363161386261313230393766
|
||||||
|
66373037343135616531653938633931643539386433633037623138613639653238303936383930
|
||||||
|
62333564663537653764653638663465326462323838613838643034363238343339396663333835
|
||||||
|
62396161373531646132663931356638643331626135376432633531383564393335316534313266
|
||||||
|
62613935313661303636303762336166323064633837396435363937623238333461396235636534
|
||||||
|
31616461303334363361376334306366633133633965646138623663623137393634613465376663
|
||||||
|
33613836316365393136333639643035333238373535643932353330316161363733333439356532
|
||||||
|
31343935376564333938613630616437343864336632356435326265363761643339653638666139
|
||||||
|
30613035393830616263353338393334353635333534336165396266326462373036653663393863
|
||||||
|
61323838363831663434636236636463633362633136653662623863323737626163613863643566
|
||||||
|
63363933336533386666636632656661303033326535613234336264376337376139353831386364
|
||||||
|
64643331353934323761623264353030653265336462356233313864343233323866333262363536
|
||||||
|
36346630396536663565
|
||||||
@@ -1 +0,0 @@
|
|||||||
domain: cazzzer.com
|
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
# Environment specific variables (prod)
|
# Environment specific variables (prod)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
domain: cazzzer.com
|
||||||
|
|
||||||
docker_ipv6_index: 255
|
docker_ipv6_index: 255
|
||||||
|
|
||||||
# Arrstack VPN
|
# Arrstack VPN
|
||||||
@@ -18,3 +20,7 @@ google_consumer_secret: "{{ vault_google_consumer_secret }}"
|
|||||||
# VPGen
|
# VPGen
|
||||||
vpgen_ipv4_starting_addr: 10.18.11.100
|
vpgen_ipv4_starting_addr: 10.18.11.100
|
||||||
vpgen_ipv6_starting_addr: "{{ vault_vpgen_ipv6_starting_addr }}"
|
vpgen_ipv6_starting_addr: "{{ vault_vpgen_ipv6_starting_addr }}"
|
||||||
|
|
||||||
|
# Woodpecker
|
||||||
|
woodpecker_gitea_client_id: 3b7515f3-6005-4512-a2ee-5464dba315f8
|
||||||
|
woodpecker_gitea_client_secret: "{{ vault_woodpecker_gitea_client_secret }}"
|
||||||
|
|||||||
@@ -1,27 +1,32 @@
|
|||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
64376262343730306465343137353235393430646535633031646432363631643061656336313962
|
36313835643238353932323631323439626432316436346533376365633332313963666433313333
|
||||||
6661643832613835353937313832393762613430616338360a356137373036343037316635666366
|
6134633133636133623130376237373462383164396338380a316463396139653161366536636336
|
||||||
62643132656233663933353239653438316238353363326539353038383436613038356137643836
|
64346664356538366538363239306631326464633635316161663963326635656430326637333963
|
||||||
6265373939326266640a376162333266313333653339383533303639393932373266356361313763
|
6462633236353132300a323062353639646238663737353461633733636530613036316364353864
|
||||||
65346235626430323232393161643932316161383564393663343039626431366130353066636265
|
34326534376639643734303137613866393464306334336566653134333765356361386436323939
|
||||||
63643639383162326235373636393435316338393431393166663835623739356562633435373438
|
35393535303635376162386266396431313739663961643061623037343463303637623130623131
|
||||||
30393630623261353134313038643464306637383738303163353937316261313263613264393939
|
31653761616639613964386432643561376637316435333064343837636463303033333432636234
|
||||||
37363037616230623732663866656665666664393835313836393237303234303866393437393833
|
39323735373161616133396566316266383165343033666530376333626264643531613334363634
|
||||||
34376335353133613938663861323062623763323463316563363439623030653033373538323436
|
35393766623361346461333764666139366632306362613362376133363239656562346263643066
|
||||||
38333863353333323364396431373030386636366330323562663831376531333661613337303835
|
65616538366532346537383432663766366161633234373562623531356339666661346164306563
|
||||||
35643464396332333436633036326563613863636238353837643965303862636665303362336162
|
35343339386631383462656466303563376237386137346437323634626163353464356462346364
|
||||||
34623430353061613364643436343736613734326332316465356333626534303166636638336236
|
35373061636237383335396231326563366230663566333665326338303564326263316630666233
|
||||||
36613362666337616635316330396635616165346666396465303861386162353836333332663931
|
65303930663862313137333630353837363265333532303133306466643462626662613166326132
|
||||||
64663838646332316363376339666632336238613365636666623137663564313665363461393163
|
66346439333739653965346236313766346532356233333164633538326135643662623533646561
|
||||||
35303735613734393439376339396466643065316432383236393633376461316534623535396464
|
65626530386333303362343830653430653866336261623566616362313739303939656364656363
|
||||||
62386464396534333561323539646336623464623033333835356439353632373033373736393134
|
37336331353766633534653936626139303061623531323362346564363665663438646533646166
|
||||||
30666435306632336433383562303238363361313735323439366638333033653761393061303130
|
62376534653562373138656465666133353235313935626534383537643436376665613865303363
|
||||||
36633536356264376366383335623534323436383361373037383931313766353534363663336462
|
62326562396361306131616363363866316232623635353663323537366563333239383636643763
|
||||||
39353064306439306135623863643163393762333366303665623432386462333466626535613464
|
35623366663463303831323730363036306363643364303532326339353633393739306366396331
|
||||||
65613031666530303163353534323032396264666464303639383038343537303839633831373039
|
33313230656431623462376135623438633164323064653866646165643263383832353138633931
|
||||||
61323437313737623530663532626530613935353431306138623239386136323334636163343432
|
66306463346361646561376334613837383762366365666638643434383034376339643239646463
|
||||||
65633933643630643634336639393866353739653638656366356163343132656666336232643731
|
66343461363233626635323535336462666339323032616136396239396534346434623238396330
|
||||||
65363639623262613132646366353235626237646532373233626162643434396362313033653637
|
37653665643366323362313136386231396532323035363963623738346564356435303263303832
|
||||||
36333035646634616138313863386637346466393262363833313135343964666630623736343666
|
37346532366432363638363330316464366361313461626535616165333433343835393565633766
|
||||||
64373638333066343666306334366332366530623138306636633166613739363635303138633434
|
32663162386562373035333335303332323136613233613431386265626337653939326435396262
|
||||||
3439326265613564666639363362643037653733393336363232
|
61303631633838613962346663326232636438393563396230306361333335383462653432383766
|
||||||
|
35376662353262303635316635363130383032366530396439613861653037383234363831333562
|
||||||
|
37343332646534353838626366623361636261393865363633303631613837323733626264643835
|
||||||
|
63376430613234386463336234623062656534643863656434386134616265333666613939393331
|
||||||
|
39333166393538306135313431303831623063363533326330633062653333313733653831383736
|
||||||
|
613864303461323739336563356161353234
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
[alpina]
|
[alpina]
|
||||||
debbi.lab.home
|
debbi.sys.cazzzer.com
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
domain: lab.cazzzer.com
|
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
# Environment specific variables (staging)
|
# Environment specific variables (staging)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
domain: lab.cazzzer.com
|
||||||
|
|
||||||
docker_ipv6_index: 254
|
docker_ipv6_index: 254
|
||||||
|
|
||||||
# Arrstack VPN
|
# Arrstack VPN
|
||||||
@@ -18,3 +20,7 @@ google_consumer_secret: "{{ vault_google_consumer_secret }}"
|
|||||||
# VPGen
|
# VPGen
|
||||||
vpgen_ipv4_starting_addr: 10.18.11.50
|
vpgen_ipv4_starting_addr: 10.18.11.50
|
||||||
vpgen_ipv6_starting_addr: "{{ vault_vpgen_ipv6_starting_addr }}"
|
vpgen_ipv6_starting_addr: "{{ vault_vpgen_ipv6_starting_addr }}"
|
||||||
|
|
||||||
|
# Woodpecker
|
||||||
|
woodpecker_gitea_client_id: c7122416-b160-498b-8021-8f2837552588
|
||||||
|
woodpecker_gitea_client_secret: "{{ vault_woodpecker_gitea_client_secret }}"
|
||||||
|
|||||||
@@ -1,27 +1,32 @@
|
|||||||
$ANSIBLE_VAULT;1.1;AES256
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
66646463303166643563376162636432643963336537343738383763653232316661383864373761
|
36343339366166383430383235626463376339653331333635623936653135633633353064613634
|
||||||
3539643230626437623736353630663865376630663765650a666266663366393833396461303665
|
3263306161376232356634363532653266366665333364650a636365393465383165306563346132
|
||||||
61663961623036383039323239333361396564343836363662326237666464363439643336613336
|
37653564633630653635353464333939353266396562316663653933373065353536333130383065
|
||||||
6562666639313461330a613831316232623963396136343638643133376430373634316133653432
|
3864353332303164320a316439313164663736636465366539643131303663343861333164613561
|
||||||
65633339623833303866343130386433633065326466333636353362306362663830333934393364
|
37383965373964313535313335643164376164323263613539643933333035323837373662303030
|
||||||
35613338316631333438623230623131626431633930313664616237396666326665633965373333
|
66636465303566313334386435326433653032383962353739643861346161323738636366396239
|
||||||
33636234666561656333623836633562363130346665623839353734616437303562623530613432
|
39623336336234376339343562656362323932383265313161396435346530663330353266323433
|
||||||
31313037366232613335613262336334393966326139633332613733326335383130316265613038
|
66396538313365653963323164306464663565303364386466666636346533633661333634313236
|
||||||
35366162623737666331636435643234383634663964666465666563396262336134306636343830
|
33623936616239613264613730363039366561646535633239633564656166343162303633373366
|
||||||
30373831393232373664666564316134316266376134323538366130383962396566386161303461
|
37656163333838656533363735383332626632353237613666396633363531666366336630613064
|
||||||
31336333633135323631373763346631656132346334356233303630643166323565393736336236
|
66626561663766376531313666663963643766393965653564333062653139336230356330383464
|
||||||
39343231313132316663613734323833303935333162643862623632316662653736303266336635
|
38343562383430303132663964303736623238386562323033623861303432363363373934643332
|
||||||
37316435633464343761656262326538633730616239366330363736323761653061306139623335
|
63363239323664333131306237336134613137653136633932356238343733393632616464366134
|
||||||
33363066383636633461353534396433653161393132313034373165653563646234653764306539
|
33623038363032653134626337663863366663383433633134326239616136656139366535613565
|
||||||
32653239613566653762613364653863313334653437646166643537633530613463653966383538
|
61646330356330396236303566363834613236653733643162666536303435643133346633353632
|
||||||
37343834326162393739333066623066613566313265626562333537366230393938613931366638
|
62386135303262353332643135636164303963616234626132356161663463366434323864626261
|
||||||
36316364383361366461396136353063363233353865373062643963646266643763363938376265
|
33356536626263626261343937386666396561306334346435316262333431353234303836356563
|
||||||
34623333316264383035373266313437353161666537376535333830616435383830366166316136
|
31343566373935396633636133616265346235396333396664333534336162323039623937656336
|
||||||
33643132316534383466343366303764633031353961363033663662636364613132343862653066
|
36656133383966613333646336613039626563353862646238376461373264633233313836333062
|
||||||
39376136323662383866666136656361396263666338623133346436353938316464346363303761
|
30343134363862626630393035643762376435346532306462363437646238333463396230666465
|
||||||
39656133653736646137396437396133373765376337623832653232383531663930663037323462
|
64386365393063613139313164366562643066323461313364393265393638643137386561633530
|
||||||
66373630633737356138333532333265393964313739336363663265613363636464623232316539
|
65643861386531323836306339386462656530383533363831323461303131396666626464303136
|
||||||
37353164393965616363346666303330613438306136363037313065666662656535356437663262
|
64343865616235616366633136393662623862383961323338366435396334653538303830616166
|
||||||
37306264626431396336326362653764316536396366393533336164663861366462653964656465
|
39636164613466313033643639366635323666666235653633333436613133343962353664313838
|
||||||
64366139333535383065643033343632323837633036323439376134373966613739626261376436
|
64356466393239666131363964643461346633313030643061643938643232343334313731636463
|
||||||
3133326138613735316230353965656239303263386638373339
|
37396637643232353539626239306463623237623534366666396164613135356136313534663231
|
||||||
|
36613662653237343061316463386231656136383636393034333666633063613731316162333464
|
||||||
|
64313866633062623530326233633166343434636639346565346337396461393637383333366435
|
||||||
|
62393030383963396638653230613431623837353461313630343333376131616239313164336234
|
||||||
|
62323739316536353835613032303438623230626563303934626466303934613566656232323663
|
||||||
|
643265386333313065333737613438316532
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
[alpina]
|
[alpina]
|
||||||
etappi.lab.home
|
etappi.sys.cazzzer.com
|
||||||
|
|||||||
143
poetry.lock
generated
143
poetry.lock
generated
@@ -1,28 +1,30 @@
|
|||||||
# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ansible"
|
name = "ansible"
|
||||||
version = "10.7.0"
|
version = "11.6.0"
|
||||||
description = "Radically simple IT automation"
|
description = "Radically simple IT automation"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.10"
|
python-versions = ">=3.11"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "ansible-10.7.0-py3-none-any.whl", hash = "sha256:0089f08e047ceb70edd011be009f5c6273add613fbe491e9697c0556c989d8ea"},
|
{file = "ansible-11.6.0-py3-none-any.whl", hash = "sha256:5b9c19d6a1080011c14c821bc7e6f8fd5b2a392219cbf2ced9be05e6d447d8cd"},
|
||||||
{file = "ansible-10.7.0.tar.gz", hash = "sha256:59d29e3de1080e740dfa974517d455217601b16d16880314d9be26145c68dc22"},
|
{file = "ansible-11.6.0.tar.gz", hash = "sha256:934a948caa3ec1a3eb277e7ab1638b808b074a6e0c46045794cde7b637e275d8"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
ansible-core = ">=2.17.7,<2.18.0"
|
ansible-core = ">=2.18.6,<2.19.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ansible-core"
|
name = "ansible-core"
|
||||||
version = "2.17.7"
|
version = "2.18.6"
|
||||||
description = "Radically simple IT automation"
|
description = "Radically simple IT automation"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.10"
|
python-versions = ">=3.11"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "ansible_core-2.17.7-py3-none-any.whl", hash = "sha256:64d4f0a006687a5621aa80dca54fd0c5ae75145b7aac8c1b8d7f07a1399c4705"},
|
{file = "ansible_core-2.18.6-py3-none-any.whl", hash = "sha256:12a34749a7b20f0f1536bd3e3b2e137341867e4642e351273e96647161f595c0"},
|
||||||
{file = "ansible_core-2.17.7.tar.gz", hash = "sha256:3aaab735d6c4e2d6239bc326800dc0ecda2a1490caa8455b41084ec0bc54dacf"},
|
{file = "ansible_core-2.18.6.tar.gz", hash = "sha256:25bb20ce1516a1b7307831b263cef684043b3720711466bd9d4164e5fd576557"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -38,6 +40,7 @@ version = "2.1.0"
|
|||||||
description = "R/W an ansible-vault yaml file"
|
description = "R/W an ansible-vault yaml file"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "ansible-vault-2.1.0.tar.gz", hash = "sha256:5ce8fdb5470f1449b76bf07ae2abc56480dad48356ae405c85b686efb64dbd5e"},
|
{file = "ansible-vault-2.1.0.tar.gz", hash = "sha256:5ce8fdb5470f1449b76bf07ae2abc56480dad48356ae405c85b686efb64dbd5e"},
|
||||||
]
|
]
|
||||||
@@ -47,27 +50,28 @@ ansible = "*"
|
|||||||
setuptools = "*"
|
setuptools = "*"
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
dev = ["black", "flake8", "isort[pyproject]", "pytest"]
|
dev = ["black ; python_version >= \"3.6\"", "flake8 ; python_version >= \"3.6\"", "isort[pyproject] ; python_version >= \"3.6\"", "pytest"]
|
||||||
release = ["twine"]
|
release = ["twine"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "attrs"
|
name = "attrs"
|
||||||
version = "24.3.0"
|
version = "25.1.0"
|
||||||
description = "Classes Without Boilerplate"
|
description = "Classes Without Boilerplate"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
|
groups = ["dev"]
|
||||||
files = [
|
files = [
|
||||||
{file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"},
|
{file = "attrs-25.1.0-py3-none-any.whl", hash = "sha256:c75a69e28a550a7e93789579c22aa26b0f5b83b75dc4e08fe092980051e1090a"},
|
||||||
{file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"},
|
{file = "attrs-25.1.0.tar.gz", hash = "sha256:1c97078a80c814273a76b2a298a932eb681c87415c11dee0a6921de7f1b02c3e"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
|
||||||
cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
|
||||||
dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
|
||||||
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
|
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
|
||||||
tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"]
|
||||||
tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
|
tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cffi"
|
name = "cffi"
|
||||||
@@ -75,6 +79,8 @@ version = "1.17.1"
|
|||||||
description = "Foreign Function Interface for Python calling C code."
|
description = "Foreign Function Interface for Python calling C code."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
|
groups = ["main"]
|
||||||
|
markers = "platform_python_implementation != \"PyPy\""
|
||||||
files = [
|
files = [
|
||||||
{file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
|
{file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
|
||||||
{file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
|
{file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
|
||||||
@@ -150,51 +156,56 @@ pycparser = "*"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cryptography"
|
name = "cryptography"
|
||||||
version = "44.0.0"
|
version = "44.0.1"
|
||||||
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "!=3.9.0,!=3.9.1,>=3.7"
|
python-versions = "!=3.9.0,!=3.9.1,>=3.7"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:84111ad4ff3f6253820e6d3e58be2cc2a00adb29335d4cacb5ab4d4d34f2a123"},
|
{file = "cryptography-44.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:bf688f615c29bfe9dfc44312ca470989279f0e94bb9f631f85e3459af8efc009"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b15492a11f9e1b62ba9d73c210e2416724633167de94607ec6069ef724fad092"},
|
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd7c7e2d71d908dc0f8d2027e1604102140d84b155e658c20e8ad1304317691f"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:831c3c4d0774e488fdc83a1923b49b9957d33287de923d58ebd3cec47a0ae43f"},
|
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:887143b9ff6bad2b7570da75a7fe8bbf5f65276365ac259a5d2d5147a73775f2"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:761817a3377ef15ac23cd7834715081791d4ec77f9297ee694ca1ee9c2c7e5eb"},
|
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:322eb03ecc62784536bc173f1483e76747aafeb69c8728df48537eb431cd1911"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3c672a53c0fb4725a29c303be906d3c1fa99c32f58abe008a82705f9ee96f40b"},
|
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:21377472ca4ada2906bc313168c9dc7b1d7ca417b63c1c3011d0c74b7de9ae69"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:4ac4c9f37eba52cb6fbeaf5b59c152ea976726b865bd4cf87883a7e7006cc543"},
|
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:df978682c1504fc93b3209de21aeabf2375cb1571d4e61907b3e7a2540e83026"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:ed3534eb1090483c96178fcb0f8893719d96d5274dfde98aa6add34614e97c8e"},
|
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:eb3889330f2a4a148abead555399ec9a32b13b7c8ba969b72d8e500eb7ef84cd"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:f3f6fdfa89ee2d9d496e2c087cebef9d4fcbb0ad63c40e821b39f74bf48d9c5e"},
|
{file = "cryptography-44.0.1-cp37-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:8e6a85a93d0642bd774460a86513c5d9d80b5c002ca9693e63f6e540f1815ed0"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-win32.whl", hash = "sha256:eb33480f1bad5b78233b0ad3e1b0be21e8ef1da745d8d2aecbb20671658b9053"},
|
{file = "cryptography-44.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:6f76fdd6fd048576a04c5210d53aa04ca34d2ed63336d4abd306d0cbe298fddf"},
|
||||||
{file = "cryptography-44.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:abc998e0c0eee3c8a1904221d3f67dcfa76422b23620173e28c11d3e626c21bd"},
|
{file = "cryptography-44.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6c8acf6f3d1f47acb2248ec3ea261171a671f3d9428e34ad0357148d492c7864"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:660cb7312a08bc38be15b696462fa7cc7cd85c3ed9c576e81f4dc4d8b2b31591"},
|
{file = "cryptography-44.0.1-cp37-abi3-win32.whl", hash = "sha256:24979e9f2040c953a94bf3c6782e67795a4c260734e5264dceea65c8f4bae64a"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1923cb251c04be85eec9fda837661c67c1049063305d6be5721643c22dd4e2b7"},
|
{file = "cryptography-44.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:fd0ee90072861e276b0ff08bd627abec29e32a53b2be44e41dbcdf87cbee2b00"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:404fdc66ee5f83a1388be54300ae978b2efd538018de18556dde92575e05defc"},
|
{file = "cryptography-44.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a2d8a7045e1ab9b9f803f0d9531ead85f90c5f2859e653b61497228b18452008"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:c5eb858beed7835e5ad1faba59e865109f3e52b3783b9ac21e7e47dc5554e289"},
|
{file = "cryptography-44.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b8272f257cf1cbd3f2e120f14c68bff2b6bdfcc157fafdee84a1b795efd72862"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f53c2c87e0fb4b0c00fa9571082a057e37690a8f12233306161c8f4b819960b7"},
|
{file = "cryptography-44.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e8d181e90a777b63f3f0caa836844a1182f1f265687fac2115fcf245f5fbec3"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:9e6fc8a08e116fb7c7dd1f040074c9d7b51d74a8ea40d4df2fc7aa08b76b9e6c"},
|
{file = "cryptography-44.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:436df4f203482f41aad60ed1813811ac4ab102765ecae7a2bbb1dbb66dcff5a7"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:d2436114e46b36d00f8b72ff57e598978b37399d2786fd39793c36c6d5cb1c64"},
|
{file = "cryptography-44.0.1-cp39-abi3-manylinux_2_28_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4f422e8c6a28cf8b7f883eb790695d6d45b0c385a2583073f3cec434cc705e1a"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a01956ddfa0a6790d594f5b34fc1bfa6098aca434696a03cfdbe469b8ed79285"},
|
{file = "cryptography-44.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:72198e2b5925155497a5a3e8c216c7fb3e64c16ccee11f0e7da272fa93b35c4c"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-win32.whl", hash = "sha256:eca27345e1214d1b9f9490d200f9db5a874479be914199194e746c893788d417"},
|
{file = "cryptography-44.0.1-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:2a46a89ad3e6176223b632056f321bc7de36b9f9b93b2cc1cccf935a3849dc62"},
|
||||||
{file = "cryptography-44.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:708ee5f1bafe76d041b53a4f95eb28cdeb8d18da17e597d46d7833ee59b97ede"},
|
{file = "cryptography-44.0.1-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:53f23339864b617a3dfc2b0ac8d5c432625c80014c25caac9082314e9de56f41"},
|
||||||
{file = "cryptography-44.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:37d76e6863da3774cd9db5b409a9ecfd2c71c981c38788d3fcfaf177f447b731"},
|
{file = "cryptography-44.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:888fcc3fce0c888785a4876ca55f9f43787f4c5c1cc1e2e0da71ad481ff82c5b"},
|
||||||
{file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:f677e1268c4e23420c3acade68fac427fffcb8d19d7df95ed7ad17cdef8404f4"},
|
{file = "cryptography-44.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:00918d859aa4e57db8299607086f793fa7813ae2ff5a4637e318a25ef82730f7"},
|
||||||
{file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f5e7cb1e5e56ca0933b4873c0220a78b773b24d40d186b6738080b73d3d0a756"},
|
{file = "cryptography-44.0.1-cp39-abi3-win32.whl", hash = "sha256:9b336599e2cb77b1008cb2ac264b290803ec5e8e89d618a5e978ff5eb6f715d9"},
|
||||||
{file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:8b3e6eae66cf54701ee7d9c83c30ac0a1e3fa17be486033000f2a73a12ab507c"},
|
{file = "cryptography-44.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:e403f7f766ded778ecdb790da786b418a9f2394f36e8cc8b796cc056ab05f44f"},
|
||||||
{file = "cryptography-44.0.0-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:be4ce505894d15d5c5037167ffb7f0ae90b7be6f2a98f9a5c3442395501c32fa"},
|
{file = "cryptography-44.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1f9a92144fa0c877117e9748c74501bea842f93d21ee00b0cf922846d9d0b183"},
|
||||||
{file = "cryptography-44.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:62901fb618f74d7d81bf408c8719e9ec14d863086efe4185afd07c352aee1d2c"},
|
{file = "cryptography-44.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:610a83540765a8d8ce0f351ce42e26e53e1f774a6efb71eb1b41eb01d01c3d12"},
|
||||||
{file = "cryptography-44.0.0.tar.gz", hash = "sha256:cd4e834f340b4293430701e772ec543b0fbe6c2dea510a5286fe0acabe153a02"},
|
{file = "cryptography-44.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:5fed5cd6102bb4eb843e3315d2bf25fede494509bddadb81e03a859c1bc17b83"},
|
||||||
|
{file = "cryptography-44.0.1-pp310-pypy310_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:f4daefc971c2d1f82f03097dc6f216744a6cd2ac0f04c68fb935ea2ba2a0d420"},
|
||||||
|
{file = "cryptography-44.0.1-pp310-pypy310_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:94f99f2b943b354a5b6307d7e8d19f5c423a794462bde2bf310c770ba052b1c4"},
|
||||||
|
{file = "cryptography-44.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d9c5b9f698a83c8bd71e0f4d3f9f839ef244798e5ffe96febfa9714717db7af7"},
|
||||||
|
{file = "cryptography-44.0.1.tar.gz", hash = "sha256:f51f5705ab27898afda1aaa430f34ad90dc117421057782022edf0600bec5f14"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""}
|
cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""}
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0)"]
|
docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=3.0.0) ; python_version >= \"3.8\""]
|
||||||
docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"]
|
docstest = ["pyenchant (>=3)", "readme-renderer (>=30.0)", "sphinxcontrib-spelling (>=7.3.1)"]
|
||||||
nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2)"]
|
nox = ["nox (>=2024.4.15)", "nox[uv] (>=2024.3.2) ; python_version >= \"3.8\""]
|
||||||
pep8test = ["check-sdist", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"]
|
pep8test = ["check-sdist ; python_version >= \"3.8\"", "click (>=8.0.1)", "mypy (>=1.4)", "ruff (>=0.3.6)"]
|
||||||
sdist = ["build (>=1.0.0)"]
|
sdist = ["build (>=1.0.0)"]
|
||||||
ssh = ["bcrypt (>=3.1.5)"]
|
ssh = ["bcrypt (>=3.1.5)"]
|
||||||
test = ["certifi (>=2024)", "cryptography-vectors (==44.0.0)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"]
|
test = ["certifi (>=2024)", "cryptography-vectors (==44.0.1)", "pretend (>=0.7)", "pytest (>=7.4.0)", "pytest-benchmark (>=4.0)", "pytest-cov (>=2.10.1)", "pytest-xdist (>=3.5.0)"]
|
||||||
test-randomorder = ["pytest-randomly"]
|
test-randomorder = ["pytest-randomly"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -203,6 +214,7 @@ version = "0.7.1"
|
|||||||
description = "Library for building Grafana dashboards"
|
description = "Library for building Grafana dashboards"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
groups = ["dev"]
|
||||||
files = [
|
files = [
|
||||||
{file = "grafanalib-0.7.1-py3-none-any.whl", hash = "sha256:6fab5d7b837a1f2d1322ef762cd52e565ec0422707a7512765c59f668bdceb58"},
|
{file = "grafanalib-0.7.1-py3-none-any.whl", hash = "sha256:6fab5d7b837a1f2d1322ef762cd52e565ec0422707a7512765c59f668bdceb58"},
|
||||||
{file = "grafanalib-0.7.1.tar.gz", hash = "sha256:3d92bb4e92ae78fe4e21c5b252ab51f4fdcacd8523ba5a44545b897b2a375b83"},
|
{file = "grafanalib-0.7.1.tar.gz", hash = "sha256:3d92bb4e92ae78fe4e21c5b252ab51f4fdcacd8523ba5a44545b897b2a375b83"},
|
||||||
@@ -220,6 +232,7 @@ version = "3.1.5"
|
|||||||
description = "A very fast and expressive template engine."
|
description = "A very fast and expressive template engine."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
|
{file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"},
|
||||||
{file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
|
{file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"},
|
||||||
@@ -237,6 +250,7 @@ version = "3.0.2"
|
|||||||
description = "Safely add untrusted strings to HTML/XML markup."
|
description = "Safely add untrusted strings to HTML/XML markup."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
|
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
|
||||||
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
|
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
|
||||||
@@ -307,6 +321,7 @@ version = "1.3.0"
|
|||||||
description = "A network address manipulation library for Python"
|
description = "A network address manipulation library for Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.7"
|
python-versions = ">=3.7"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "netaddr-1.3.0-py3-none-any.whl", hash = "sha256:c2c6a8ebe5554ce33b7d5b3a306b71bbb373e000bbbf2350dd5213cc56e3dbbe"},
|
{file = "netaddr-1.3.0-py3-none-any.whl", hash = "sha256:c2c6a8ebe5554ce33b7d5b3a306b71bbb373e000bbbf2350dd5213cc56e3dbbe"},
|
||||||
{file = "netaddr-1.3.0.tar.gz", hash = "sha256:5c3c3d9895b551b763779ba7db7a03487dc1f8e3b385af819af341ae9ef6e48a"},
|
{file = "netaddr-1.3.0.tar.gz", hash = "sha256:5c3c3d9895b551b763779ba7db7a03487dc1f8e3b385af819af341ae9ef6e48a"},
|
||||||
@@ -321,6 +336,7 @@ version = "24.2"
|
|||||||
description = "Core utilities for Python packages"
|
description = "Core utilities for Python packages"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
|
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
|
||||||
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
|
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
|
||||||
@@ -332,6 +348,8 @@ version = "2.22"
|
|||||||
description = "C parser in Python"
|
description = "C parser in Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
|
groups = ["main"]
|
||||||
|
markers = "platform_python_implementation != \"PyPy\""
|
||||||
files = [
|
files = [
|
||||||
{file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
|
{file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
|
||||||
{file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
|
{file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
|
||||||
@@ -343,6 +361,7 @@ version = "6.0.2"
|
|||||||
description = "YAML parser and emitter for Python"
|
description = "YAML parser and emitter for Python"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
|
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
|
||||||
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
|
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
|
||||||
@@ -405,6 +424,7 @@ version = "1.0.1"
|
|||||||
description = "Resolve abstract dependencies into concrete ones"
|
description = "Resolve abstract dependencies into concrete ones"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = "*"
|
python-versions = "*"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "resolvelib-1.0.1-py2.py3-none-any.whl", hash = "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf"},
|
{file = "resolvelib-1.0.1-py2.py3-none-any.whl", hash = "sha256:d2da45d1a8dfee81bdd591647783e340ef3bcb104b54c383f70d422ef5cc7dbf"},
|
||||||
{file = "resolvelib-1.0.1.tar.gz", hash = "sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309"},
|
{file = "resolvelib-1.0.1.tar.gz", hash = "sha256:04ce76cbd63fded2078ce224785da6ecd42b9564b1390793f64ddecbe997b309"},
|
||||||
@@ -418,25 +438,26 @@ test = ["commentjson", "packaging", "pytest"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "setuptools"
|
||||||
version = "75.6.0"
|
version = "75.8.1"
|
||||||
description = "Easily download, build, install, upgrade, and uninstall Python packages"
|
description = "Easily download, build, install, upgrade, and uninstall Python packages"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.9"
|
python-versions = ">=3.9"
|
||||||
|
groups = ["main"]
|
||||||
files = [
|
files = [
|
||||||
{file = "setuptools-75.6.0-py3-none-any.whl", hash = "sha256:ce74b49e8f7110f9bf04883b730f4765b774ef3ef28f722cce7c273d253aaf7d"},
|
{file = "setuptools-75.8.1-py3-none-any.whl", hash = "sha256:3bc32c0b84c643299ca94e77f834730f126efd621de0cc1de64119e0e17dab1f"},
|
||||||
{file = "setuptools-75.6.0.tar.gz", hash = "sha256:8199222558df7c86216af4f84c30e9b34a61d8ba19366cc914424cdbd28252f6"},
|
{file = "setuptools-75.8.1.tar.gz", hash = "sha256:65fb779a8f28895242923582eadca2337285f0891c2c9e160754df917c3d2530"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.7.0)"]
|
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.8.0) ; sys_platform != \"cygwin\""]
|
||||||
core = ["importlib_metadata (>=6)", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
|
core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.collections", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging", "packaging (>=24.2)", "platformdirs (>=4.2.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"]
|
||||||
cover = ["pytest-cov"]
|
cover = ["pytest-cov"]
|
||||||
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
|
doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
|
||||||
enabler = ["pytest-enabler (>=2.2)"]
|
enabler = ["pytest-enabler (>=2.2)"]
|
||||||
test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
|
test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"]
|
||||||
type = ["importlib_metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (>=1.12,<1.14)", "pytest-mypy"]
|
type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.14.*)", "pytest-mypy"]
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.1"
|
||||||
python-versions = "^3.10"
|
python-versions = "^3.11"
|
||||||
content-hash = "334448cb0c7d192f0e10987a995ecefca5e136733cce4dd15dcc2238f1c371c8"
|
content-hash = "aee53e668f5f3a99526ea72999ad57256351453f5331f71c0abf94b5bd74a0c3"
|
||||||
|
|||||||
2
poetry.toml
Normal file
2
poetry.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[virtualenvs]
|
||||||
|
in-project = true
|
||||||
@@ -6,12 +6,12 @@ authors = ["Iurii Tatishchev <itatishch@gmail.com>"]
|
|||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
[tool.poetry.dependencies]
|
||||||
python = "^3.10"
|
python = "^3.11"
|
||||||
ansible = "^10.1.0"
|
ansible = "^11.1.0"
|
||||||
ansible-vault = "^2.1.0"
|
ansible-vault = "^2.1.0"
|
||||||
netaddr = "^1.3.0"
|
netaddr = "^1.3.0"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
grafanalib = "^0.7.1"
|
grafanalib = "^0.7.1"
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
11
renovate.json
Normal file
11
renovate.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": [
|
||||||
|
"config:recommended"
|
||||||
|
],
|
||||||
|
"docker-compose": {
|
||||||
|
"fileMatch": [
|
||||||
|
"(^|/)(?:docker-)?compose[^/]*\\.ya?ml(\\.j2)?$"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
path: "{{ current_stack_dest }}/{{ item.path }}"
|
path: "{{ current_stack_dest }}/{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: "755"
|
mode: "755"
|
||||||
loop: "{{ lookup('community.general.filetree', current_stack_source) }}"
|
loop: "{{ query('community.general.filetree', current_stack_source) }}"
|
||||||
when: item.state == "directory"
|
when: item.state == "directory"
|
||||||
|
|
||||||
- name: Generate {{ current_stack_name }} deployment from templates
|
- name: Generate {{ current_stack_name }} deployment from templates
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
src: "{{ item.src }}"
|
src: "{{ item.src }}"
|
||||||
dest: "{{ current_stack_dest }}/{{ item.path | regex_replace('\\.j2$', '') }}"
|
dest: "{{ current_stack_dest }}/{{ item.path | regex_replace('\\.j2$', '') }}"
|
||||||
mode: "644"
|
mode: "644"
|
||||||
loop: "{{ lookup('community.general.filetree', current_stack_source) }}"
|
loop: "{{ query('community.general.filetree', current_stack_source) }}"
|
||||||
when: item.state == "file" and item.path | regex_search('\\.j2$')
|
when: item.state == "file" and item.path | regex_search('\\.j2$')
|
||||||
|
|
||||||
- name: Generate {{ current_stack_name }} deployment from static files
|
- name: Generate {{ current_stack_name }} deployment from static files
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
src: "{{ item.src }}"
|
src: "{{ item.src }}"
|
||||||
dest: "{{ current_stack_dest }}/{{ item.path }}"
|
dest: "{{ current_stack_dest }}/{{ item.path }}"
|
||||||
mode: "644"
|
mode: "644"
|
||||||
loop: "{{ lookup('community.general.filetree', current_stack_source) }}"
|
loop: "{{ query('community.general.filetree', current_stack_source) }}"
|
||||||
when: item.state == "file" and not item.path | regex_search('\\.j2$')
|
when: item.state == "file" and not item.path | regex_search('\\.j2$')
|
||||||
|
|
||||||
- name: Deploy docker-compose for {{ current_stack_name }}
|
- name: Deploy docker-compose for {{ current_stack_name }}
|
||||||
|
|||||||
@@ -28,8 +28,12 @@
|
|||||||
collection: apps
|
collection: apps
|
||||||
stacks:
|
stacks:
|
||||||
- gitea
|
- gitea
|
||||||
|
- woodpecker
|
||||||
|
- syncthing
|
||||||
- nextcloud
|
- nextcloud
|
||||||
- jellyfin
|
- jellyfin
|
||||||
- arrstack
|
- arrstack
|
||||||
- vpgen
|
- vpgen
|
||||||
|
- pgrok
|
||||||
|
- minecruft
|
||||||
import_tasks: deploy_collection.yml
|
import_tasks: deploy_collection.yml
|
||||||
|
|||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
{{ helpers.default_network(249) | indent(2) }}
|
{{ helpers.default_network(249) | indent(2) }}
|
||||||
traefik_traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
gluetun:
|
gluetun:
|
||||||
@@ -11,14 +9,13 @@ services:
|
|||||||
container_name: gluetun
|
container_name: gluetun
|
||||||
cap_add:
|
cap_add:
|
||||||
- NET_ADMIN
|
- NET_ADMIN
|
||||||
|
devices:
|
||||||
|
- /dev/net/tun:/dev/net/tun
|
||||||
sysctls:
|
sysctls:
|
||||||
- net.ipv6.conf.all.disable_ipv6=0
|
- net.ipv6.conf.all.disable_ipv6=0
|
||||||
env_file:
|
env_file:
|
||||||
- .env.gluetun
|
- .env.gluetun
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/arrstack/gluetun:/gluetun
|
- {{ base_volume_path }}/arrstack/gluetun:/gluetun
|
||||||
|
|
||||||
@@ -49,9 +46,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- qbittorrent
|
- qbittorrent
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/arrstack/config/prowlarr:/config
|
- {{ base_volume_path }}/arrstack/config/prowlarr:/config
|
||||||
|
|
||||||
@@ -63,9 +57,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- qbittorrent
|
- qbittorrent
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/arrstack/config/sonarr:/config
|
- {{ base_volume_path }}/arrstack/config/sonarr:/config
|
||||||
- {{ base_volume_path }}/arrstack/downloads:/downloads
|
- {{ base_volume_path }}/arrstack/downloads:/downloads
|
||||||
@@ -79,9 +70,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- qbittorrent
|
- qbittorrent
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/arrstack/config/radarr:/config
|
- {{ base_volume_path }}/arrstack/config/radarr:/config
|
||||||
- {{ base_volume_path }}/arrstack/downloads:/downloads
|
- {{ base_volume_path }}/arrstack/downloads:/downloads
|
||||||
@@ -25,5 +25,7 @@ GITEA__security__INTERNAL_TOKEN={{ internal_token }}
|
|||||||
|
|
||||||
GITEA__oauth2__JWT_SECRET={{ jwt_secret }}
|
GITEA__oauth2__JWT_SECRET={{ jwt_secret }}
|
||||||
|
|
||||||
|
GITEA__webhook__ALLOWED_HOST_LIST="external,woodpecker.{{ domain }}"
|
||||||
|
|
||||||
# Indexer
|
# Indexer
|
||||||
GITEA__indexer__REPO_INDEXER_ENABLED=true
|
GITEA__indexer__REPO_INDEXER_ENABLED=true
|
||||||
|
|||||||
@@ -2,21 +2,16 @@
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
{{ helpers.default_network(199) | indent(2) }}
|
{{ helpers.default_network(199) | indent(2) }}
|
||||||
traefik_traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
image: gitea/gitea:1.22
|
image: gitea/gitea
|
||||||
container_name: gitea_server
|
container_name: gitea_server
|
||||||
labels:
|
labels:
|
||||||
- {{ helpers.traefik_labels('gitea', port='3000') | indent(6) }}
|
- {{ helpers.traefik_labels('gitea', port='3000') | indent(6) }}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- .env.gitea
|
- .env.gitea
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/gitea/gitea:/data
|
- {{ base_volume_path }}/gitea/gitea:/data
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -27,7 +22,5 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- .env.db
|
- .env.db
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/gitea/postgres:/var/lib/postgresql/data
|
- {{ base_volume_path }}/gitea/postgres:/var/lib/postgresql/data
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
{{ helpers.default_network(197) | indent(2) }}
|
{{ helpers.default_network(197) | indent(2) }}
|
||||||
traefik_traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
jellyfin:
|
jellyfin:
|
||||||
@@ -14,9 +12,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- .env.jellyfin
|
- .env.jellyfin
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/jellyfin/config:/config
|
- {{ base_volume_path }}/jellyfin/config:/config
|
||||||
- {{ base_volume_path }}/jellyfin/cache:/cache
|
- {{ base_volume_path }}/jellyfin/cache:/cache
|
||||||
25
roles/alpina/templates/apps/minecruft/.env.minecruft.j2
Normal file
25
roles/alpina/templates/apps/minecruft/.env.minecruft.j2
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
EULA=true
|
||||||
|
|
||||||
|
CF_API_KEY="{{ minecruft_cf_api_key }}"
|
||||||
|
TYPE=AUTO_CURSEFORGE
|
||||||
|
CF_PAGE_URL=https://www.curseforge.com/minecraft/modpacks/create-arcane-engineering/files/4852034
|
||||||
|
CF_EXCLUDE_MODS=591711
|
||||||
|
CURSEFORGE_FILES=https://www.curseforge.com/minecraft/mc-mods/simple-voice-chat/files/7011546
|
||||||
|
|
||||||
|
MEMORY=16G
|
||||||
|
ENABLE_ROLLING_LOGS=true
|
||||||
|
#TZ=America/New_York
|
||||||
|
|
||||||
|
OVERRIDE_SERVER_PROPERTIES=true
|
||||||
|
DIFFICULTY=normal
|
||||||
|
MAX_TICK_TIME=-1
|
||||||
|
ALLOW_FLIGHT=true
|
||||||
|
OPS=Litoprobka,CaZzzer
|
||||||
|
VIEW_DISTANCE=12
|
||||||
|
MAX_PLAYERS=16
|
||||||
|
PVP=false
|
||||||
|
LEVEL_TYPE=normal
|
||||||
|
LEVEL_SEED=133769
|
||||||
|
MOTD="Remember the Cavendish"
|
||||||
|
ONLINE_MODE=false
|
||||||
|
SPAWN_PROTECTION=0
|
||||||
13
roles/alpina/templates/apps/minecruft/compose.yml.j2
Normal file
13
roles/alpina/templates/apps/minecruft/compose.yml.j2
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
services:
|
||||||
|
minecruft:
|
||||||
|
image: itzg/minecraft-server:java17-alpine
|
||||||
|
container_name: minecruft
|
||||||
|
ports:
|
||||||
|
- 25565:25565
|
||||||
|
- 25565:25565/udp
|
||||||
|
- 24454:24454/udp
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file: .env.minecruft
|
||||||
|
volumes:
|
||||||
|
- {{ base_volume_path }}/minecruft/data:/data
|
||||||
|
- {{ base_volume_path }}/minecruft/downloads:/downloads
|
||||||
@@ -1 +0,0 @@
|
|||||||
NEXTCLOUD_VERSION=30-apache
|
|
||||||
@@ -2,13 +2,10 @@
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
{{ helpers.default_network(198) | indent(2) }}
|
{{ helpers.default_network(198) | indent(2) }}
|
||||||
traefik_traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
app:
|
app:
|
||||||
image: nextcloud:${NEXTCLOUD_VERSION}
|
image: &nextcloud_image nextcloud:stable-apache
|
||||||
container_name: nextcloud_app
|
container_name: nextcloud_app
|
||||||
labels:
|
labels:
|
||||||
- {{ helpers.traefik_labels('nc', port='80') | indent(6) }}
|
- {{ helpers.traefik_labels('nc', port='80') | indent(6) }}
|
||||||
@@ -18,40 +15,28 @@ services:
|
|||||||
- redis
|
- redis
|
||||||
env_file:
|
env_file:
|
||||||
- .env.nextcloud
|
- .env.nextcloud
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud:/var/www/html
|
- {{ base_volume_path }}/nextcloud/nextcloud:/var/www/html
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud_config:/var/www/html/config
|
- {{ base_volume_path }}/nextcloud/nextcloud_config:/var/www/html/config
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud_data:/var/www/html/data
|
- {{ base_volume_path }}/nextcloud/nextcloud_data:/var/www/html/data
|
||||||
|
|
||||||
cron:
|
cron:
|
||||||
image: nextcloud:${NEXTCLOUD_VERSION}
|
image: *nextcloud_image
|
||||||
container_name: nextcloud_cron
|
container_name: nextcloud_cron
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- app
|
- app
|
||||||
entrypoint: /cron.sh
|
entrypoint: /cron.sh
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud:/var/www/html
|
- {{ base_volume_path }}/nextcloud/nextcloud:/var/www/html
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud_config:/var/www/html/config
|
- {{ base_volume_path }}/nextcloud/nextcloud_config:/var/www/html/config
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud_data:/var/www/html/data
|
- {{ base_volume_path }}/nextcloud/nextcloud_data:/var/www/html/data
|
||||||
|
|
||||||
notify_push:
|
notify_push:
|
||||||
image: nextcloud:${NEXTCLOUD_VERSION}
|
image: *nextcloud_image
|
||||||
container_name: nextcloud_notify_push
|
container_name: nextcloud_notify_push
|
||||||
{# TODO: Refactor this and minio -#}
|
|
||||||
labels:
|
labels:
|
||||||
- traefik.enable=true
|
- {{ helpers.traefik_labels('nc', port='7867', path_prefix='/push') | indent(6) }}
|
||||||
- traefik.http.routers.nc-notify.rule=Host(`nc.{{ domain }}`) && PathPrefix(`/push`)
|
|
||||||
- traefik.http.routers.nc-notify.entrypoints=websecure
|
|
||||||
- traefik.http.routers.nc-notify.tls=true
|
|
||||||
- traefik.http.routers.nc-notify.tls.certresolver=letsencrypt
|
|
||||||
- traefik.http.routers.nc-notify.tls.domains.0.main={{ domain }}
|
|
||||||
- traefik.http.routers.nc-notify.tls.domains.0.sans=*.{{ domain }}
|
|
||||||
- traefik.http.services.nc-notify.loadbalancer.server.port=7867
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
user: www-data
|
user: www-data
|
||||||
env_file:
|
env_file:
|
||||||
@@ -68,8 +53,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- .env.db
|
- .env.db
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/nextcloud/db:/var/lib/postgresql/data
|
- {{ base_volume_path }}/nextcloud/db:/var/lib/postgresql/data
|
||||||
|
|
||||||
@@ -79,8 +62,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- .env.redis
|
- .env.redis
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
command:
|
command:
|
||||||
- sh
|
- sh
|
||||||
- -c
|
- -c
|
||||||
31
roles/alpina/templates/apps/pgrok/compose.yml.j2
Normal file
31
roles/alpina/templates/apps/pgrok/compose.yml.j2
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{% import 'contrib/compose_helpers.j2' as helpers with context %}
|
||||||
|
|
||||||
|
networks:
|
||||||
|
{{ helpers.default_network(194) | indent(2) }}
|
||||||
|
|
||||||
|
# https://github.com/pgrok/pgrok/blob/main/docs/admin/docker.md#docker-compose
|
||||||
|
services:
|
||||||
|
server:
|
||||||
|
image: ghcr.io/pgrok/pgrokd:latest
|
||||||
|
container_name: pgrok_server
|
||||||
|
labels:
|
||||||
|
- {{ helpers.traefik_labels('pgrok', port='3320') | indent(6) }}
|
||||||
|
- {{ helpers.traefik_labels('pgrok', port='3000', wildcard=true) | indent(6) }}
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- ./pgrokd.yml:/var/opt/pgrokd/pgrokd.yml
|
||||||
|
ports:
|
||||||
|
- "2222:2222"
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
|
||||||
|
db:
|
||||||
|
image: postgres:17-alpine
|
||||||
|
container_name: pgrok_db
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- {{ base_volume_path }}/pgrok/postgres:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: pgrok
|
||||||
|
POSTGRES_USER: pgrok
|
||||||
|
POSTGRES_PASSWORD: "{{ pgrok_db_password }}"
|
||||||
29
roles/alpina/templates/apps/pgrok/pgrokd.yml.j2
Normal file
29
roles/alpina/templates/apps/pgrok/pgrokd.yml.j2
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
external_url: "https://pgrok.{{ domain }}"
|
||||||
|
web:
|
||||||
|
port: 3320
|
||||||
|
proxy:
|
||||||
|
port: 3000
|
||||||
|
scheme: https
|
||||||
|
domain: "pgrok.{{ domain }}"
|
||||||
|
sshd:
|
||||||
|
port: 2222
|
||||||
|
|
||||||
|
database:
|
||||||
|
host: db
|
||||||
|
port: 5432
|
||||||
|
user: pgrok
|
||||||
|
password: "{{ pgrok_db_password }}"
|
||||||
|
database: pgrok
|
||||||
|
|
||||||
|
identity_provider:
|
||||||
|
type: oidc
|
||||||
|
display_name: Authentik
|
||||||
|
issuer: "https://auth.{{ domain }}/application/o/pgrok/"
|
||||||
|
client_id: "pgrok"
|
||||||
|
client_secret: "{{ auth_pgrok_client_secret }}"
|
||||||
|
field_mapping:
|
||||||
|
identifier: "preferred_username"
|
||||||
|
display_name: "name"
|
||||||
|
email: "email"
|
||||||
|
# # The required domain name, "field_mapping.email" is required to set for this to work.
|
||||||
|
# required_domain: "example.com"
|
||||||
16
roles/alpina/templates/apps/syncthing/compose.yml.j2
Normal file
16
roles/alpina/templates/apps/syncthing/compose.yml.j2
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{% import 'contrib/compose_helpers.j2' as helpers with context %}
|
||||||
|
|
||||||
|
networks:
|
||||||
|
{{ helpers.default_network(193) | indent(2) }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
syncthing:
|
||||||
|
image: linuxserver/syncthing
|
||||||
|
container_name: syncthing
|
||||||
|
labels:
|
||||||
|
- {{ helpers.traefik_labels('sync', port='8384', auth=true) | indent(6) }}
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- {{ base_volume_path }}/syncthing/config:/config
|
||||||
|
- {{ base_volume_path }}/syncthing/data:/data
|
||||||
@@ -1,8 +1,17 @@
|
|||||||
DATABASE_URL=file:/data/vpgen.db
|
DATABASE_URL=file:/data/vpgen.db
|
||||||
|
|
||||||
AUTH_DOMAIN=auth.{{ domain }}
|
PUBLIC_AUTH_AUTHENTIK_ENABLE=1
|
||||||
AUTH_CLIENT_ID=vpgen
|
AUTH_AUTHENTIK_REQUIRE_INVITE=0
|
||||||
AUTH_CLIENT_SECRET={{ auth_vpgen_client_secret }}
|
AUTH_AUTHENTIK_DOMAIN="auth.{{ domain }}"
|
||||||
|
AUTH_AUTHENTIK_CLIENT_ID=vpgen
|
||||||
|
AUTH_AUTHENTIK_CLIENT_SECRET="{{ auth_vpgen_client_secret }}"
|
||||||
|
|
||||||
|
PUBLIC_AUTH_GOOGLE_ENABLE=1
|
||||||
|
AUTH_GOOGLE_REQUIRE_INVITE=1
|
||||||
|
AUTH_GOOGLE_CLIENT_ID="{{ google_consumer_key }}"
|
||||||
|
AUTH_GOOGLE_CLIENT_SECRET="{{ google_consumer_secret }}"
|
||||||
|
|
||||||
|
AUTH_INVITE_TOKEN="{{ vpgen_auth_invite_token }}"
|
||||||
|
|
||||||
OPNSENSE_API_URL={{ vpgen_opnsense_api_url }}
|
OPNSENSE_API_URL={{ vpgen_opnsense_api_url }}
|
||||||
OPNSENSE_API_KEY={{ vpgen_opnsense_api_key }}
|
OPNSENSE_API_KEY={{ vpgen_opnsense_api_key }}
|
||||||
|
|||||||
35
roles/alpina/templates/apps/woodpecker/compose.yml.j2
Normal file
35
roles/alpina/templates/apps/woodpecker/compose.yml.j2
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{% import 'contrib/compose_helpers.j2' as helpers with context %}
|
||||||
|
|
||||||
|
networks:
|
||||||
|
{{ helpers.default_network(195) | indent(2) }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
woodpecker-server:
|
||||||
|
image: woodpeckerci/woodpecker-server:v3
|
||||||
|
container_name: woodpecker_server
|
||||||
|
labels:
|
||||||
|
- {{ helpers.traefik_labels('woodpecker', port='8000') | indent(6) }}
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- {{ base_volume_path }}/woodpecker/data:/var/lib/woodpecker
|
||||||
|
environment:
|
||||||
|
- WOODPECKER_OPEN=true
|
||||||
|
- WOODPECKER_HOST=https://woodpecker.{{ domain }}
|
||||||
|
- WOODPECKER_GITEA=true
|
||||||
|
- WOODPECKER_GITEA_URL=https://gitea.{{ domain }}
|
||||||
|
- WOODPECKER_GITEA_CLIENT={{ woodpecker_gitea_client_id }}
|
||||||
|
- WOODPECKER_GITEA_SECRET={{ woodpecker_gitea_client_secret }}
|
||||||
|
- WOODPECKER_AGENT_SECRET={{ woodpecker_agent_secret }}
|
||||||
|
|
||||||
|
woodpecker-agent:
|
||||||
|
image: woodpeckerci/woodpecker-agent:v3
|
||||||
|
container_name: woodpecker_agent
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- woodpecker-server
|
||||||
|
volumes:
|
||||||
|
- {{ base_volume_path }}/woodpecker/agent_config:/etc/woodpecker
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
- WOODPECKER_SERVER=woodpecker-server:9000
|
||||||
|
- WOODPECKER_AGENT_SECRET={{ woodpecker_agent_secret }}
|
||||||
@@ -40,6 +40,13 @@ entries:
|
|||||||
"ui_group": "Apps",
|
"ui_group": "Apps",
|
||||||
"allowed_for_groups": ["admins", "users", "vpgen"],
|
"allowed_for_groups": ["admins", "users", "vpgen"],
|
||||||
},
|
},
|
||||||
|
"Pgrok": {
|
||||||
|
"redirect_uri": "https://pgrok."~ domain ~"/-/oidc/callback",
|
||||||
|
"icon": "https://pgrok."~ domain ~"/pgrok.svg",
|
||||||
|
"client_secret": auth_pgrok_client_secret,
|
||||||
|
"ui_group": "Apps",
|
||||||
|
"allowed_for_groups": ["admins", "users"],
|
||||||
|
},
|
||||||
} -%}
|
} -%}
|
||||||
{% for app in apps.keys() -%}
|
{% for app in apps.keys() -%}
|
||||||
- identifiers:
|
- identifiers:
|
||||||
|
|||||||
@@ -13,6 +13,13 @@ entries:
|
|||||||
"ui_group": "Services",
|
"ui_group": "Services",
|
||||||
"allowed_for_groups": ["admins"],
|
"allowed_for_groups": ["admins"],
|
||||||
},
|
},
|
||||||
|
"Syncthing": {
|
||||||
|
"host": "sync",
|
||||||
|
"icon": "https://sync."~ domain ~"/assets/img/favicon-default.png",
|
||||||
|
"unauthenticated_paths": "^/assets/img/favicon-default.png$",
|
||||||
|
"ui_group": "Apps",
|
||||||
|
"allowed_for_groups": ["admins"],
|
||||||
|
},
|
||||||
"qBit": {
|
"qBit": {
|
||||||
"host": "qbit",
|
"host": "qbit",
|
||||||
"icon": "https://qbit."~ domain ~"/images/qbittorrent-tray.svg",
|
"icon": "https://qbit."~ domain ~"/images/qbittorrent-tray.svg",
|
||||||
|
|||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
{{ helpers.default_network(253) | indent(2) }}
|
{{ helpers.default_network(253) | indent(2) }}
|
||||||
traefik_traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
@@ -17,13 +15,11 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# Port forward is needed because traefik can't resolve the container name from the host network
|
# Port forward is needed because traefik can't resolve the container name from the host network
|
||||||
ports:
|
ports:
|
||||||
- "9000:9000"
|
- "127.0.0.1:9000:9000"
|
||||||
|
- "[::1]:9000:9000"
|
||||||
command: server
|
command: server
|
||||||
env_file:
|
env_file:
|
||||||
- .env.authentik
|
- .env.authentik
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
|
|
||||||
worker:
|
worker:
|
||||||
image: ghcr.io/goauthentik/server:latest
|
image: ghcr.io/goauthentik/server:latest
|
||||||
19
roles/alpina/templates/services/minio/compose.yml.j2
Normal file
19
roles/alpina/templates/services/minio/compose.yml.j2
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
{% import 'contrib/compose_helpers.j2' as helpers with context %}
|
||||||
|
|
||||||
|
networks:
|
||||||
|
{{ helpers.default_network(252) | indent(2) }}
|
||||||
|
|
||||||
|
services:
|
||||||
|
minio:
|
||||||
|
image: minio/minio:latest
|
||||||
|
container_name: minio
|
||||||
|
labels:
|
||||||
|
- {{ helpers.traefik_labels('minio', port='9090') | indent(6) }}
|
||||||
|
- {{ helpers.traefik_labels('s3', port='9000') | indent(6) }}
|
||||||
|
- {{ helpers.traefik_labels('s3', port='9000', wildcard=true) | indent(6) }}
|
||||||
|
restart: unless-stopped
|
||||||
|
command: server --console-address ":9090" /data
|
||||||
|
env_file:
|
||||||
|
- .env.minio
|
||||||
|
volumes:
|
||||||
|
- {{ base_volume_path }}/minio/data:/data
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
{% import 'contrib/compose_helpers.j2' as helpers with context %}
|
|
||||||
|
|
||||||
networks:
|
|
||||||
{{ helpers.default_network(252) | indent(2) }}
|
|
||||||
traefik_traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
|
||||||
minio:
|
|
||||||
image: minio/minio:latest
|
|
||||||
container_name: minio
|
|
||||||
labels:
|
|
||||||
- {{ helpers.traefik_labels('minio', port='9090') | indent(6) }}
|
|
||||||
- traefik.http.routers.minio.service=minio
|
|
||||||
- traefik.http.routers.minio-tls.service=minio
|
|
||||||
- traefik.http.routers.minio-s3.rule=Host(`s3.{{ domain }}`) || HostRegexp(`^.+[.]s3[.]{{ domain }}`)
|
|
||||||
- traefik.http.routers.minio-s3.entrypoints=websecure
|
|
||||||
- traefik.http.routers.minio-s3.tls=true
|
|
||||||
- traefik.http.routers.minio-s3.tls.certresolver=letsencrypt
|
|
||||||
- traefik.http.routers.minio-s3.tls.domains.0.main=s3.{{ domain }}
|
|
||||||
- traefik.http.routers.minio-s3.tls.domains.0.sans=*.s3.{{ domain }}
|
|
||||||
- traefik.http.routers.minio-s3.service=minio-s3
|
|
||||||
- traefik.http.services.minio-s3.loadbalancer.server.port=9000
|
|
||||||
restart: unless-stopped
|
|
||||||
command: server --console-address ":9090" /data
|
|
||||||
env_file:
|
|
||||||
- .env.minio
|
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
|
||||||
- {{ base_volume_path }}/minio/data:/data
|
|
||||||
@@ -2,8 +2,6 @@
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
{{ helpers.default_network(251) | indent(2) }}
|
{{ helpers.default_network(251) | indent(2) }}
|
||||||
traefik_traefik:
|
|
||||||
external: true
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
grafana:
|
grafana:
|
||||||
@@ -17,9 +15,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# Needed to make config files readable (not anymore, TODO: remove)
|
# Needed to make config files readable (not anymore, TODO: remove)
|
||||||
user: "{{ remote_uid }}"
|
user: "{{ remote_uid }}"
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/monitoring/grafana:/var/lib/grafana
|
- {{ base_volume_path }}/monitoring/grafana:/var/lib/grafana
|
||||||
- ./grafana_config/grafana.ini:/etc/grafana/grafana.ini:ro
|
- ./grafana_config/grafana.ini:/etc/grafana/grafana.ini:ro
|
||||||
@@ -27,7 +22,7 @@ services:
|
|||||||
{# - ./grafana_config:/etc/grafana:ro#}
|
{# - ./grafana_config:/etc/grafana:ro#}
|
||||||
|
|
||||||
loki:
|
loki:
|
||||||
image: grafana/loki:latest
|
image: grafana/loki:3.5
|
||||||
container_name: loki
|
container_name: loki
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# Needed to make config files readable (not anymore, TODO: remove)
|
# Needed to make config files readable (not anymore, TODO: remove)
|
||||||
@@ -36,7 +31,8 @@ services:
|
|||||||
- -config.file=/etc/loki/loki-config.yaml
|
- -config.file=/etc/loki/loki-config.yaml
|
||||||
# Port forward is needed because not possible to resolve the container name from the host network
|
# Port forward is needed because not possible to resolve the container name from the host network
|
||||||
ports:
|
ports:
|
||||||
- 3100:3100
|
- "127.0.0.1:3100:3100"
|
||||||
|
- "[::1]:3100:3100"
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/monitoring/loki:/loki
|
- {{ base_volume_path }}/monitoring/loki:/loki
|
||||||
- ./loki_config:/etc/loki:ro
|
- ./loki_config:/etc/loki:ro
|
||||||
@@ -44,7 +40,7 @@ services:
|
|||||||
- /tmp/loki
|
- /tmp/loki
|
||||||
|
|
||||||
promtail:
|
promtail:
|
||||||
image: grafana/promtail:latest
|
image: grafana/promtail:3.5
|
||||||
container_name: promtail
|
container_name: promtail
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
command:
|
command:
|
||||||
@@ -103,9 +99,6 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
- .env.influxdb
|
- .env.influxdb
|
||||||
networks:
|
|
||||||
- default
|
|
||||||
- traefik_traefik
|
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/monitoring/influxdb:/var/lib/influxdb2
|
- {{ base_volume_path }}/monitoring/influxdb:/var/lib/influxdb2
|
||||||
|
|
||||||
@@ -1,27 +1,81 @@
|
|||||||
from grafanalib.core import Template
|
from attrs import define
|
||||||
|
from grafanalib.core import Template, TimeSeries, Dashboard, HIDE_VARIABLE, Target
|
||||||
|
|
||||||
# TODO: consider default params for common params like line width, show points, tooltip
|
CONF_SUPPORT_LOKI = True
|
||||||
|
CONF_SUPPORT_ZFS = True
|
||||||
|
|
||||||
PrometheusTemplate = Template(
|
CONF_DATASOURCE_VAR_PROM = 'prom_datasource'
|
||||||
name='datasource',
|
CONF_DATASOURCE_VAR_LOKI = 'loki_datasource'
|
||||||
|
|
||||||
|
prom_datasource = f'${{{CONF_DATASOURCE_VAR_PROM}}}'
|
||||||
|
loki_datasource = f'${{{CONF_DATASOURCE_VAR_LOKI}}}'
|
||||||
|
|
||||||
|
prom_template = Template(
|
||||||
|
name=CONF_DATASOURCE_VAR_PROM,
|
||||||
type='datasource',
|
type='datasource',
|
||||||
label='Prometheus',
|
label='Prometheus',
|
||||||
query='prometheus',
|
query='prometheus',
|
||||||
|
hide=HIDE_VARIABLE,
|
||||||
)
|
)
|
||||||
|
|
||||||
# TODO: this slightly less (clown emoji), normal Target gave me errors in grafana
|
loki_template = Template(
|
||||||
|
name=CONF_DATASOURCE_VAR_LOKI,
|
||||||
|
type='datasource',
|
||||||
|
label='Loki',
|
||||||
|
query='loki',
|
||||||
|
hide=HIDE_VARIABLE,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@define
|
||||||
|
class MyDashboard(Dashboard):
|
||||||
|
"""Wrapper class for Dashboard with some default values"""
|
||||||
|
timezone: str = 'browser'
|
||||||
|
sharedCrosshair: bool = True
|
||||||
|
|
||||||
|
|
||||||
|
@define
|
||||||
|
class MyTimeSeries(TimeSeries):
|
||||||
|
"""Wrapper class for TimeSeries with some default values and custom fields"""
|
||||||
|
fillOpacity: int = 10
|
||||||
|
lineWidth: int = 1
|
||||||
|
showPoints: str = 'never'
|
||||||
|
tooltipMode: str = 'multi'
|
||||||
|
maxDataPoints: int = None
|
||||||
|
|
||||||
|
# new fields
|
||||||
|
axisCenteredZero: bool = False
|
||||||
|
|
||||||
|
def to_json_data(self):
|
||||||
|
data = super().to_json_data()
|
||||||
|
data['fieldConfig']['defaults']['custom']['axisCenteredZero'] = self.axisCenteredZero
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
@define
|
||||||
|
class PromTarget(Target):
|
||||||
|
"""Wrapper class for Target with default prometheus datasource"""
|
||||||
|
datasource: str = prom_datasource
|
||||||
|
|
||||||
|
|
||||||
|
@define
|
||||||
class LokiTarget(object):
|
class LokiTarget(object):
|
||||||
def __init__(self, loki_datasource, expr, legendFormat, refId):
|
"""Custom class for Loki Target, because normal Target gave errors in grafana"""
|
||||||
self.loki_datasource = loki_datasource
|
expr: str
|
||||||
self.expr = expr
|
legendFormat: str
|
||||||
self.legendFormat = legendFormat
|
datasource: str = loki_datasource
|
||||||
self.refId = refId
|
refId: str = None
|
||||||
|
queryType: str = 'range'
|
||||||
|
|
||||||
def to_json_data(self):
|
def to_json_data(self):
|
||||||
return {
|
return {
|
||||||
'datasource': self.loki_datasource,
|
'datasource': self.datasource,
|
||||||
'expr': self.expr,
|
'expr': self.expr,
|
||||||
'legendFormat': self.legendFormat,
|
'legendFormat': self.legendFormat,
|
||||||
'refId': self.refId,
|
'refId': self.refId,
|
||||||
'queryType': 'range',
|
'queryType': self.queryType,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def filter_none(l: list):
|
||||||
|
return [i for i in l if i is not None]
|
||||||
|
|||||||
@@ -1,16 +1,10 @@
|
|||||||
from grafanalib.core import (
|
from grafanalib.core import GridPos, Templating, Template, Logs
|
||||||
Dashboard, TimeSeries,
|
|
||||||
Target, GridPos,
|
|
||||||
Templating, Template, REFRESH_ON_TIME_RANGE_CHANGE, Logs
|
|
||||||
)
|
|
||||||
from grafanalib.formatunits import BYTES_IEC, SECONDS, BYTES_SEC_IEC
|
from grafanalib.formatunits import BYTES_IEC, SECONDS, BYTES_SEC_IEC
|
||||||
|
|
||||||
from common import LokiTarget, PrometheusTemplate
|
from common import LokiTarget, prom_template, loki_template, MyTimeSeries, MyDashboard, CONF_SUPPORT_LOKI, filter_none, \
|
||||||
|
prom_datasource, PromTarget
|
||||||
|
|
||||||
prom_datasource='${datasource}'
|
dashboard = MyDashboard(
|
||||||
loki_datasource='loki'
|
|
||||||
|
|
||||||
dashboard = Dashboard(
|
|
||||||
title='Containers',
|
title='Containers',
|
||||||
uid='containers',
|
uid='containers',
|
||||||
description='Data for compose projects from default Prometheus datasource collected by Cadvisor',
|
description='Data for compose projects from default Prometheus datasource collected by Cadvisor',
|
||||||
@@ -18,8 +12,9 @@ dashboard = Dashboard(
|
|||||||
'linux',
|
'linux',
|
||||||
'docker',
|
'docker',
|
||||||
],
|
],
|
||||||
templating=Templating(list=[
|
templating=Templating(list=filter_none([
|
||||||
PrometheusTemplate,
|
prom_template,
|
||||||
|
loki_template if CONF_SUPPORT_LOKI else None,
|
||||||
Template(
|
Template(
|
||||||
name='compose_project',
|
name='compose_project',
|
||||||
label='Compose Project',
|
label='Compose Project',
|
||||||
@@ -27,7 +22,6 @@ dashboard = Dashboard(
|
|||||||
query='label_values({__name__=~"container.*"}, container_label_com_docker_compose_project)',
|
query='label_values({__name__=~"container.*"}, container_label_com_docker_compose_project)',
|
||||||
includeAll=True,
|
includeAll=True,
|
||||||
multi=True,
|
multi=True,
|
||||||
refresh=REFRESH_ON_TIME_RANGE_CHANGE,
|
|
||||||
),
|
),
|
||||||
Template(
|
Template(
|
||||||
name='container_name',
|
name='container_name',
|
||||||
@@ -36,7 +30,6 @@ dashboard = Dashboard(
|
|||||||
query='label_values({__name__=~"container.*", container_label_com_docker_compose_project=~"$compose_project"}, name)',
|
query='label_values({__name__=~"container.*", container_label_com_docker_compose_project=~"$compose_project"}, name)',
|
||||||
includeAll=True,
|
includeAll=True,
|
||||||
multi=True,
|
multi=True,
|
||||||
refresh=REFRESH_ON_TIME_RANGE_CHANGE,
|
|
||||||
),
|
),
|
||||||
Template(
|
Template(
|
||||||
name='logs_query',
|
name='logs_query',
|
||||||
@@ -44,67 +37,48 @@ dashboard = Dashboard(
|
|||||||
query='',
|
query='',
|
||||||
type='textbox',
|
type='textbox',
|
||||||
),
|
),
|
||||||
]),
|
])),
|
||||||
timezone='browser',
|
panels=filter_none([
|
||||||
panels=[
|
MyTimeSeries(
|
||||||
TimeSeries(
|
|
||||||
title='Container Memory Usage',
|
title='Container Memory Usage',
|
||||||
unit=BYTES_IEC,
|
unit=BYTES_IEC,
|
||||||
gridPos=GridPos(h=8, w=12, x=0, y=0),
|
gridPos=GridPos(h=8, w=12, x=0, y=0),
|
||||||
lineWidth=2,
|
|
||||||
fillOpacity=10,
|
|
||||||
showPoints='never',
|
|
||||||
stacking={'mode': 'normal'},
|
|
||||||
tooltipMode='all',
|
|
||||||
tooltipSort='desc',
|
tooltipSort='desc',
|
||||||
|
stacking={'mode': 'normal'},
|
||||||
targets=[
|
targets=[
|
||||||
Target(
|
PromTarget(
|
||||||
datasource=prom_datasource,
|
|
||||||
expr='max by (name) (container_memory_usage_bytes{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"})',
|
expr='max by (name) (container_memory_usage_bytes{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"})',
|
||||||
legendFormat='{{ name }}',
|
legendFormat='{{ name }}',
|
||||||
refId='A',
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
TimeSeries(
|
MyTimeSeries(
|
||||||
title='Container CPU Usage',
|
title='Container CPU Usage',
|
||||||
unit=SECONDS,
|
unit=SECONDS,
|
||||||
gridPos=GridPos(h=8, w=12, x=12, y=0),
|
gridPos=GridPos(h=8, w=12, x=12, y=0),
|
||||||
lineWidth=2,
|
|
||||||
fillOpacity=10,
|
|
||||||
showPoints='never',
|
|
||||||
tooltipMode='all',
|
|
||||||
tooltipSort='desc',
|
tooltipSort='desc',
|
||||||
|
stacking={'mode': 'normal'},
|
||||||
targets=[
|
targets=[
|
||||||
Target(
|
PromTarget(
|
||||||
datasource=prom_datasource,
|
expr='max by (name) (irate(container_cpu_usage_seconds_total{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"}[$__rate_interval]))',
|
||||||
expr='max by (name) (rate(container_cpu_usage_seconds_total{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"}[$__rate_interval]))',
|
|
||||||
legendFormat='{{ name }}',
|
legendFormat='{{ name }}',
|
||||||
refId='A',
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
TimeSeries(
|
MyTimeSeries(
|
||||||
title='Container Network Traffic',
|
title='Container Network Traffic',
|
||||||
unit=BYTES_SEC_IEC,
|
unit=BYTES_SEC_IEC,
|
||||||
gridPos=GridPos(h=8, w=12, x=0, y=8),
|
gridPos=GridPos(h=8, w=12, x=0, y=8),
|
||||||
lineWidth=2,
|
|
||||||
fillOpacity=10,
|
|
||||||
showPoints='never',
|
|
||||||
tooltipMode='all',
|
|
||||||
tooltipSort='desc',
|
tooltipSort='desc',
|
||||||
|
axisCenteredZero=True,
|
||||||
targets=[
|
targets=[
|
||||||
Target(
|
PromTarget(
|
||||||
datasource=prom_datasource,
|
expr='max by (name) (irate(container_network_receive_bytes_total{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"}[$__rate_interval]))',
|
||||||
expr='max by (name) (rate(container_network_receive_bytes_total{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"}[$__rate_interval]))',
|
|
||||||
legendFormat="rx {{ name }}",
|
legendFormat="rx {{ name }}",
|
||||||
refId='A',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource=prom_datasource,
|
expr='-max by (name) (irate(container_network_transmit_bytes_total{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"}[$__rate_interval]))',
|
||||||
expr='-max by (name) (rate(container_network_transmit_bytes_total{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"}[$__rate_interval]))',
|
|
||||||
legendFormat="tx {{ name }}",
|
legendFormat="tx {{ name }}",
|
||||||
refId='B',
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -118,12 +92,10 @@ dashboard = Dashboard(
|
|||||||
dedupStrategy='numbers',
|
dedupStrategy='numbers',
|
||||||
targets=[
|
targets=[
|
||||||
LokiTarget(
|
LokiTarget(
|
||||||
loki_datasource=loki_datasource,
|
|
||||||
expr='{compose_project=~"$compose_project", container_name=~"$container_name"} |= `$logs_query`',
|
expr='{compose_project=~"$compose_project", container_name=~"$container_name"} |= `$logs_query`',
|
||||||
legendFormat='{{ container_name }}',
|
legendFormat='{{ container_name }}',
|
||||||
refId='A',
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
) if CONF_SUPPORT_LOKI else None,
|
||||||
],
|
]),
|
||||||
).auto_panel_ids()
|
).auto_panel_ids()
|
||||||
|
|||||||
@@ -1,139 +1,159 @@
|
|||||||
from grafanalib.core import Dashboard, Templating, Template, TimeSeries, PERCENT_UNIT_FORMAT, GridPos, Target
|
from grafanalib.core import Templating, Template, GridPos
|
||||||
from grafanalib.formatunits import BYTES_IEC
|
from grafanalib.formatunits import BYTES_IEC, BITS_SEC, PERCENT_UNIT
|
||||||
|
|
||||||
from common import PrometheusTemplate
|
from common import prom_template, MyTimeSeries, MyDashboard, CONF_SUPPORT_ZFS, PromTarget, prom_datasource
|
||||||
from node_consts import CPU_BASIC_COLORS, MEMORY_BASIC_COLORS
|
|
||||||
|
|
||||||
dashboard = Dashboard(
|
dashboard = MyDashboard(
|
||||||
title='Node Exporter',
|
title='Node Exporter',
|
||||||
uid='node',
|
uid='node',
|
||||||
description='Node Exporter (not quite full)',
|
description='Node Exporter (not quite full)',
|
||||||
tags=[
|
tags=[
|
||||||
'linux',
|
'linux',
|
||||||
],
|
],
|
||||||
timezone='browser',
|
|
||||||
templating=Templating(list=[
|
templating=Templating(list=[
|
||||||
# Datasource
|
# Datasource
|
||||||
PrometheusTemplate,
|
prom_template,
|
||||||
# Job
|
# Job
|
||||||
Template(
|
Template(
|
||||||
name='job',
|
name='job',
|
||||||
label='Job',
|
label='Job',
|
||||||
dataSource='${datasource}',
|
dataSource=prom_datasource,
|
||||||
query='label_values(node_uname_info, job)',
|
query='label_values(node_uname_info, job)',
|
||||||
),
|
),
|
||||||
# Instance
|
# Instance
|
||||||
Template(
|
Template(
|
||||||
name='instance',
|
name='instance',
|
||||||
label='Instance',
|
label='Instance',
|
||||||
dataSource='${datasource}',
|
dataSource=prom_datasource,
|
||||||
query='label_values(node_uname_info{job="$job"}, instance)',
|
query='label_values(node_uname_info{job="$job"}, instance)',
|
||||||
),
|
),
|
||||||
]),
|
]),
|
||||||
panels=[
|
panels=[
|
||||||
# CPU Basic
|
# CPU Basic
|
||||||
TimeSeries(
|
MyTimeSeries(
|
||||||
title='CPU Basic',
|
title='CPU Basic',
|
||||||
description='Basic CPU usage info',
|
description='Basic CPU usage info',
|
||||||
unit=PERCENT_UNIT_FORMAT,
|
unit=PERCENT_UNIT,
|
||||||
gridPos=GridPos(h=8, w=12, x=0, y=0),
|
gridPos=GridPos(h=8, w=12, x=0, y=0),
|
||||||
lineWidth=1,
|
stacking={'mode': 'percent'},
|
||||||
fillOpacity=30,
|
|
||||||
showPoints='never',
|
|
||||||
stacking={'mode': 'percent', 'group': 'A'},
|
|
||||||
tooltipMode='all',
|
|
||||||
tooltipSort='desc',
|
|
||||||
targets=[
|
targets=[
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="system"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="system"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
||||||
legendFormat='Busy System',
|
legendFormat='Busy System',
|
||||||
refId='A',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="user"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="user"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
||||||
legendFormat='Busy User',
|
legendFormat='Busy User',
|
||||||
refId='B',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="iowait"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="iowait"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
||||||
legendFormat='Busy Iowait',
|
legendFormat='Busy Iowait',
|
||||||
refId='C',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode=~".*irq"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode=~".*irq"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
||||||
legendFormat='Busy IRQs',
|
legendFormat='Busy IRQs',
|
||||||
refId='D',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode!="idle",mode!="user",mode!="system",mode!="iowait",mode!="irq",mode!="softirq"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode!="idle",mode!="user",mode!="system",mode!="iowait",mode!="irq",mode!="softirq"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
||||||
legendFormat='Busy Other',
|
legendFormat='Busy Other',
|
||||||
refId='E',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="idle"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
expr='sum(irate(node_cpu_seconds_total{instance="$instance",job="$job", mode="idle"}[$__rate_interval])) / scalar(count(count(node_cpu_seconds_total{instance="$instance",job="$job"}) by (cpu)))',
|
||||||
legendFormat='Idle',
|
legendFormat='Idle',
|
||||||
refId='F',
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
# Extra JSON for the colors
|
|
||||||
extraJson=CPU_BASIC_COLORS,
|
|
||||||
),
|
),
|
||||||
# Memory Basic
|
# Memory Basic
|
||||||
TimeSeries(
|
MyTimeSeries(
|
||||||
title='Memory Basic',
|
title='Memory Basic',
|
||||||
description='Basic memory usage',
|
description='Basic memory usage',
|
||||||
unit=BYTES_IEC,
|
unit=BYTES_IEC,
|
||||||
gridPos=GridPos(h=8, w=12, x=12, y=0),
|
gridPos=GridPos(h=8, w=12, x=12, y=0),
|
||||||
lineWidth=1,
|
stacking={'mode': 'normal'},
|
||||||
fillOpacity=30,
|
valueMin=0,
|
||||||
showPoints='never',
|
|
||||||
stacking={'mode': 'normal', 'group': 'A'},
|
|
||||||
tooltipMode='all',
|
|
||||||
tooltipSort='desc',
|
|
||||||
targets=[
|
targets=[
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='node_memory_MemTotal_bytes{instance="$instance",job="$job"}',
|
expr='node_memory_MemTotal_bytes{instance="$instance",job="$job"}',
|
||||||
format='time_series',
|
format='time_series',
|
||||||
legendFormat='RAM Total',
|
legendFormat='RAM Total',
|
||||||
refId='A',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='node_memory_MemTotal_bytes{instance="$instance",job="$job"} - node_memory_MemFree_bytes{instance="$instance",job="$job"} - (node_memory_Cached_bytes{instance="$instance",job="$job"} + node_memory_Buffers_bytes{instance="$instance",job="$job"} + node_memory_SReclaimable_bytes{instance="$instance",job="$job"})',
|
expr='node_memory_MemTotal_bytes{instance="$instance",job="$job"} - node_memory_MemFree_bytes{instance="$instance",job="$job"} - (node_memory_Cached_bytes{instance="$instance",job="$job"} + node_memory_Buffers_bytes{instance="$instance",job="$job"} + node_memory_SReclaimable_bytes{instance="$instance",job="$job"})',
|
||||||
format='time_series',
|
format='time_series',
|
||||||
legendFormat='RAM Used',
|
legendFormat='RAM Used',
|
||||||
refId='B',
|
hide=CONF_SUPPORT_ZFS,
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
expr='node_memory_MemTotal_bytes{instance="$instance",job="$job"} - node_memory_MemFree_bytes{instance="$instance",job="$job"} - (node_memory_Cached_bytes{instance="$instance",job="$job"} + node_memory_Buffers_bytes{instance="$instance",job="$job"} + node_memory_SReclaimable_bytes{instance="$instance",job="$job"}) - node_zfs_arc_size{instance="$instance",job="$job"}',
|
||||||
|
format='time_series',
|
||||||
|
legendFormat='RAM Used',
|
||||||
|
hide=not CONF_SUPPORT_ZFS,
|
||||||
|
),
|
||||||
|
PromTarget(
|
||||||
expr='node_memory_Cached_bytes{instance="$instance",job="$job"} + node_memory_Buffers_bytes{instance="$instance",job="$job"} + node_memory_SReclaimable_bytes{instance="$instance",job="$job"}',
|
expr='node_memory_Cached_bytes{instance="$instance",job="$job"} + node_memory_Buffers_bytes{instance="$instance",job="$job"} + node_memory_SReclaimable_bytes{instance="$instance",job="$job"}',
|
||||||
legendFormat='RAM Cache + Buffer',
|
legendFormat='RAM Cache + Buffer',
|
||||||
refId='C',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
expr='node_zfs_arc_size{instance="$instance",job="$job"}',
|
||||||
|
legendFormat='ZFS Arc',
|
||||||
|
hide=not CONF_SUPPORT_ZFS,
|
||||||
|
),
|
||||||
|
PromTarget(
|
||||||
expr='node_memory_MemFree_bytes{instance="$instance",job="$job"}',
|
expr='node_memory_MemFree_bytes{instance="$instance",job="$job"}',
|
||||||
legendFormat='RAM Free',
|
legendFormat='RAM Free',
|
||||||
refId='D',
|
|
||||||
),
|
),
|
||||||
Target(
|
PromTarget(
|
||||||
datasource='${datasource}',
|
|
||||||
expr='(node_memory_SwapTotal_bytes{instance="$instance",job="$job"} - node_memory_SwapFree_bytes{instance="$instance",job="$job"})',
|
expr='(node_memory_SwapTotal_bytes{instance="$instance",job="$job"} - node_memory_SwapFree_bytes{instance="$instance",job="$job"})',
|
||||||
legendFormat='SWAP Used',
|
legendFormat='SWAP Used',
|
||||||
refId='E',
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
# Extra JSON for the colors
|
overrides=[
|
||||||
extraJson=MEMORY_BASIC_COLORS,
|
# Prevent total memory from being stacked
|
||||||
|
{
|
||||||
|
'matcher': {
|
||||||
|
'id': 'byName',
|
||||||
|
'options': 'RAM Total'
|
||||||
|
},
|
||||||
|
'properties': [
|
||||||
|
{
|
||||||
|
'id': 'custom.stacking',
|
||||||
|
'value': {'mode': 'none'}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
],
|
||||||
|
),
|
||||||
|
# Network Traffic Basic
|
||||||
|
MyTimeSeries(
|
||||||
|
title='Network Traffic Basic',
|
||||||
|
description='Basic network usage info per interface',
|
||||||
|
unit=BITS_SEC,
|
||||||
|
gridPos=GridPos(h=8, w=12, x=0, y=8),
|
||||||
|
tooltipSort='desc',
|
||||||
|
axisCenteredZero=True,
|
||||||
|
targets=[
|
||||||
|
PromTarget(
|
||||||
|
expr='irate(node_network_receive_bytes_total{instance="$instance",job="$job"}[$__rate_interval]) * 8',
|
||||||
|
legendFormat='rx {{ device }}',
|
||||||
|
),
|
||||||
|
PromTarget(
|
||||||
|
expr='-irate(node_network_transmit_bytes_total{instance="$instance",job="$job"}[$__rate_interval]) * 8',
|
||||||
|
legendFormat='tx {{ device }}',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
# Disk Space Basic
|
||||||
|
MyTimeSeries(
|
||||||
|
title='Disk Space Used Basic',
|
||||||
|
description='Disk space used of all filesystems mounted',
|
||||||
|
unit=PERCENT_UNIT,
|
||||||
|
gridPos=GridPos(h=8, w=12, x=12, y=8),
|
||||||
|
targets=[
|
||||||
|
PromTarget(
|
||||||
|
expr='1 - (node_filesystem_avail_bytes{instance="$instance",job="$job",device!~"rootfs"} / node_filesystem_size_bytes{instance="$instance",job="$job",device!~"rootfs"})',
|
||||||
|
legendFormat='{{ mountpoint }}',
|
||||||
|
),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
# TODO: Network Basic
|
|
||||||
# TODO: Disk Basic
|
|
||||||
],
|
],
|
||||||
).auto_panel_ids()
|
).auto_panel_ids()
|
||||||
|
|||||||
@@ -1,487 +0,0 @@
|
|||||||
# TODO: Question life decisions (I'm not sure if this is good)
|
|
||||||
|
|
||||||
CPU_BASIC_COLORS = {
|
|
||||||
"fieldConfig": {
|
|
||||||
"overrides": [
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Busy Iowait"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#890F02",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Idle"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#052B51",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Busy Iowait"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#890F02",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Idle"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#7EB26D",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Busy System"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#EAB839",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Busy User"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#0A437C",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Busy Other"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#6D1F62",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
MEMORY_BASIC_COLORS = {
|
|
||||||
"fieldConfig": {
|
|
||||||
"overrides": [
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Apps"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#629E51",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Buffers"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#614D93",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Cache"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#6D1F62",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Cached"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#511749",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Committed"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#508642",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Free"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#0A437C",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Hardware Corrupted - Amount of RAM that the kernel identified as corrupted / not working"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#CFFAFF",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Inactive"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#584477",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "PageTables"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#0A50A1",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Page_Tables"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#0A50A1",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "RAM_Free"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#E0F9D7",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "SWAP Used"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#BF1B00",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Slab"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#806EB7",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Slab_Cache"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#E0752D",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Swap"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#BF1B00",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Swap Used"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#BF1B00",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Swap_Cache"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#C15C17",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Swap_Free"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#2F575E",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Unused"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#EAB839",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "RAM Total"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#E0F9D7",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "custom.fillOpacity",
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "custom.stacking",
|
|
||||||
"value": {
|
|
||||||
"group": False,
|
|
||||||
"mode": "normal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "RAM Cache + Buffer"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#052B51",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "RAM Free"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#7EB26D",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"matcher": {
|
|
||||||
"id": "byName",
|
|
||||||
"options": "Available"
|
|
||||||
},
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"id": "color",
|
|
||||||
"value": {
|
|
||||||
"fixedColor": "#DEDAF7",
|
|
||||||
"mode": "fixed"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "custom.fillOpacity",
|
|
||||||
"value": 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "custom.stacking",
|
|
||||||
"value": {
|
|
||||||
"group": False,
|
|
||||||
"mode": "normal"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +1,11 @@
|
|||||||
{% import 'contrib/compose_helpers.j2' as helpers with context %}
|
{% import 'contrib/compose_helpers.j2' as helpers with context %}
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
traefik:
|
{{ helpers.default_network(254) | indent(2) }}
|
||||||
internal: true
|
|
||||||
enable_ipv6: true
|
|
||||||
ipam:
|
|
||||||
config:
|
|
||||||
# TODO: Consider removing traefik network, it shouldn't be needed with host networking
|
|
||||||
- subnet: {{ traefik_subnet }}/24
|
|
||||||
- subnet: {{ docker_ipv6_subnet | ansible.utils.ipsubnet(80, 255) }}
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
traefik:
|
traefik:
|
||||||
image: traefik:v3.2
|
image: traefik:v3.5
|
||||||
container_name: traefik
|
container_name: traefik
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
@@ -25,11 +18,8 @@ services:
|
|||||||
- {{ base_volume_path }}/traefik/rules:/rules/extra:ro
|
- {{ base_volume_path }}/traefik/rules:/rules/extra:ro
|
||||||
- {{ base_volume_path }}/traefik/acme:/acme
|
- {{ base_volume_path }}/traefik/acme:/acme
|
||||||
|
|
||||||
# This is mostly just so that the traefik network gets created
|
|
||||||
whoami:
|
whoami:
|
||||||
image: containous/whoami
|
image: containous/whoami
|
||||||
container_name: whoami
|
container_name: whoami
|
||||||
labels:
|
labels:
|
||||||
- {{ helpers.traefik_labels('whoami', port=80) | indent(6) }}
|
- {{ helpers.traefik_labels('whoami', port='80') | indent(6) }}
|
||||||
networks:
|
|
||||||
- traefik
|
|
||||||
@@ -12,6 +12,16 @@ entryPoints:
|
|||||||
address: ":443"
|
address: ":443"
|
||||||
http3:
|
http3:
|
||||||
advertisedPort: 443
|
advertisedPort: 443
|
||||||
|
forwardedHeaders:
|
||||||
|
trustedIPs:
|
||||||
|
# https://www.cloudflare.com/ips-v6
|
||||||
|
- 2400:cb00::/32
|
||||||
|
- 2606:4700::/32
|
||||||
|
- 2803:f800::/32
|
||||||
|
- 2405:b500::/32
|
||||||
|
- 2405:8100::/32
|
||||||
|
- 2a06:98c0::/29
|
||||||
|
- 2c0f:f248::/32
|
||||||
metrics:
|
metrics:
|
||||||
address: ":8082"
|
address: ":8082"
|
||||||
|
|
||||||
@@ -36,7 +46,6 @@ certificatesResolvers:
|
|||||||
providers:
|
providers:
|
||||||
docker:
|
docker:
|
||||||
exposedByDefault: false
|
exposedByDefault: false
|
||||||
network: traefik_traefik
|
|
||||||
file:
|
file:
|
||||||
directory: /rules
|
directory: /rules
|
||||||
watch: true
|
watch: true
|
||||||
|
|||||||
22
roles/clean/tasks/main.yml
Normal file
22
roles/clean/tasks/main.yml
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
- name: Get list of running Docker containers
|
||||||
|
docker_host_info:
|
||||||
|
containers: yes
|
||||||
|
register: docker_container_list
|
||||||
|
|
||||||
|
- name: Stop all running Docker containers
|
||||||
|
docker_container:
|
||||||
|
name: "{{ item }}"
|
||||||
|
state: stopped
|
||||||
|
loop: "{{ docker_container_list.containers | map(attribute='Id') | list }}"
|
||||||
|
async: 300
|
||||||
|
poll: 0
|
||||||
|
|
||||||
|
- name: Prune all Docker containers and networks
|
||||||
|
docker_prune:
|
||||||
|
containers: yes
|
||||||
|
networks: yes
|
||||||
|
|
||||||
|
- name: Clean alpina directory
|
||||||
|
file:
|
||||||
|
path: "{{ alpina_svc_path }}"
|
||||||
|
state: absent
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
state: enabled
|
state: enabled
|
||||||
immediate: yes
|
immediate: yes
|
||||||
|
|
||||||
- name: Allow Web
|
- name: Disallow Web
|
||||||
become: yes
|
become: yes
|
||||||
firewalld:
|
firewalld:
|
||||||
service: http
|
service: http
|
||||||
@@ -64,6 +64,46 @@
|
|||||||
state: enabled
|
state: enabled
|
||||||
immediate: yes
|
immediate: yes
|
||||||
|
|
||||||
|
- name: Allow 2222 tcp for pgrok ssh tunnel
|
||||||
|
become: yes
|
||||||
|
firewalld:
|
||||||
|
port: 2222/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
immediate: yes
|
||||||
|
|
||||||
|
- name: Allow Syncthing
|
||||||
|
become: yes
|
||||||
|
firewalld:
|
||||||
|
service: syncthing
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
immediate: yes
|
||||||
|
|
||||||
|
- name: Allow 25565 tcp for minecruft
|
||||||
|
become: yes
|
||||||
|
firewalld:
|
||||||
|
port: 25565/tcp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
immediate: yes
|
||||||
|
|
||||||
|
- name: Allow 25565 udp for minecruft
|
||||||
|
become: yes
|
||||||
|
firewalld:
|
||||||
|
port: 25565/udp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
immediate: yes
|
||||||
|
|
||||||
|
- name: Allow 24454 udp for minecruft voice chat
|
||||||
|
become: yes
|
||||||
|
firewalld:
|
||||||
|
port: 24454/udp
|
||||||
|
permanent: yes
|
||||||
|
state: enabled
|
||||||
|
immediate: yes
|
||||||
|
|
||||||
- name: Reboot if needed
|
- name: Reboot if needed
|
||||||
become: yes
|
become: yes
|
||||||
ansible.builtin.reboot:
|
ansible.builtin.reboot:
|
||||||
|
|||||||
@@ -1,12 +1,5 @@
|
|||||||
- name: Get IPv6 subnet for Docker
|
- name: IPv6 subnet for Docker
|
||||||
set_fact:
|
debug:
|
||||||
docker_ipv6_subnet: "{{ \
|
|
||||||
ansible_default_ipv6.address \
|
|
||||||
| ansible.utils.ipsubnet(64) \
|
|
||||||
| ansible.utils.ipsubnet(72, docker_ipv6_index) \
|
|
||||||
}}"
|
|
||||||
|
|
||||||
- debug:
|
|
||||||
var: docker_ipv6_subnet
|
var: docker_ipv6_subnet
|
||||||
|
|
||||||
- name: Configure Docker daemon
|
- name: Configure Docker daemon
|
||||||
@@ -35,33 +28,6 @@
|
|||||||
state: disabled
|
state: disabled
|
||||||
register: docker0_firewalld
|
register: docker0_firewalld
|
||||||
|
|
||||||
- name: Get list of running Docker containers
|
|
||||||
docker_host_info:
|
|
||||||
containers: yes
|
|
||||||
register: docker_container_list
|
|
||||||
when: clean_desired is true
|
|
||||||
|
|
||||||
- name: Stop all running Docker containers
|
|
||||||
docker_container:
|
|
||||||
name: "{{ item }}"
|
|
||||||
state: stopped
|
|
||||||
loop: "{{ docker_container_list.containers | map(attribute='Id') | list }}"
|
|
||||||
async: 300
|
|
||||||
poll: 0
|
|
||||||
when: clean_desired is true and docker_container_list.containers | length > 0
|
|
||||||
|
|
||||||
- name: Prune all Docker containers and networks
|
|
||||||
docker_prune:
|
|
||||||
containers: yes
|
|
||||||
networks: yes
|
|
||||||
when: clean_desired is true
|
|
||||||
|
|
||||||
- name: Clean alpina directory
|
|
||||||
file:
|
|
||||||
path: "{{ alpina_svc_path }}"
|
|
||||||
state: absent
|
|
||||||
when: clean_desired is true
|
|
||||||
|
|
||||||
- name: Restart Docker daemon
|
- name: Restart Docker daemon
|
||||||
become: yes
|
become: yes
|
||||||
service:
|
service:
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
- hosts: alpina
|
- hosts: alpina
|
||||||
roles:
|
roles:
|
||||||
- docker_host
|
|
||||||
- alpina
|
- alpina
|
||||||
post_tasks:
|
post_tasks:
|
||||||
- name: Docker prune objects
|
- name: Docker prune objects
|
||||||
|
|||||||
12
site.yml
12
site.yml
@@ -1,12 +1,4 @@
|
|||||||
- hosts: all
|
- hosts: alpina
|
||||||
roles:
|
roles:
|
||||||
- common
|
- common
|
||||||
pre_tasks:
|
- docker_host
|
||||||
- name: Set fact for clean desired of docker objects and compose files
|
|
||||||
set_fact:
|
|
||||||
# clean_desired_arg is an extra variable passed to the playbook
|
|
||||||
clean_desired: "{{ clean_desired_arg | bool }}"
|
|
||||||
|
|
||||||
|
|
||||||
- name: Install services
|
|
||||||
import_playbook: services.yml
|
|
||||||
|
|||||||
Reference in New Issue
Block a user