Compare commits
11 Commits
f3c6c61130
...
feature/mo
| Author | SHA1 | Date | |
|---|---|---|---|
|
eb264b73fa
|
|||
|
8c6b862495
|
|||
|
30510c6690
|
|||
|
c38f94f4ce
|
|||
|
002eb40b68
|
|||
|
aaca0f94f8
|
|||
|
97b812eb10
|
|||
|
97d1db61d8
|
|||
|
a8bc344aa2
|
|||
|
f9d590170d
|
|||
|
e1f3a22a23
|
3
.idea/alpina.iml
generated
3
.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="jdk" jdkName="Poetry (alpina) (3)" jdkType="Python SDK" />
|
<orderEntry type="jdk" jdkName="Poetry (alpina) (4)" jdkType="Python SDK" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
</component>
|
</component>
|
||||||
<component name="PyDocumentationSettings">
|
<component name="PyDocumentationSettings">
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
<option name="TEMPLATE_FOLDERS">
|
<option name="TEMPLATE_FOLDERS">
|
||||||
<list>
|
<list>
|
||||||
<option value="$MODULE_DIR$/roles/docker_host/templates" />
|
<option value="$MODULE_DIR$/roles/docker_host/templates" />
|
||||||
|
<option value="$MODULE_DIR$/roles/alpina/templates" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
25
.idea/jsonSchemas.xml
generated
25
.idea/jsonSchemas.xml
generated
@@ -74,6 +74,9 @@
|
|||||||
<Item>
|
<Item>
|
||||||
<option name="path" value="file:///run/user/1000/kio-fuse-kipURF/sftp/root@debbi.lab.home/mnt/dock/traefik/rules/hello-world.yml" />
|
<option name="path" value="file:///run/user/1000/kio-fuse-kipURF/sftp/root@debbi.lab.home/mnt/dock/traefik/rules/hello-world.yml" />
|
||||||
</Item>
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<option name="path" value="roles/alpina/templates/services/traefik/rules/traefik-dash.yml.j2" />
|
||||||
|
</Item>
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</SchemaInfo>
|
</SchemaInfo>
|
||||||
@@ -113,6 +116,28 @@
|
|||||||
<Item>
|
<Item>
|
||||||
<option name="path" value="roles/alpina/collections/services/monitoring/templates/prometheus_config/prometheus.yml.j2" />
|
<option name="path" value="roles/alpina/collections/services/monitoring/templates/prometheus_config/prometheus.yml.j2" />
|
||||||
</Item>
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<option name="path" value="roles/alpina/templates/services/monitoring/prometheus_config/prometheus.yml.j2" />
|
||||||
|
</Item>
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</SchemaInfo>
|
||||||
|
</value>
|
||||||
|
</entry>
|
||||||
|
<entry key="prometheus.rules.json">
|
||||||
|
<value>
|
||||||
|
<SchemaInfo>
|
||||||
|
<option name="name" value="prometheus.rules.json" />
|
||||||
|
<option name="relativePathToSchema" value="https://json.schemastore.org/prometheus.rules.json" />
|
||||||
|
<option name="applicationDefined" value="true" />
|
||||||
|
<option name="patterns">
|
||||||
|
<list>
|
||||||
|
<Item>
|
||||||
|
<option name="path" value="roles/alpina/templates/services/monitoring/prometheus_config/container-alerts.yml" />
|
||||||
|
</Item>
|
||||||
|
<Item>
|
||||||
|
<option name="path" value="roles/alpina/templates/services/monitoring/prometheus_config/container.alerts.yml" />
|
||||||
|
</Item>
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</SchemaInfo>
|
</SchemaInfo>
|
||||||
|
|||||||
2
.idea/misc.xml
generated
2
.idea/misc.xml
generated
@@ -3,5 +3,5 @@
|
|||||||
<component name="Black">
|
<component name="Black">
|
||||||
<option name="sdkName" value="Poetry (alpina) (2)" />
|
<option name="sdkName" value="Poetry (alpina) (2)" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="Poetry (alpina) (3)" project-jdk-type="Python SDK" />
|
<component name="ProjectRootManager" version="2" project-jdk-name="Poetry (alpina) (4)" project-jdk-type="Python SDK" />
|
||||||
</project>
|
</project>
|
||||||
41
README.md
41
README.md
@@ -3,6 +3,9 @@
|
|||||||
A home for configuring all of my homelab containers on a Debian Linux machine.
|
A home for configuring all of my homelab containers on a Debian Linux machine.
|
||||||
This assumes a Debian Linux machine with Docker and Docker Compose installed.
|
This assumes a Debian Linux machine with Docker and Docker Compose installed.
|
||||||
|
|
||||||
|
My particular setup is based on a [jailmaker](https://github.com/Jip-Hop/jailmaker) container
|
||||||
|
running on top of TrueNAS SCALE, separating all the docker stuff from the appliance.
|
||||||
|
|
||||||
# Notes
|
# Notes
|
||||||
|
|
||||||
## IPv6
|
## IPv6
|
||||||
@@ -16,3 +19,41 @@ that uses the IP of this host as the gateway.
|
|||||||
This is a limitation of my current ISP, I only have a single /64 subnet for my lab network.
|
This is a limitation of my current ISP, I only have a single /64 subnet for my lab network.
|
||||||
I'd like to get a /56 or /48, perhaps using Hurricane Electric's tunnel broker.
|
I'd like to get a /56 or /48, perhaps using Hurricane Electric's tunnel broker.
|
||||||
*Sigh* ISPs being stingy with the 2^48 prefixes they're afraid of running out of.
|
*Sigh* ISPs being stingy with the 2^48 prefixes they're afraid of running out of.
|
||||||
|
|
||||||
|
## Upgrading Postgres
|
||||||
|
Upgrading the postgres container for a given stack requires a dump and restore.
|
||||||
|
|
||||||
|
After making a snapshot or backup of postgres data directory,
|
||||||
|
in the compose directory for a given stack, run the following commands:
|
||||||
|
```bash
|
||||||
|
docker compose down
|
||||||
|
docker compose up -d <db_service>
|
||||||
|
docker compose exec -it <db_service> pg_dumpall -U <db_user> | tee /tmp/dump.sql
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
rm -r <postgres_data_dir>/* # as root
|
||||||
|
# Edit the docker-compose.yml file to use the new postgres image
|
||||||
|
docker compose up -d <db_service>
|
||||||
|
# For some reason, compose exec doesn't like the input redirection
|
||||||
|
docker exec -i <db_container_name> psql -U <db_user> < /tmp/dump.sql
|
||||||
|
docker compose up -d
|
||||||
|
rm /tmp/dump.sql
|
||||||
|
```
|
||||||
|
|
||||||
|
Additionally, if upgrading from postgres <= 13, it is necessary to upgrade the
|
||||||
|
password hashes. This can be done by running the following command:
|
||||||
|
```bash
|
||||||
|
docker compose exec -it <db_service> psql -U <db_user> -c "\password"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Nextcloud
|
||||||
|
Nextcloud requires some additional work to set up notify_push.
|
||||||
|
|
||||||
|
- Initially, comment out the notify_push service in the docker compose.
|
||||||
|
- Set up nextcloud and install the Client Push (notify_push) app.
|
||||||
|
- Uncomment the notify_push service in the docker compose and `up -d` the stack.
|
||||||
|
- ```bash
|
||||||
|
docker compose exec app ./occ notify_push:setup https://nc.<domain>/push
|
||||||
|
```
|
||||||
|
|
||||||
|
I should probably get around to automating this at some point.
|
||||||
|
|||||||
50
group_vars/alpina/vars.yml
Normal file
50
group_vars/alpina/vars.yml
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# Shared variables between environments
|
||||||
|
|
||||||
|
---
|
||||||
|
alpina_svc_path: ~/alpina
|
||||||
|
base_volume_path: /mnt/dock
|
||||||
|
media_volume_path: /mnt/media
|
||||||
|
|
||||||
|
traefik_subnet: 172.16.122.0
|
||||||
|
|
||||||
|
# Authentik
|
||||||
|
authentik_db_password: "{{ vault_authentik_db_password }}"
|
||||||
|
authentik_secret_key: "{{ vault_authentik_secret_key }}"
|
||||||
|
|
||||||
|
authentik_sendgrid_api_key: "{{ vault_authentik_sendgrid_api_key }}"
|
||||||
|
|
||||||
|
auth_grafana_client_secret: "{{ vault_auth_grafana_client_secret }}"
|
||||||
|
arrstack_password: "{{ vault_arrstack_password }}"
|
||||||
|
|
||||||
|
# Minio
|
||||||
|
minio_password: "{{ vault_minio_password }}"
|
||||||
|
|
||||||
|
# Monitoring
|
||||||
|
## auth_grafana_client_secret:
|
||||||
|
influxdb_admin_password: "{{ vault_influxdb_admin_password }}"
|
||||||
|
influxdb_admin_token: "{{ vault_influxdb_admin_token }}"
|
||||||
|
|
||||||
|
alertmanager_discord_webhook: "{{ vault_alertmanager_discord_webhook }}"
|
||||||
|
|
||||||
|
# Traefik
|
||||||
|
acme_email: "{{ vault_acme_email }}"
|
||||||
|
cloudflare_api_token: "{{ vault_cloudflare_api_token }}"
|
||||||
|
|
||||||
|
# Arrstack
|
||||||
|
wg_peer_pubkey: "{{ vault_wg_peer_pubkey }}"
|
||||||
|
vpn_server_names: "{{ vault_vpn_server_names }}"
|
||||||
|
|
||||||
|
# Gitea
|
||||||
|
gitea_db_password: "{{ vault_gitea_db_password }}"
|
||||||
|
gitea_sendgrid_api_key: "{{ vault_gitea_sendgrid_api_key }}"
|
||||||
|
## Security
|
||||||
|
secret_key: "{{ vault_secret_key }}"
|
||||||
|
internal_token: "{{ vault_internal_token }}"
|
||||||
|
jwt_secret: "{{ vault_jwt_secret }}"
|
||||||
|
|
||||||
|
# Jellyfin
|
||||||
|
|
||||||
|
# Nextcloud
|
||||||
|
nextcloud_db_password: "{{ vault_nextcloud_db_password }}"
|
||||||
|
redis_password: "{{ vault_redis_password }}"
|
||||||
|
nextcloud_sendgrid_api_key: "{{ vault_nextcloud_sendgrid_api_key }}"
|
||||||
96
group_vars/alpina/vault.yml
Normal file
96
group_vars/alpina/vault.yml
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
32653863663065353431636364373163613536643238613961666561653663633530646165643766
|
||||||
|
3833323937353331313136633965393061616135366534660a333037383066303431623830313464
|
||||||
|
65346431633238666534373033663138353438313762326361666233353866663534363536643034
|
||||||
|
3636323439316261630a623262336331663431633266336235653034323234383566323963623365
|
||||||
|
32626363626164373536663464643632393761346137623866633237643038306265636362626561
|
||||||
|
61313634353634373530383061393364613461303132326335316566326436633635633131643433
|
||||||
|
31376539396639326464333233643933373737313064363262323639363964643862633035396161
|
||||||
|
35643037636535623966626131393538643432396536643365383736636262356135373434376433
|
||||||
|
32316361343330303431376234323632323932376635343964383733633761326639393966383039
|
||||||
|
35646131343034663962363335373661323065663764396631343461383661663738386163323633
|
||||||
|
36303464646532633235663662666663343238633465663334326463383133643239666634653739
|
||||||
|
35396130393961303230396236303766336666643930626161333338326137663235323066663032
|
||||||
|
33376564373563323635356233616264313663373534333636643236393866613062656338353864
|
||||||
|
66386132663362363832366661646462316139353132626662663934336530386534376538633235
|
||||||
|
62653131653835323261373435373631396466353738306362616266616532313435323633613933
|
||||||
|
61646132346536323632643865326234356535346566346532383162393265613931343962303463
|
||||||
|
31636334343736666434353835633734396465653862613234386431306463326134613931646232
|
||||||
|
32353535663133623434643866336165616232613662336533383432633338373763643337616637
|
||||||
|
38323237646461376433316164646366383438316639633162303739383263656265633364303565
|
||||||
|
36643339356136653332666230633939636264306431636562323864373037623138363739616561
|
||||||
|
37613364653737353638646564323439646138646536636564303866636233616264383466656439
|
||||||
|
33646232653061616437656162353036313834616162313936353533393833313432656534343363
|
||||||
|
35636638326236646163323463356634326534623165306461316530353936646162323435633862
|
||||||
|
64396464303363323837316162353734626663643962303534336637336632333463393734383532
|
||||||
|
66616534666466393333386337363238383432643764373864613461363766333932333862363332
|
||||||
|
61313364613031376334326635636432346532613462613265643462636436663963323862353733
|
||||||
|
38396261613332396633666130653262313234633132353264363266336231373535306532383661
|
||||||
|
65323530653531646339626537653433303332656535346639393466353133363833326236656231
|
||||||
|
33336265373463396135653730616266346331376461346433343464326238323034653330393732
|
||||||
|
36643432316662333633333036633761653031393433333338663633386264656535623534653463
|
||||||
|
36363565303333356361616539376532353066336137336134656465383364636361656664356439
|
||||||
|
65326334643631663665376530646433323439653864623964323363396561313663636538356536
|
||||||
|
63626336303862333364363166353437353163656238303765636662636137383337623563666264
|
||||||
|
66326633343230386638616438393436633431343264343231386563613935626430306337343533
|
||||||
|
66656366333332326131343661356236396430303832303834653530623639353036663436373862
|
||||||
|
61336437386338343965653563646664643438353232306231316564616462643236646239333062
|
||||||
|
38643461346639623964626438396631396139383332666130316635656530653136333662353566
|
||||||
|
36313261646330373963663032316662383137366436636534383366636362366435393036373264
|
||||||
|
34646537666462363531343335336638343038333633663862666163306662643634326533316561
|
||||||
|
61613235366233636530663462353066646530386265623534663336376364323237343936646134
|
||||||
|
31616563653864383565306439613932396562613835613562326264326535636630646666366335
|
||||||
|
36653631353961353933386236636534393636356334633336313333383238353838336335646630
|
||||||
|
63633365666530623562323634303935326362643762616532303531303139333565643835396163
|
||||||
|
36353130656365326435343130613234336637346461313639653133623933376163393935366266
|
||||||
|
66653337353732363038663164363663623266356366663637343466393836353965343730666362
|
||||||
|
38663636336265383331666666616535366334616431306164303738306436333364653765356662
|
||||||
|
37316433323563323431623164386337343563663538333435616333343433396236356363333262
|
||||||
|
61396664326234343136666331356465333233663135613839616334623033316362336162613731
|
||||||
|
38646530326538643337323838326563303130643934623939346635343331356531373235663937
|
||||||
|
62396530383365666439373632613633633233376139616138323033613135383330333132643839
|
||||||
|
65363833616337656662653462323436303531653635663739633366616532333761323238353764
|
||||||
|
39373836303735393165393435323139346661346135636138613731373165386533386333393364
|
||||||
|
32336265386334386338653734353565343733393931373436336233333031356531313739636666
|
||||||
|
61376234393631343236643137616631373564376132623534333939346162353662306661393438
|
||||||
|
32326566373934653463653737383131386431363664333535626361646637613632383132623533
|
||||||
|
32343465366562363765353366333330633631353936613930376631336538306230626632303966
|
||||||
|
31343936386535663165663066663862656439306363326337313561396132316338363930323632
|
||||||
|
33313061623534373338623931663934396339633564353533626639373837323832366132343538
|
||||||
|
63373862663137306665383732303863343564343830636233613139666631626532373938386663
|
||||||
|
35646331646462356639383964373732393866653963643832633661323430323430613330633364
|
||||||
|
35343262366362646165383032333236623863656264353964623136643631326135623538306261
|
||||||
|
37393839343331653665356131343063316232303963636462653238333466636334616435666463
|
||||||
|
65636662383930353238623130363834616137643830633261646338363435343839633565303562
|
||||||
|
37623231396163346464303464333962336261353634396236613132306464643764356265656137
|
||||||
|
32373263613964396430646332666235303634373431643939623963633334326135626565656662
|
||||||
|
30646166303732643562653166633232666635343665616665653566316632303861613861313333
|
||||||
|
38393636663137333231613239353661656338333536656563616237343234623031363535666637
|
||||||
|
61343662663965663161666436366630366432363733663537613064386130326466343366383232
|
||||||
|
32363662343561666665323565356163383932336361656132373263363239636666613461366339
|
||||||
|
31323264393866386239353333386161643330343262366666323533303737373163313262313766
|
||||||
|
61303638366263346232353134333431613730386431623235323537323962666133613939353762
|
||||||
|
63326361633630323937353163383930626336663365626532613031623532393932316138353335
|
||||||
|
32363262393764663135393466616639373965313238323935383531633434633038663437646662
|
||||||
|
31633265373937316533373332316132363061386133356231623230393739326464333761336338
|
||||||
|
38626234646164616265633061346239363164376532383834356435346232653065326362343363
|
||||||
|
39613532356166633133626563643238373661323937353635343464666339323561326136623366
|
||||||
|
62633637656462376136633963653263346565366563646533373431613761616231653739613537
|
||||||
|
32343332356435393635363837396463613165626337346235303363613764306132343539333836
|
||||||
|
63386633626332396339383165303166653334663239313066666632356165643161356262346230
|
||||||
|
32636365636364663466343939663538386439343336303537636230306263643534653339313538
|
||||||
|
31373165363962373337636138336561336638633762373363646139366339323031313664306534
|
||||||
|
30623130663037323839666166323162393065643535663866383062356330633137343239316436
|
||||||
|
32303132393739653363376138633430313832383165663366626436653033663637616664346632
|
||||||
|
63633439663734393236343265323533633639316133323336373064633138363266316135363335
|
||||||
|
31336637666331333139306537333565333064666433653730633430336261656665613263663937
|
||||||
|
64313230656333373838346439623061393164393239393934306336373063303934663334353532
|
||||||
|
31313637623466313835313566616161376230343532653561343364383133653736646338303631
|
||||||
|
36356164303630303433356332343630616465383831623036383833393330663566616333653161
|
||||||
|
63393361643266323336393962663263323338633634633033393762656139393665353630633637
|
||||||
|
39386462303731396261613961613238616237373332656361303139633763303837653765623464
|
||||||
|
64333565666532653864383861333433353731343161613231383836353966353636373762306132
|
||||||
|
35333536373939656638356333383135313231306433656536383933623634653263353434393238
|
||||||
|
32323037666135316337633465666335376332326633346665643333656139386465353134356636
|
||||||
|
36333434303538326135346539313734393939353163316666366438613133333464623732666438
|
||||||
|
663934323030303937623038343662646163
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
---
|
|
||||||
my_svc_path: ~/alpina
|
|
||||||
base_volume_path: /mnt/dock
|
|
||||||
media_volume_path: /mnt/media
|
|
||||||
|
|
||||||
traefik_subnet: 172.16.122.0
|
|
||||||
@@ -1,47 +1 @@
|
|||||||
domain: cazzzer.com
|
domain: cazzzer.com
|
||||||
|
|
||||||
wg_privkey: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
31663639306133623739366363353430303338656137386434303862346434633665333434613931
|
|
||||||
3430313162333937636234313761366337393431616630330a393962643962353234343431653439
|
|
||||||
35323966643531386538643636623439636633326638316233386266343964333563306330383437
|
|
||||||
6132333063626365330a353232366464636663633236383563343834316164636434613639363765
|
|
||||||
37653738663463303236333232663338623034363737643138303238663033323361373064343334
|
|
||||||
3762303565343765393332626565333637643462353631343833
|
|
||||||
|
|
||||||
wg_psk: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
31353436343638306237623864633533626662376362656531616665356333326238353533306438
|
|
||||||
3164646631633464313966353533633137643234333264650a666134613666613262323461306131
|
|
||||||
32383438363566653766613337363236616139616661343930656362636366346133353137366639
|
|
||||||
3762623635386330320a643465396563666562383261623964396431366466663766303939336434
|
|
||||||
61626434363763303637316165343566383064613663626339366635343537646130323731376461
|
|
||||||
6231346162313465323739623939306436656438336565336436
|
|
||||||
|
|
||||||
wg_addresses: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
66306130383462373166306561663431366262626537393330373061616636306433323734643632
|
|
||||||
6332363262346630353338626632353039636666636264340a616537363638386635383934303533
|
|
||||||
34376136636334616332626161386435333031363931616331363232313338346234316361383033
|
|
||||||
3236626331333032390a353466323863326565386531643335653565386433613431623337313666
|
|
||||||
32643065653763643563623232313262316534326266386135633463623966636532356463653765
|
|
||||||
32656333623032633263643539336537313536326263303465373066633738353832363064306465
|
|
||||||
353636666162393734333338653834366333
|
|
||||||
|
|
||||||
fw_vpn_input_ports: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
36353933613361353132366636386138616336323437616366613164633036343234313338303830
|
|
||||||
3662663462346134343338363264303030663935393865650a666161633163383437373139663362
|
|
||||||
35666633363762633135616630336239623065366266633335623832323762613565376166383131
|
|
||||||
6163646561353335360a386664386166626134366339393566613461626230323836646139316463
|
|
||||||
3938
|
|
||||||
|
|
||||||
github_consumer_key: 32d5cae58d744c56fcc9
|
|
||||||
github_consumer_secret: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
36353230356266303131333732363736383633313038326161346434303061633464393738383433
|
|
||||||
3933343436316530306439326237353265363333656264620a373036383835313733303561333233
|
|
||||||
33343834313163613037643734653535306365326536383532366166313261323265616133333865
|
|
||||||
3362663865666466320a363338303436626532393665663564313937366362326263396431316538
|
|
||||||
33396237333766666635333039643338333133346636363966326437646334636138353934333834
|
|
||||||
3139363661653364306231303966346333643166326536383164
|
|
||||||
|
|||||||
14
inventories/prod/group_vars/alpina/vars.yml
Normal file
14
inventories/prod/group_vars/alpina/vars.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Environment specific variables (prod)
|
||||||
|
|
||||||
|
---
|
||||||
|
docker_ipv6_index: 255
|
||||||
|
|
||||||
|
# Arrstack VPN
|
||||||
|
wg_privkey: "{{ vault_wg_privkey }}"
|
||||||
|
wg_psk: "{{ vault_wg_psk }}"
|
||||||
|
wg_addresses: "{{ vault_wg_addresses }}"
|
||||||
|
fw_vpn_input_ports: "{{ vault_fw_vpn_input_ports }}"
|
||||||
|
|
||||||
|
# Authentik GitHub OAuth
|
||||||
|
github_consumer_key: 32d5cae58d744c56fcc9
|
||||||
|
github_consumer_secret: "{{ vault_github_consumer_secret }}"
|
||||||
21
inventories/prod/group_vars/alpina/vault.yml
Normal file
21
inventories/prod/group_vars/alpina/vault.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
61656162363565633436373135333536623561663136303736393865623830633539376362363363
|
||||||
|
3938333137343336626634346262363964316563643261310a366538363037343965363766646535
|
||||||
|
61636239326464373039333462653562373933396665393039633266326234663335363337666439
|
||||||
|
6137323332303533640a383062383135633762323561313666636566306531306636633466316536
|
||||||
|
66623731626266333731303336323733343336626366343833633365616330343565363035323039
|
||||||
|
35313961383131616133386663376331336639633137383137346164353632653939363266613562
|
||||||
|
36316631366661353632386230306532633862393963663465383862653964646462666334396666
|
||||||
|
66626636353539316266343937623662613336616331626439306538363764636366656635356639
|
||||||
|
30663535393366383261333832356237373230663037373638303161303534636230616464636265
|
||||||
|
37623938303638646233346338616239393838396433313063343065386666323264646461373032
|
||||||
|
63376661646139316430303533643063336634333364643231336130613638626431623732646434
|
||||||
|
63643833353164313465633333646232653761356333323933396666323837656334343866363762
|
||||||
|
39646263653137356632323534356631366531636530613736343438393136363835373435636230
|
||||||
|
30313163386335353935663432323033326235653963653930396235373863373232666334326661
|
||||||
|
34336632666365666563326366376461386130343965363832343430396537323734363533353065
|
||||||
|
64313837623366356261383437306465633730353332636561333462356363326132313933653234
|
||||||
|
66363634333664333433613466396639306436353035346134373430663532373934343861323262
|
||||||
|
30666664336336393835346234316238613839326436363162626439376530306133343530303365
|
||||||
|
65393030633237333166336637363435646435323736353461333932366638333264333239373733
|
||||||
|
30623062643336643431
|
||||||
@@ -1 +0,0 @@
|
|||||||
docker_ipv6_index: 255
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
[docker_hosts]
|
[alpina]
|
||||||
debbi.lab.home
|
debbi.lab.home
|
||||||
|
|||||||
@@ -1,47 +1 @@
|
|||||||
domain: lab.cazzzer.com
|
domain: lab.cazzzer.com
|
||||||
|
|
||||||
wg_privkey: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
31333936633664396332303835396261626463383139326538356363303832323533643636383364
|
|
||||||
3364613639616462313462313361363836396338623636660a376230646137346536393330393837
|
|
||||||
64363065396332316262386330313534636135303264636532373432356265383337306365363531
|
|
||||||
6533343563393062640a366364346136353361653033383731613764363762663865643031303663
|
|
||||||
62623562636563633038366465636430656231323431643236323461333134623633613464393439
|
|
||||||
3331663962646534353931336630333961616134343931343534
|
|
||||||
|
|
||||||
wg_psk: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
31393235386262363733633063393031396532336161613138353931616364616165613131336138
|
|
||||||
3861323766326233383836613233333332306166633138300a373164306664393061643135646662
|
|
||||||
30626536646562363263303238663430393361653566306134373633626534643038326566616237
|
|
||||||
3233363838343466640a306364663738346235323535643465663330616235373266383233646263
|
|
||||||
31373332613461376235343431396431633733653865636636363733303466366430316431663730
|
|
||||||
6537663563613233353838303738653532633136663430383961
|
|
||||||
|
|
||||||
wg_addresses: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
36613639386139353965346134663431343032626637326238303830653335633062633936373938
|
|
||||||
3633636637613033303362343038653262626165636537350a356136363730643738383264306662
|
|
||||||
34363731313730613164646138653235653363303033663637386230373161623965326265663439
|
|
||||||
6365643730373235320a323065336535356636646131666262636133643435633237396331653833
|
|
||||||
63393836393162623164633130393034643364373838313939346438623761326364316337343066
|
|
||||||
30643131636636643038366634663137643436323833326362373666393563316235306533373039
|
|
||||||
636233633762303639373239353661343162
|
|
||||||
|
|
||||||
fw_vpn_input_ports: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
39326564343633633465376363396633396332636664383539373230633033383161626434643435
|
|
||||||
3539336531356336663638626630613934323162313639610a626637393637363837636631666534
|
|
||||||
38663031306536323866336365373565633634666561663636653938643538336630393061326564
|
|
||||||
3863363030346530630a343138623664323336353036343430323261393036373563393762663530
|
|
||||||
3730
|
|
||||||
|
|
||||||
github_consumer_key: dbacb8621c37320eb745
|
|
||||||
github_consumer_secret: !vault |
|
|
||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
65393439653532323865356337353164666331653438396564613663363865643233323666316537
|
|
||||||
6365303062326139366139623232366338663831333333610a343035313364383738396635633737
|
|
||||||
32616366393365643565636337633334363637356435386235373638653139326665353537363939
|
|
||||||
3936336336663264310a343137653436323831366237376539353231656463663164316133376333
|
|
||||||
37373937356438373335663234616165663739626663663635316335333534333566326632346437
|
|
||||||
3539656334346163663635376533376362626235343466303430
|
|
||||||
|
|||||||
14
inventories/staging/group_vars/alpina/vars.yml
Normal file
14
inventories/staging/group_vars/alpina/vars.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
# Environment specific variables (staging)
|
||||||
|
|
||||||
|
---
|
||||||
|
docker_ipv6_index: 254
|
||||||
|
|
||||||
|
# Arrstack VPN
|
||||||
|
wg_privkey: "{{ vault_wg_privkey }}"
|
||||||
|
wg_psk: "{{ vault_wg_psk }}"
|
||||||
|
wg_addresses: "{{ vault_wg_addresses }}"
|
||||||
|
fw_vpn_input_ports: "{{ vault_fw_vpn_input_ports }}"
|
||||||
|
|
||||||
|
# Authentik GitHub OAuth
|
||||||
|
github_consumer_key: dbacb8621c37320eb745
|
||||||
|
github_consumer_secret: "{{ vault_github_consumer_secret }}"
|
||||||
21
inventories/staging/group_vars/alpina/vault.yml
Normal file
21
inventories/staging/group_vars/alpina/vault.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
63633535633462326534626562373461373363643166383961303861623531663263323534366537
|
||||||
|
3263633238646439306430356365623233313838326639350a386633363434623737313565316535
|
||||||
|
33393734633937333637373432366132323366343836393538366339626235613937323066613666
|
||||||
|
3737393262646333390a623331333461373563313166323232343234616538623433376166313532
|
||||||
|
32323834346336336164343938303062336438643566343866316164643535663039326331646465
|
||||||
|
36666162393365323633646635333666613030386265306238633434303234336439646663356363
|
||||||
|
63323638373035326465633934326363316364616539613462653232393465633233366666373664
|
||||||
|
66616361646564303530356331323864343966633736643434653237316236363063613634646438
|
||||||
|
35303238646632616465643264316164363139393834626362326538613033656464323435396638
|
||||||
|
31346631653764303332386331663361623766333332366537313634636333346538653537346631
|
||||||
|
62363438303036386530633236376633326162336434343861346261373835653735323161323965
|
||||||
|
62353965373164616537346134303232363033323134323130316439386339613966646330666533
|
||||||
|
65346239383230646565346133663530613462363532663562326136376233303638323332326630
|
||||||
|
35656432363563653663616236393932663637323139666664636237336136366438656666633865
|
||||||
|
66353162656364356638313236643131613830393838636264663833343461373963613431656364
|
||||||
|
32303331623033303433333631313038316336653638656638373031653234356164333363336532
|
||||||
|
37316334353463376562643138346633613633353536653939376564333166323931353634333736
|
||||||
|
63616133663266383339323562343265613461623865623263623139396163343065623264366230
|
||||||
|
32633362336335396562366563363830636133376238646433386236666461333731353337386333
|
||||||
|
61323931643766326338
|
||||||
@@ -1 +0,0 @@
|
|||||||
docker_ipv6_index: 254
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
[docker_hosts]
|
[alpina]
|
||||||
etappi.lab.home
|
etappi.lab.home
|
||||||
|
|||||||
484
poetry.lock
generated
484
poetry.lock
generated
@@ -2,27 +2,27 @@
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ansible"
|
name = "ansible"
|
||||||
version = "10.1.0"
|
version = "10.5.0"
|
||||||
description = "Radically simple IT automation"
|
description = "Radically simple IT automation"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.10"
|
python-versions = ">=3.10"
|
||||||
files = [
|
files = [
|
||||||
{file = "ansible-10.1.0-py3-none-any.whl", hash = "sha256:05b761c4628a0fc216478a5e3c111613c61fd13280846fa84843a63c36c7b1b6"},
|
{file = "ansible-10.5.0-py3-none-any.whl", hash = "sha256:1d10bddba58f1edd0fe0b8e0387e0fafc519535066bb3c919c33b6ea3ec32a0f"},
|
||||||
{file = "ansible-10.1.0.tar.gz", hash = "sha256:7d8c44557f570687306e19d0e3296ad230593cb12bda35dcfc9274a6063af22a"},
|
{file = "ansible-10.5.0.tar.gz", hash = "sha256:ba2045031a7d60c203b6e5fe1f8eaddd53ae076f7ada910e636494384135face"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
ansible-core = ">=2.17.1,<2.18.0"
|
ansible-core = ">=2.17.5,<2.18.0"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ansible-core"
|
name = "ansible-core"
|
||||||
version = "2.17.1"
|
version = "2.17.5"
|
||||||
description = "Radically simple IT automation"
|
description = "Radically simple IT automation"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.10"
|
python-versions = ">=3.10"
|
||||||
files = [
|
files = [
|
||||||
{file = "ansible_core-2.17.1-py3-none-any.whl", hash = "sha256:aaaccf6a9fe05968821a02079c5ec4c33a7fe5f02d9f5d94f7c3a69f71eab675"},
|
{file = "ansible_core-2.17.5-py3-none-any.whl", hash = "sha256:10f165b475cf2bc8d886e532cadb32c52ee6a533649793101d3166bca9bd3ea3"},
|
||||||
{file = "ansible_core-2.17.1.tar.gz", hash = "sha256:46449d71bbd17c3ce85fe379721d88d333fd23637b5c3798e83fae5fa38def00"},
|
{file = "ansible_core-2.17.5.tar.gz", hash = "sha256:ae7f51fd13dc9d57c9bcd43ef23f9c255ca8f18f4b5c0011a4f9b724d92c5a8e"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -50,65 +50,99 @@ setuptools = "*"
|
|||||||
dev = ["black", "flake8", "isort[pyproject]", "pytest"]
|
dev = ["black", "flake8", "isort[pyproject]", "pytest"]
|
||||||
release = ["twine"]
|
release = ["twine"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "attrs"
|
||||||
|
version = "24.2.0"
|
||||||
|
description = "Classes Without Boilerplate"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.7"
|
||||||
|
files = [
|
||||||
|
{file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"},
|
||||||
|
{file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "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]"]
|
||||||
|
dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
|
||||||
|
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-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cffi"
|
name = "cffi"
|
||||||
version = "1.16.0"
|
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"
|
||||||
files = [
|
files = [
|
||||||
{file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"},
|
{file = "cffi-1.17.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:df8b1c11f177bc2313ec4b2d46baec87a5f3e71fc8b45dab2ee7cae86d9aba14"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"},
|
{file = "cffi-1.17.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8f2cdc858323644ab277e9bb925ad72ae0e67f69e804f4898c070998d50b1a67"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"},
|
{file = "cffi-1.17.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:edae79245293e15384b51f88b00613ba9f7198016a5948b5dddf4917d4d26382"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"},
|
{file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45398b671ac6d70e67da8e4224a065cec6a93541bb7aebe1b198a61b58c7b702"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"},
|
{file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ad9413ccdeda48c5afdae7e4fa2192157e991ff761e7ab8fdd8926f40b160cc3"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"},
|
{file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5da5719280082ac6bd9aa7becb3938dc9f9cbd57fac7d2871717b1feb0902ab6"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"},
|
{file = "cffi-1.17.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bb1a08b8008b281856e5971307cc386a8e9c5b625ac297e853d36da6efe9c17"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"},
|
{file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:045d61c734659cc045141be4bae381a41d89b741f795af1dd018bfb532fd0df8"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"},
|
{file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6883e737d7d9e4899a8a695e00ec36bd4e5e4f18fabe0aca0efe0a4b44cdb13e"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"},
|
{file = "cffi-1.17.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6b8b4a92e1c65048ff98cfe1f735ef8f1ceb72e3d5f0c25fdb12087a23da22be"},
|
||||||
{file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"},
|
{file = "cffi-1.17.1-cp310-cp310-win32.whl", hash = "sha256:c9c3d058ebabb74db66e431095118094d06abf53284d9c81f27300d0e0d8bc7c"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"},
|
{file = "cffi-1.17.1-cp310-cp310-win_amd64.whl", hash = "sha256:0f048dcf80db46f0098ccac01132761580d28e28bc0f78ae0d58048063317e15"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"},
|
{file = "cffi-1.17.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a45e3c6913c5b87b3ff120dcdc03f6131fa0065027d0ed7ee6190736a74cd401"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"},
|
{file = "cffi-1.17.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:30c5e0cb5ae493c04c8b42916e52ca38079f1b235c2f8ae5f4527b963c401caf"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"},
|
{file = "cffi-1.17.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f75c7ab1f9e4aca5414ed4d8e5c0e303a34f4421f8a0d47a4d019ceff0ab6af4"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"},
|
{file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1ed2dd2972641495a3ec98445e09766f077aee98a1c896dcb4ad0d303628e41"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"},
|
{file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:46bf43160c1a35f7ec506d254e5c890f3c03648a4dbac12d624e4490a7046cd1"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"},
|
{file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a24ed04c8ffd54b0729c07cee15a81d964e6fee0e3d4d342a27b020d22959dc6"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"},
|
{file = "cffi-1.17.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:610faea79c43e44c71e1ec53a554553fa22321b65fae24889706c0a84d4ad86d"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"},
|
{file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a9b15d491f3ad5d692e11f6b71f7857e7835eb677955c00cc0aefcd0669adaf6"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"},
|
{file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:de2ea4b5833625383e464549fec1bc395c1bdeeb5f25c4a3a82b5a8c756ec22f"},
|
||||||
{file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"},
|
{file = "cffi-1.17.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fc48c783f9c87e60831201f2cce7f3b2e4846bf4d8728eabe54d60700b318a0b"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"},
|
{file = "cffi-1.17.1-cp311-cp311-win32.whl", hash = "sha256:85a950a4ac9c359340d5963966e3e0a94a676bd6245a4b55bc43949eee26a655"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"},
|
{file = "cffi-1.17.1-cp311-cp311-win_amd64.whl", hash = "sha256:caaf0640ef5f5517f49bc275eca1406b0ffa6aa184892812030f04c2abf589a0"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"},
|
{file = "cffi-1.17.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:805b4371bf7197c329fcb3ead37e710d1bca9da5d583f5073b799d5c5bd1eee4"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"},
|
{file = "cffi-1.17.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:733e99bc2df47476e3848417c5a4540522f234dfd4ef3ab7fafdf555b082ec0c"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"},
|
{file = "cffi-1.17.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1257bdabf294dceb59f5e70c64a3e2f462c30c7ad68092d01bbbfb1c16b1ba36"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"},
|
{file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da95af8214998d77a98cc14e3a3bd00aa191526343078b530ceb0bd710fb48a5"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"},
|
{file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d63afe322132c194cf832bfec0dc69a99fb9bb6bbd550f161a49e9e855cc78ff"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"},
|
{file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f79fc4fc25f1c8698ff97788206bb3c2598949bfe0fef03d299eb1b5356ada99"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"},
|
{file = "cffi-1.17.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b62ce867176a75d03a665bad002af8e6d54644fad99a3c70905c543130e39d93"},
|
||||||
{file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"},
|
{file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:386c8bf53c502fff58903061338ce4f4950cbdcb23e2902d86c0f722b786bbe3"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"},
|
{file = "cffi-1.17.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ceb10419a9adf4460ea14cfd6bc43d08701f0835e979bf821052f1805850fe8"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"},
|
{file = "cffi-1.17.1-cp312-cp312-win32.whl", hash = "sha256:a08d7e755f8ed21095a310a693525137cfe756ce62d066e53f502a83dc550f65"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"},
|
{file = "cffi-1.17.1-cp312-cp312-win_amd64.whl", hash = "sha256:51392eae71afec0d0c8fb1a53b204dbb3bcabcb3c9b807eedf3e1e6ccf2de903"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"},
|
{file = "cffi-1.17.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f3a2b4222ce6b60e2e8b337bb9596923045681d71e5a082783484d845390938e"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"},
|
{file = "cffi-1.17.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0984a4925a435b1da406122d4d7968dd861c1385afe3b45ba82b750f229811e2"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"},
|
{file = "cffi-1.17.1-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d01b12eeeb4427d3110de311e1774046ad344f5b1a7403101878976ecd7a10f3"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"},
|
{file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:706510fe141c86a69c8ddc029c7910003a17353970cff3b904ff0686a5927683"},
|
||||||
{file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"},
|
{file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de55b766c7aa2e2a3092c51e0483d700341182f08e67c63630d5b6f200bb28e5"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"},
|
{file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c59d6e989d07460165cc5ad3c61f9fd8f1b4796eacbd81cee78957842b834af4"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"},
|
{file = "cffi-1.17.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd398dbc6773384a17fe0d3e7eeb8d1a21c2200473ee6806bb5e6a8e62bb73dd"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"},
|
{file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:3edc8d958eb099c634dace3c7e16560ae474aa3803a5df240542b305d14e14ed"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"},
|
{file = "cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"},
|
{file = "cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"},
|
{file = "cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"},
|
{file = "cffi-1.17.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:636062ea65bd0195bc012fea9321aca499c0504409f413dc88af450b57ffd03b"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"},
|
{file = "cffi-1.17.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7eac2ef9b63c79431bc4b25f1cd649d7f061a28808cbc6c47b534bd789ef964"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"},
|
{file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e221cf152cff04059d011ee126477f0d9588303eb57e88923578ace7baad17f9"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"},
|
{file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:31000ec67d4221a71bd3f67df918b1f88f676f1c3b535a7eb473255fdc0b83fc"},
|
||||||
{file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"},
|
{file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6f17be4345073b0a7b8ea599688f692ac3ef23ce28e5df79c04de519dbc4912c"},
|
||||||
{file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"},
|
{file = "cffi-1.17.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2b1fac190ae3ebfe37b979cc1ce69c81f4e4fe5746bb401dca63a9062cdaf1"},
|
||||||
|
{file = "cffi-1.17.1-cp38-cp38-win32.whl", hash = "sha256:7596d6620d3fa590f677e9ee430df2958d2d6d6de2feeae5b20e82c00b76fbf8"},
|
||||||
|
{file = "cffi-1.17.1-cp38-cp38-win_amd64.whl", hash = "sha256:78122be759c3f8a014ce010908ae03364d00a1f81ab5c7f4a7a5120607ea56e1"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7"},
|
||||||
|
{file = "cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662"},
|
||||||
|
{file = "cffi-1.17.1.tar.gz", hash = "sha256:1c39c6016c32bc48dd54561950ebd6836e1670f2ae46128f67cf49e789c52824"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -116,43 +150,38 @@ pycparser = "*"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cryptography"
|
name = "cryptography"
|
||||||
version = "42.0.8"
|
version = "43.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.7"
|
python-versions = ">=3.7"
|
||||||
files = [
|
files = [
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:81d8a521705787afe7a18d5bfb47ea9d9cc068206270aad0b96a725022e18d2e"},
|
{file = "cryptography-43.0.1-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8385d98f6a3bf8bb2d65a73e17ed87a3ba84f6991c155691c51112075f9ffc5d"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:961e61cefdcb06e0c6d7e3a1b22ebe8b996eb2bf50614e89384be54c48c6b63d"},
|
{file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:27e613d7077ac613e399270253259d9d53872aaf657471473ebfc9a52935c062"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3ec3672626e1b9e55afd0df6d774ff0e953452886e06e0f1eb7eb0c832e8902"},
|
{file = "cryptography-43.0.1-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68aaecc4178e90719e95298515979814bda0cbada1256a4485414860bd7ab962"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e599b53fd95357d92304510fb7bda8523ed1f79ca98dce2f43c115950aa78801"},
|
{file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:de41fd81a41e53267cb020bb3a7212861da53a7d39f863585d13ea11049cf277"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5226d5d21ab681f432a9c1cf8b658c0cb02533eece706b155e5fbd8a0cdd3949"},
|
{file = "cryptography-43.0.1-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:f98bf604c82c416bc829e490c700ca1553eafdf2912a91e23a79d97d9801372a"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6b7c4f03ce01afd3b76cf69a5455caa9cfa3de8c8f493e0d3ab7d20611c8dae9"},
|
{file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:61ec41068b7b74268fa86e3e9e12b9f0c21fcf65434571dbb13d954bceb08042"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:2346b911eb349ab547076f47f2e035fc8ff2c02380a7cbbf8d87114fa0f1c583"},
|
{file = "cryptography-43.0.1-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:014f58110f53237ace6a408b5beb6c427b64e084eb451ef25a28308270086494"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad803773e9df0b92e0a817d22fd8a3675493f690b96130a5e24f1b8fabbea9c7"},
|
{file = "cryptography-43.0.1-cp37-abi3-win32.whl", hash = "sha256:2bd51274dcd59f09dd952afb696bf9c61a7a49dfc764c04dd33ef7a6b502a1e2"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2f66d9cd9147ee495a8374a45ca445819f8929a3efcd2e3df6428e46c3cbb10b"},
|
{file = "cryptography-43.0.1-cp37-abi3-win_amd64.whl", hash = "sha256:666ae11966643886c2987b3b721899d250855718d6d9ce41b521252a17985f4d"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:d45b940883a03e19e944456a558b67a41160e367a719833c53de6911cabba2b7"},
|
{file = "cryptography-43.0.1-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:ac119bb76b9faa00f48128b7f5679e1d8d437365c5d26f1c2c3f0da4ce1b553d"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-win32.whl", hash = "sha256:a0c5b2b0585b6af82d7e385f55a8bc568abff8923af147ee3c07bd8b42cda8b2"},
|
{file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1bbcce1a551e262dfbafb6e6252f1ae36a248e615ca44ba302df077a846a8806"},
|
||||||
{file = "cryptography-42.0.8-cp37-abi3-win_amd64.whl", hash = "sha256:57080dee41209e556a9a4ce60d229244f7a66ef52750f813bfbe18959770cfba"},
|
{file = "cryptography-43.0.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58d4e9129985185a06d849aa6df265bdd5a74ca6e1b736a77959b498e0505b85"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:dea567d1b0e8bc5764b9443858b673b734100c2871dc93163f58c46a97a83d28"},
|
{file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:d03a475165f3134f773d1388aeb19c2d25ba88b6a9733c5c590b9ff7bbfa2e0c"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c4783183f7cb757b73b2ae9aed6599b96338eb957233c58ca8f49a49cc32fd5e"},
|
{file = "cryptography-43.0.1-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:511f4273808ab590912a93ddb4e3914dfd8a388fed883361b02dea3791f292e1"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0608251135d0e03111152e41f0cc2392d1e74e35703960d4190b2e0f4ca9c70"},
|
{file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:80eda8b3e173f0f247f711eef62be51b599b5d425c429b5d4ca6a05e9e856baa"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:dc0fdf6787f37b1c6b08e6dfc892d9d068b5bdb671198c72072828b80bd5fe4c"},
|
{file = "cryptography-43.0.1-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:38926c50cff6f533f8a2dae3d7f19541432610d114a70808f0926d5aaa7121e4"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9c0c1716c8447ee7dbf08d6db2e5c41c688544c61074b54fc4564196f55c25a7"},
|
{file = "cryptography-43.0.1-cp39-abi3-win32.whl", hash = "sha256:a575913fb06e05e6b4b814d7f7468c2c660e8bb16d8d5a1faf9b33ccc569dd47"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:fff12c88a672ab9c9c1cf7b0c80e3ad9e2ebd9d828d955c126be4fd3e5578c9e"},
|
{file = "cryptography-43.0.1-cp39-abi3-win_amd64.whl", hash = "sha256:d75601ad10b059ec832e78823b348bfa1a59f6b8d545db3a24fd44362a1564cb"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:cafb92b2bc622cd1aa6a1dce4b93307792633f4c5fe1f46c6b97cf67073ec961"},
|
{file = "cryptography-43.0.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ea25acb556320250756e53f9e20a4177515f012c9eaea17eb7587a8c4d8ae034"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:31f721658a29331f895a5a54e7e82075554ccfb8b163a18719d342f5ffe5ecb1"},
|
{file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c1332724be35d23a854994ff0b66530119500b6053d0bd3363265f7e5e77288d"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b297f90c5723d04bcc8265fc2a0f86d4ea2e0f7ab4b6994459548d3a6b992a14"},
|
{file = "cryptography-43.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fba1007b3ef89946dbbb515aeeb41e30203b004f0b4b00e5e16078b518563289"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-win32.whl", hash = "sha256:2f88d197e66c65be5e42cd72e5c18afbfae3f741742070e3019ac8f4ac57262c"},
|
{file = "cryptography-43.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5b43d1ea6b378b54a1dc99dd8a2b5be47658fe9a7ce0a58ff0b55f4b43ef2b84"},
|
||||||
{file = "cryptography-42.0.8-cp39-abi3-win_amd64.whl", hash = "sha256:fa76fbb7596cc5839320000cdd5d0955313696d9511debab7ee7278fc8b5c84a"},
|
{file = "cryptography-43.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:88cce104c36870d70c49c7c8fd22885875d950d9ee6ab54df2745f83ba0dc365"},
|
||||||
{file = "cryptography-42.0.8-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:ba4f0a211697362e89ad822e667d8d340b4d8d55fae72cdd619389fb5912eefe"},
|
{file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:9d3cdb25fa98afdd3d0892d132b8d7139e2c087da1712041f6b762e4f807cc96"},
|
||||||
{file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:81884c4d096c272f00aeb1f11cf62ccd39763581645b0812e99a91505fa48e0c"},
|
{file = "cryptography-43.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:e710bf40870f4db63c3d7d929aa9e09e4e7ee219e703f949ec4073b4294f6172"},
|
||||||
{file = "cryptography-42.0.8-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c9bb2ae11bfbab395bdd072985abde58ea9860ed84e59dbc0463a5d0159f5b71"},
|
{file = "cryptography-43.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7c05650fe8023c5ed0d46793d4b7d7e6cd9c04e68eabe5b0aeea836e37bdcec2"},
|
||||||
{file = "cryptography-42.0.8-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7016f837e15b0a1c119d27ecd89b3515f01f90a8615ed5e9427e30d9cdbfed3d"},
|
{file = "cryptography-43.0.1.tar.gz", hash = "sha256:203e92a75716d8cfb491dc47c79e17d0d9207ccffcbcb35f598fbe463ae3444d"},
|
||||||
{file = "cryptography-42.0.8-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5a94eccb2a81a309806027e1670a358b99b8fe8bfe9f8d329f27d72c094dde8c"},
|
|
||||||
{file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:dec9b018df185f08483f294cae6ccac29e7a6e0678996587363dc352dc65c842"},
|
|
||||||
{file = "cryptography-42.0.8-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:343728aac38decfdeecf55ecab3264b015be68fc2816ca800db649607aeee648"},
|
|
||||||
{file = "cryptography-42.0.8-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:013629ae70b40af70c9a7a5db40abe5d9054e6f4380e50ce769947b73bf3caad"},
|
|
||||||
{file = "cryptography-42.0.8.tar.gz", hash = "sha256:8d09d05439ce7baa8e9e95b07ec5b6c886f548deb7e0f69ef25f64b3bce842f2"},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
@@ -165,9 +194,26 @@ nox = ["nox"]
|
|||||||
pep8test = ["check-sdist", "click", "mypy", "ruff"]
|
pep8test = ["check-sdist", "click", "mypy", "ruff"]
|
||||||
sdist = ["build"]
|
sdist = ["build"]
|
||||||
ssh = ["bcrypt (>=3.1.5)"]
|
ssh = ["bcrypt (>=3.1.5)"]
|
||||||
test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"]
|
test = ["certifi", "cryptography-vectors (==43.0.1)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"]
|
||||||
test-randomorder = ["pytest-randomly"]
|
test-randomorder = ["pytest-randomly"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "grafanalib"
|
||||||
|
version = "0.7.1"
|
||||||
|
description = "Library for building Grafana dashboards"
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "grafanalib-0.7.1-py3-none-any.whl", hash = "sha256:6fab5d7b837a1f2d1322ef762cd52e565ec0422707a7512765c59f668bdceb58"},
|
||||||
|
{file = "grafanalib-0.7.1.tar.gz", hash = "sha256:3d92bb4e92ae78fe4e21c5b252ab51f4fdcacd8523ba5a44545b897b2a375b83"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
attrs = ">=15.2.0"
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
dev = ["flake8", "pytest"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "jinja2"
|
name = "jinja2"
|
||||||
version = "3.1.4"
|
version = "3.1.4"
|
||||||
@@ -187,71 +233,72 @@ i18n = ["Babel (>=2.7)"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "markupsafe"
|
name = "markupsafe"
|
||||||
version = "2.1.5"
|
version = "3.0.1"
|
||||||
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.7"
|
python-versions = ">=3.9"
|
||||||
files = [
|
files = [
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:db842712984e91707437461930e6011e60b39136c7331e971952bb30465bc1a1"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3ffb4a8e7d46ed96ae48805746755fadd0909fea2306f93d5d8233ba23dda12a"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67c519635a4f64e495c50e3107d9b4075aec33634272b5db1cde839e07367589"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48488d999ed50ba8d38c581d67e496f955821dc183883550a6fbc7f1aefdc170"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f31ae06f1328595d762c9a2bf29dafd8621c7d3adc130cbb46278079758779ca"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:80fcbf3add8790caddfab6764bde258b5d09aefbe9169c183f88a7410f0f6dea"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3341c043c37d78cc5ae6e3e305e988532b072329639007fd408a476642a89fd6"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cb53e2a99df28eee3b5f4fea166020d3ef9116fdc5764bc5117486e6d1211b25"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-win32.whl", hash = "sha256:db15ce28e1e127a0013dfb8ac243a8e392db8c61eae113337536edb28bdc1f97"},
|
||||||
{file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"},
|
{file = "MarkupSafe-3.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:4ffaaac913c3f7345579db4f33b0020db693f302ca5137f106060316761beea9"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:26627785a54a947f6d7336ce5963569b5d75614619e75193bdb4e06e21d447ad"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b954093679d5750495725ea6f88409946d69cfb25ea7b4c846eef5044194f583"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:973a371a55ce9ed333a3a0f8e0bcfae9e0d637711534bcb11e130af2ab9334e7"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:244dbe463d5fb6d7ce161301a03a6fe744dac9072328ba9fc82289238582697b"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d98e66a24497637dd31ccab090b34392dddb1f2f811c4b4cd80c230205c074a3"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ad91738f14eb8da0ff82f2acd0098b6257621410dcbd4df20aaa5b4233d75a50"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7044312a928a66a4c2a22644147bc61a199c1709712069a344a3fb5cfcf16915"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a4792d3b3a6dfafefdf8e937f14906a51bd27025a36f4b188728a73382231d91"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-win32.whl", hash = "sha256:fa7d686ed9883f3d664d39d5a8e74d3c5f63e603c2e3ff0abcba23eac6542635"},
|
||||||
{file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"},
|
{file = "MarkupSafe-3.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:9ba25a71ebf05b9bb0e2ae99f8bc08a07ee8e98c612175087112656ca0f5c8bf"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8ae369e84466aa70f3154ee23c1451fda10a8ee1b63923ce76667e3077f2b0c4"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40f1e10d51c92859765522cbd79c5c8989f40f0419614bcdc5015e7b6bf97fc5"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a4cb365cb49b750bdb60b846b0c0bc49ed62e59a76635095a179d440540c346"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee3941769bd2522fe39222206f6dd97ae83c442a94c90f2b7a25d847d40f4729"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62fada2c942702ef8952754abfc1a9f7658a4d5460fabe95ac7ec2cbe0d02abc"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4c2d64fdba74ad16138300815cfdc6ab2f4647e23ced81f59e940d7d4a1469d9"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:fb532dd9900381d2e8f48172ddc5a59db4c445a11b9fab40b3b786da40d3b56b"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0f84af7e813784feb4d5e4ff7db633aba6c8ca64a833f61d8e4eade234ef0c38"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-win32.whl", hash = "sha256:cbf445eb5628981a80f54087f9acdbf84f9b7d862756110d172993b9a5ae81aa"},
|
||||||
{file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"},
|
{file = "MarkupSafe-3.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:a10860e00ded1dd0a65b83e717af28845bb7bd16d8ace40fe5531491de76b79f"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e81c52638315ff4ac1b533d427f50bc0afc746deb949210bc85f05d4f15fd772"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:312387403cd40699ab91d50735ea7a507b788091c416dd007eac54434aee51da"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ae99f31f47d849758a687102afdd05bd3d3ff7dbab0a8f1587981b58a76152a"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c97ff7fedf56d86bae92fa0a646ce1a0ec7509a7578e1ed238731ba13aabcd1c"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7420ceda262dbb4b8d839a4ec63d61c261e4e77677ed7c66c99f4e7cb5030dd"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:45d42d132cff577c92bfba536aefcfea7e26efb975bd455db4e6602f5c9f45e7"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4c8817557d0de9349109acb38b9dd570b03cc5014e8aabf1cbddc6e81005becd"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6a54c43d3ec4cf2a39f4387ad044221c66a376e58c0d0e971d47c475ba79c6b5"},
|
||||||
{file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-win32.whl", hash = "sha256:c91b394f7601438ff79a4b93d16be92f216adb57d813a78be4446fe0f6bc2d8c"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:fe32482b37b4b00c7a52a07211b479653b7fe4f22b2e481b9a9b099d8a430f2f"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:17b2aea42a7280db02ac644db1d634ad47dcc96faf38ab304fe26ba2680d359a"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:852dc840f6d7c985603e60b5deaae1d89c56cb038b577f6b5b8c808c97580f1d"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0778de17cff1acaeccc3ff30cd99a3fd5c50fc58ad3d6c0e0c4c58092b859396"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:800100d45176652ded796134277ecb13640c1a537cad3b8b53da45aa96330453"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d06b24c686a34c86c8c1fba923181eae6b10565e4d80bdd7bc1c8e2f11247aa4"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:33d1c36b90e570ba7785dacd1faaf091203d9942bc036118fab8110a401eb1a8"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:beeebf760a9c1f4c07ef6a53465e8cfa776ea6a2021eda0d0417ec41043fe984"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:bbde71a705f8e9e4c3e9e33db69341d040c827c7afa6789b14c6e16776074f5a"},
|
||||||
{file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-win32.whl", hash = "sha256:82b5dba6eb1bcc29cc305a18a3c5365d2af06ee71b123216416f7e20d2a84e5b"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"},
|
{file = "MarkupSafe-3.0.1-cp313-cp313t-win_amd64.whl", hash = "sha256:730d86af59e0e43ce277bb83970530dd223bf7f2a838e086b50affa6ec5f9295"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:4935dd7883f1d50e2ffecca0aa33dc1946a94c8f3fdafb8df5c330e48f71b132"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e9393357f19954248b00bed7c56f29a25c930593a77630c719653d51e7669c2a"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40621d60d0e58aa573b68ac5e2d6b20d44392878e0bfc159012a5787c4e35bc8"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f94190df587738280d544971500b9cafc9b950d32efcb1fba9ac10d84e6aa4e6"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6a387d61fe41cdf7ea95b38e9af11cfb1a63499af2759444b99185c4ab33f5b"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8ad4ad1429cd4f315f32ef263c1342166695fad76c100c5d979c45d5570ed58b"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e24bfe89c6ac4c31792793ad9f861b8f6dc4546ac6dc8f1c9083c7c4f2b335cd"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2a4b34a8d14649315c4bc26bbfa352663eb51d146e35eef231dd739d54a5430a"},
|
||||||
{file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-win32.whl", hash = "sha256:242d6860f1fd9191aef5fae22b51c5c19767f93fb9ead4d21924e0bcb17619d8"},
|
||||||
{file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"},
|
{file = "MarkupSafe-3.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:93e8248d650e7e9d49e8251f883eed60ecbc0e8ffd6349e18550925e31bd029b"},
|
||||||
|
{file = "markupsafe-3.0.1.tar.gz", hash = "sha256:3e683ee4f5d0fa2dde4db77ed8dd8a876686e3fc417655c2ece9a90576905344"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -292,62 +339,64 @@ files = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyyaml"
|
name = "pyyaml"
|
||||||
version = "6.0.1"
|
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.6"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"},
|
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"},
|
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"},
|
{file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"},
|
{file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"},
|
{file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"},
|
{file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"},
|
{file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
|
||||||
{file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"},
|
{file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"},
|
{file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"},
|
{file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"},
|
{file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"},
|
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"},
|
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"},
|
{file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"},
|
{file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
|
||||||
{file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"},
|
{file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
|
||||||
{file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"},
|
{file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
|
||||||
{file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"},
|
{file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
|
||||||
{file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"},
|
{file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
|
||||||
{file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"},
|
{file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
|
||||||
{file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"},
|
{file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
|
||||||
{file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"},
|
{file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
|
||||||
{file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"},
|
{file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
|
||||||
{file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"},
|
{file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
|
||||||
{file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"},
|
{file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
|
||||||
{file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"},
|
{file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
|
||||||
{file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"},
|
{file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
|
||||||
{file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"},
|
{file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
|
||||||
{file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"},
|
{file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
|
||||||
{file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"},
|
{file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
|
||||||
{file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"},
|
{file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
|
||||||
{file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"},
|
{file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
|
||||||
{file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"},
|
{file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
|
||||||
{file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"},
|
{file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
|
||||||
{file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"},
|
{file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
|
||||||
{file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"},
|
{file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
|
||||||
{file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"},
|
{file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
|
||||||
{file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"},
|
{file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
|
||||||
{file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"},
|
{file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
|
||||||
{file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"},
|
{file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
|
||||||
{file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"},
|
{file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
|
||||||
{file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"},
|
{file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"},
|
{file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"},
|
{file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"},
|
{file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"},
|
{file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"},
|
{file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"},
|
{file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"},
|
{file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
|
||||||
{file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"},
|
{file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
|
||||||
{file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"},
|
{file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
|
||||||
|
{file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
|
||||||
|
{file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -369,20 +418,25 @@ test = ["commentjson", "packaging", "pytest"]
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "setuptools"
|
name = "setuptools"
|
||||||
version = "70.1.1"
|
version = "75.1.0"
|
||||||
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.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "setuptools-70.1.1-py3-none-any.whl", hash = "sha256:a58a8fde0541dab0419750bcc521fbdf8585f6e5cb41909df3a472ef7b81ca95"},
|
{file = "setuptools-75.1.0-py3-none-any.whl", hash = "sha256:35ab7fd3bcd95e6b7fd704e4a1539513edad446c097797f2985e0e4b960772f2"},
|
||||||
{file = "setuptools-70.1.1.tar.gz", hash = "sha256:937a48c7cdb7a21eb53cd7f9b59e525503aa8abaf3584c730dc5f7a5bec3a650"},
|
{file = "setuptools-75.1.0.tar.gz", hash = "sha256:d59a21b17a275fb872a9c3dae73963160ae079f1049ed956880cd7c09b120538"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
docs = ["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"]
|
check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1)", "ruff (>=0.5.2)"]
|
||||||
testing = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.10.0)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.1)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"]
|
core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.collections", "jaraco.functools", "jaraco.text (>=3.7)", "more-itertools", "more-itertools (>=8.8)", "packaging", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"]
|
||||||
|
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)"]
|
||||||
|
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", "packaging (>=23.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)"]
|
||||||
|
type = ["importlib-metadata (>=7.0.2)", "jaraco.develop (>=7.21)", "mypy (==1.11.*)", "pytest-mypy"]
|
||||||
|
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.10"
|
python-versions = "^3.10"
|
||||||
content-hash = "2b6819adc72a58e8d504a1ba77064b09a47ec69d1cd39542ee6e068091927cb3"
|
content-hash = "334448cb0c7d192f0e10987a995ecefca5e136733cce4dd15dcc2238f1c371c8"
|
||||||
|
|||||||
@@ -11,6 +11,9 @@ ansible = "^10.1.0"
|
|||||||
ansible-vault = "^2.1.0"
|
ansible-vault = "^2.1.0"
|
||||||
netaddr = "^1.3.0"
|
netaddr = "^1.3.0"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
grafanalib = "^0.7.1"
|
||||||
|
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["poetry-core"]
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
66613933613334643836373939636238303035626535666161323634323837623565383337666232
|
|
||||||
6166363839626433636231323434633164643033633466650a393032356231306436663563613734
|
|
||||||
37316438306536316438383236373431333931373933323361623162323363623332333130653366
|
|
||||||
6363616430353835620a366666303230313239393430326538346436626239663431316639633139
|
|
||||||
33663261303864326162313235663536363332633731383636663165313061343863373333396536
|
|
||||||
31336234306337393730343861636232643561356165393664633537623662353830613338363833
|
|
||||||
306537353361653834656134383632306239
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
35303032386566343430633238343936366234333434343763666231666232633539303232383534
|
|
||||||
3035346233346162373939333531613535353232626531640a646537616163353736653161326265
|
|
||||||
31336530316335623335353661373834613264326436303933326135396166346562343136353931
|
|
||||||
6439383039346465300a366266393130356630316630333336616565366562613038393239623738
|
|
||||||
65626664643630353236333932373337333363626337386163613464306638633964663264363964
|
|
||||||
30373661393531306662323134626664656233323762393037356434353066343830333033316365
|
|
||||||
65616636613437663737306263373066306361376630616331663031346434336663393862316464
|
|
||||||
62343339663461353934323063653566303932656264363562333136353665336263646230323832
|
|
||||||
35376666303531383961646234663230663634393135326664386665633538616233613866373965
|
|
||||||
64363361313232316336376631646662376565353536316438306361306261663532386564616566
|
|
||||||
61663534393035343233326562303863646165346538393761326335376165623964396130393831
|
|
||||||
64333665313461666335383134613831376138393061343238643661366439636534626265323865
|
|
||||||
35393035336632653038623438626366373733626331633866373935616531623664303063376562
|
|
||||||
31356332346164663364636235333461383437623161343338643839323765336237633266633864
|
|
||||||
64363234646533616439313638363865373364623637636537623666383664656630333533303233
|
|
||||||
64383734366666633832393230663739333435666138636462336332373061346239306136336263
|
|
||||||
39643666303863303035313738343664636536663939616335303834333834363739303938646665
|
|
||||||
66303637633239373461393434313036316563313132356432633337666537616363373830313034
|
|
||||||
61313538633663653230643262613333306361666131663036643162343966313365653566393235
|
|
||||||
36623832663034373734653664613038363137366437326565373761663963636336393536386435
|
|
||||||
30393831326134376639366661653439616138643438646363343632346131306532663439396534
|
|
||||||
32383661306539306635336262383563376561303862396532633362666266313562623336383235
|
|
||||||
36366565633734633639653239306331333237353233326563653930653739316230666362323931
|
|
||||||
39663931376562653530323434656436353166393836643238643632396430353034333034333665
|
|
||||||
62323338373839383132323537353431636537616366393965643463316164323034316536383961
|
|
||||||
6164333537633631646663333463306236613038326339643439
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
POSTGRES_USER=gitea
|
|
||||||
POSTGRES_DB=gitea
|
|
||||||
POSTGRES_PASSWORD={{ db_password }}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
61626665353536663033663661393434616339396434383530306265363837313839303939623465
|
|
||||||
3634333839333530383464613966326238363738663637360a343837623832343232316565346131
|
|
||||||
66663831356162653363383131396665326531363430656539333866313031306537343864343262
|
|
||||||
3730643765633232620a643734623336646565663266656262343162613239306166386665333139
|
|
||||||
6366
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
65313636646233613364363933616361346639653939346337303832646339316632383966666237
|
|
||||||
3766396134383434613534373937663162393134306536300a626139373732393037346630333838
|
|
||||||
63663439353238643532316231623866396434303034313130386635623363353263626362376334
|
|
||||||
3933346434633662320a386432373465646432343338666561366161646335636232353133393933
|
|
||||||
65313364666564353039626238383033343765323730316633356139326666623135326131353864
|
|
||||||
32386237643538636538356261393164633137636235346564393930346539623731386633336339
|
|
||||||
31303466653936343166366164383134306232613236663735623834393963306331376435616365
|
|
||||||
31313866383730393063353335626164303632636331303830636530656131636139376633623439
|
|
||||||
63663639323964623231343066373538633336353561646230363363643762393634643435306164
|
|
||||||
31366364326237636365336363343264343562353337303235633034383635373934376334353336
|
|
||||||
61373065386639643064303431623162373665363937353832313561386134613834613935653964
|
|
||||||
64656339316165313936333736643030356366663162316462636662326134396539356262666536
|
|
||||||
64336133393937396330353234316563356337623733326264363333373536633833
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
NEXTCLOUD_VERSION=28-fpm-alpine
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
# https://github.com/nextcloud/docker/blob/master/.examples/docker-compose/with-nginx-proxy/postgres/fpm/web/nginx.conf
|
|
||||||
|
|
||||||
worker_processes auto;
|
|
||||||
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
|
||||||
pid /var/run/nginx.pid;
|
|
||||||
|
|
||||||
|
|
||||||
events {
|
|
||||||
worker_connections 1024;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
http {
|
|
||||||
include /etc/nginx/mime.types;
|
|
||||||
default_type application/octet-stream;
|
|
||||||
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
|
||||||
|
|
||||||
access_log /var/log/nginx/access.log main;
|
|
||||||
|
|
||||||
sendfile on;
|
|
||||||
#tcp_nopush on;
|
|
||||||
|
|
||||||
# Prevent nginx HTTP Server Detection
|
|
||||||
server_tokens off;
|
|
||||||
|
|
||||||
keepalive_timeout 65;
|
|
||||||
|
|
||||||
upstream php-handler {
|
|
||||||
server app:9000;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
|
|
||||||
# HSTS settings
|
|
||||||
# WARNING: Only add the preload option once you read about
|
|
||||||
# the consequences in https://hstspreload.org/. This option
|
|
||||||
# will add the domain to a hardcoded list that is shipped
|
|
||||||
# in all major browsers and getting removed from this list
|
|
||||||
# could take several months.
|
|
||||||
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always;
|
|
||||||
|
|
||||||
# set max upload size
|
|
||||||
client_max_body_size 512M;
|
|
||||||
fastcgi_buffers 64 4K;
|
|
||||||
|
|
||||||
# Enable gzip but do not remove ETag headers
|
|
||||||
gzip on;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_comp_level 4;
|
|
||||||
gzip_min_length 256;
|
|
||||||
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
|
|
||||||
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
|
|
||||||
|
|
||||||
# Pagespeed is not supported by Nextcloud, so if your server is built
|
|
||||||
# with the `ngx_pagespeed` module, uncomment this line to disable it.
|
|
||||||
#pagespeed off;
|
|
||||||
|
|
||||||
# HTTP response headers borrowed from Nextcloud `.htaccess`
|
|
||||||
add_header Referrer-Policy "no-referrer" always;
|
|
||||||
add_header X-Content-Type-Options "nosniff" always;
|
|
||||||
add_header X-Download-Options "noopen" always;
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
|
||||||
add_header X-Permitted-Cross-Domain-Policies "none" always;
|
|
||||||
add_header X-Robots-Tag "none" always;
|
|
||||||
add_header X-XSS-Protection "1; mode=block" always;
|
|
||||||
|
|
||||||
# Remove X-Powered-By, which is an information leak
|
|
||||||
fastcgi_hide_header X-Powered-By;
|
|
||||||
|
|
||||||
# Path to the root of your installation
|
|
||||||
root /var/www/html;
|
|
||||||
|
|
||||||
# Specify how to handle directories -- specifying `/index.php$request_uri`
|
|
||||||
# here as the fallback means that Nginx always exhibits the desired behaviour
|
|
||||||
# when a client requests a path that corresponds to a directory that exists
|
|
||||||
# on the server. In particular, if that directory contains an index.php file,
|
|
||||||
# that file is correctly served; if it doesn't, then the request is passed to
|
|
||||||
# the front-end controller. This consistent behaviour means that we don't need
|
|
||||||
# to specify custom rules for certain paths (e.g. images and other assets,
|
|
||||||
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus
|
|
||||||
# `try_files $uri $uri/ /index.php$request_uri`
|
|
||||||
# always provides the desired behaviour.
|
|
||||||
index index.php index.html /index.php$request_uri;
|
|
||||||
|
|
||||||
# Rule borrowed from `.htaccess` to handle Microsoft DAV clients
|
|
||||||
location = / {
|
|
||||||
if ( $http_user_agent ~ ^DavClnt ) {
|
|
||||||
return 302 /remote.php/webdav/$is_args$args;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
location = /robots.txt {
|
|
||||||
allow all;
|
|
||||||
log_not_found off;
|
|
||||||
access_log off;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Make a regex exception for `/.well-known` so that clients can still
|
|
||||||
# access it despite the existence of the regex rule
|
|
||||||
# `location ~ /(\.|autotest|...)` which would otherwise handle requests
|
|
||||||
# for `/.well-known`.
|
|
||||||
location ^~ /.well-known {
|
|
||||||
# The rules in this block are an adaptation of the rules
|
|
||||||
# in `.htaccess` that concern `/.well-known`.
|
|
||||||
|
|
||||||
location = /.well-known/carddav { return 301 /remote.php/dav/; }
|
|
||||||
location = /.well-known/caldav { return 301 /remote.php/dav/; }
|
|
||||||
|
|
||||||
location /.well-known/acme-challenge { try_files $uri $uri/ =404; }
|
|
||||||
location /.well-known/pki-validation { try_files $uri $uri/ =404; }
|
|
||||||
|
|
||||||
# Let Nextcloud's API for `/.well-known` URIs handle all other
|
|
||||||
# requests by passing them to the front-end controller.
|
|
||||||
return 301 /index.php$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
# Rules borrowed from `.htaccess` to hide certain paths from clients
|
|
||||||
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; }
|
|
||||||
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; }
|
|
||||||
|
|
||||||
# Ensure this block, which passes PHP files to the PHP process, is above the blocks
|
|
||||||
# which handle static assets (as seen below). If this block is not declared first,
|
|
||||||
# then Nginx will encounter an infinite rewriting loop when it prepends `/index.php`
|
|
||||||
# to the URI, resulting in a HTTP 500 error response.
|
|
||||||
location ~ \.php(?:$|/) {
|
|
||||||
# Required for legacy support
|
|
||||||
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
|
|
||||||
|
|
||||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
|
||||||
set $path_info $fastcgi_path_info;
|
|
||||||
|
|
||||||
try_files $fastcgi_script_name =404;
|
|
||||||
|
|
||||||
include fastcgi_params;
|
|
||||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
|
||||||
fastcgi_param PATH_INFO $path_info;
|
|
||||||
#fastcgi_param HTTPS on;
|
|
||||||
|
|
||||||
fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice
|
|
||||||
fastcgi_param front_controller_active true; # Enable pretty urls
|
|
||||||
fastcgi_pass php-handler;
|
|
||||||
|
|
||||||
fastcgi_intercept_errors on;
|
|
||||||
fastcgi_request_buffering off;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ \.(?:css|js|svg|gif)$ {
|
|
||||||
try_files $uri /index.php$request_uri;
|
|
||||||
expires 6M; # Cache-Control policy borrowed from `.htaccess`
|
|
||||||
access_log off; # Optional: Don't log access to assets
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ \.woff2?$ {
|
|
||||||
try_files $uri /index.php$request_uri;
|
|
||||||
expires 7d; # Cache-Control policy borrowed from `.htaccess`
|
|
||||||
access_log off; # Optional: Don't log access to assets
|
|
||||||
}
|
|
||||||
|
|
||||||
# Rule borrowed from `.htaccess`
|
|
||||||
location /remote {
|
|
||||||
return 301 /remote.php$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
location / {
|
|
||||||
try_files $uri $uri/ /index.php$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ^~ /push/ {
|
|
||||||
proxy_pass http://notify_push:7867/;
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
|
||||||
proxy_set_header Connection "Upgrade";
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
34666662336362656236356334333333396363393966626563643264306538333865623964373561
|
|
||||||
3038373931313365383531333762616439396136633230610a626435336166633261323266656366
|
|
||||||
36323335633865663538326331393635313766333639643861383738633835316533666463666363
|
|
||||||
6139323764386533390a363361636361636163373162626135393662666436323265646233653039
|
|
||||||
61353439356331393564363232303734626431333239633930373431616261306537393762383261
|
|
||||||
64336234653536316236383065636364326433393334316531316438323430306437666431323063
|
|
||||||
61383036336536343831633134636437633830346463336132653737376231666630383766656230
|
|
||||||
37376137336264363765653535303166626138646366353466616333613964323762306166376537
|
|
||||||
39633534336366333333316664326262353964386134333138316466303030636633383137613862
|
|
||||||
32646332323039386365653736666435373436633531323034633064633033646466306331383835
|
|
||||||
34386636386334396262666531356534663136393639623863326338643531346537353833663166
|
|
||||||
35613438306432623731633566393661376533653731373130306262393137663533333230653165
|
|
||||||
30653531636534656636393832383139626330383234376636313162373462313762666439323031
|
|
||||||
39393063303566353733666237666165633562333962386331626164343434643964343735313265
|
|
||||||
62313739376138656163623836663864616539336362626166336362633032326264313766346561
|
|
||||||
62396132386333663030333639623130376130353837326630383162323931396638366331393632
|
|
||||||
37383864666561323566383936353935396232363532356462366135313066633037306534393638
|
|
||||||
33333439613065333432303466303635363933313036306364393434333737353361393830663032
|
|
||||||
37636335393361343166343361396235316465373665663533663135373863663837313135343262
|
|
||||||
66326539653033313431396163303135373462373564623863346630353964303061303434303137
|
|
||||||
61613330363366346131396630656565333539353231623939383132303138353566653732306463
|
|
||||||
64303961653865333738613834353333313063393064343535353562383862666561393465386135
|
|
||||||
36373633303262343034393431613938363338346163396233663939613565306430663061623130
|
|
||||||
66323464373438366265373937303636313530376138356433643632353461376365333535303531
|
|
||||||
37616662323033633834343366626166363536383830356638633465333233663631396133653036
|
|
||||||
3233323563333632303365333661386435353830313435666132
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
34333936316336663466376163333433336136386632356366363139343239393333623138623265
|
|
||||||
3234373031623162623161383832613737393938653533630a353937373463626532306562316461
|
|
||||||
62646637353039396536623735613931373230643135373964313232376561303530386566343266
|
|
||||||
3261366363393335620a373162303030626461666164313432383263616237383230313937653435
|
|
||||||
65346564653230643837613436633565363865616636303031636530623063646630623730383163
|
|
||||||
66333864393362326462356531343039613061613466356237336365633339356464626162646538
|
|
||||||
66633235613638653036326439333833306237626539653564653536376434666238383638376333
|
|
||||||
32383637333766636337
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
61306635623363343430383032666564666533343661386663346334626137646137653533636461
|
|
||||||
6466643635383162343463303536323563646439323333390a366134333630373464666334333037
|
|
||||||
33303361383334353833633364313430636435326361343461616664623261616566306165663966
|
|
||||||
6262323130623766380a336135333361656665356433346366386664623361343832363537633237
|
|
||||||
34303437303035653136323964643761383261646131346466643663323665323166643364646262
|
|
||||||
37363564346639393765376630313361663835343736336361313365313234303935393066646561
|
|
||||||
61356432666130653230396435663064623462333537363962386534626566386630303638393332
|
|
||||||
66353165643032373766633564653237333663663465363431343132353738663636373037656136
|
|
||||||
39366430353632633461373939326330306530353762643764396233323835333030613165613334
|
|
||||||
35623361656638356462363264336565383133346533343666663532306139653965383831393733
|
|
||||||
30656462303234616566646336376234396430353466363062383935353162333363626565653665
|
|
||||||
64343234333132663138633935656565303235626235633562363566393861363436323331643935
|
|
||||||
33343030366563383735363233613830303930303762626365376338316436396238313565373562
|
|
||||||
36343737373164653836613436646638336638393636303534303262643336356533313630306632
|
|
||||||
64303138333834616662666332303266373932396263666239653133313936336531666536616338
|
|
||||||
37613764376232333438383465346463313531613030323463666532383666376238303161356136
|
|
||||||
39303236343837643039376266636334353530623764633161373434313962366430326166366333
|
|
||||||
3733656135343438393961663334653330646562643865303339
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
$ANSIBLE_VAULT;1.2;AES256;alpina
|
|
||||||
36343837633635363835346435333839633930656434343636623861663930333231303563313339
|
|
||||||
6139343262316564306533396465393664356637666530310a616535376436323031386435643538
|
|
||||||
31643935373036373839363863653434643263613731346666626163376266383635343866613536
|
|
||||||
3835313930383238630a363138656533616337643839383330356432303236346335613464393565
|
|
||||||
62363864323031343361643862356136316339643332393830373133656638333234656263613631
|
|
||||||
63633837633965633033316338336338643937363131393338396661636331363538346131303564
|
|
||||||
63313134636635663636363933373733633439663335356633313963326538663733373064303936
|
|
||||||
37663461333664333631633838316661383733356366613531626134303236643739366361306262
|
|
||||||
64363137666265366262373562386138313934313436363631636337373038613737
|
|
||||||
@@ -1,18 +1,15 @@
|
|||||||
- name: Ensure {{ collection }} collection directory exists
|
- name: Ensure {{ collection }} collection directory exists
|
||||||
file:
|
file:
|
||||||
path: "{{ my_svc_path }}/{{ collection }}"
|
path: "{{ alpina_svc_path }}/{{ collection }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: "700"
|
mode: "700"
|
||||||
|
|
||||||
- name: Deploy docker compose stacks for {{ collection }}
|
- name: Deploy docker compose stacks for {{ collection }}
|
||||||
vars:
|
vars:
|
||||||
current_stack_name: "{{ stack }}"
|
current_stack_name: "{{ stack }}"
|
||||||
current_stack_dest: "{{ my_svc_path }}/{{ collection }}/{{ stack }}"
|
current_stack_dest: "{{ alpina_svc_path }}/{{ collection }}/{{ stack }}"
|
||||||
current_stack_source: "{{ role_path }}/collections/{{ collection }}/{{ stack }}"
|
current_stack_source: "{{ role_path }}/templates/{{ collection }}/{{ stack }}"
|
||||||
include_tasks: deploy_compose_stack.yml
|
include_tasks: deploy_compose_stack.yml
|
||||||
loop: "{{ stacks }}"
|
loop: "{{ stacks }}"
|
||||||
loop_control:
|
loop_control:
|
||||||
loop_var: stack
|
loop_var: stack
|
||||||
|
|
||||||
- debug:
|
|
||||||
var: acme_email
|
|
||||||
|
|||||||
@@ -10,32 +10,33 @@
|
|||||||
file:
|
file:
|
||||||
path: "{{ current_stack_dest }}/{{ item.path }}"
|
path: "{{ current_stack_dest }}/{{ item.path }}"
|
||||||
state: directory
|
state: directory
|
||||||
mode: "700"
|
mode: "755"
|
||||||
loop: "{{ lookup('community.general.filetree', current_stack_source + '/templates') }}"
|
loop: "{{ lookup('community.general.filetree', current_stack_source) }}"
|
||||||
when: item.state == "directory"
|
when: item.state == "directory"
|
||||||
|
|
||||||
# TODO: This is not ideal as it leaks the variables between stacks
|
|
||||||
# But that's also not really a problem, as they won't conflict if everything is done right
|
|
||||||
- name: Include variables for stack {{ stack }}
|
|
||||||
include_vars:
|
|
||||||
file: "{{ current_stack_source }}/app_config.yml"
|
|
||||||
|
|
||||||
- name: Generate {{ current_stack_name }} deployment from templates
|
- name: Generate {{ current_stack_name }} deployment from templates
|
||||||
template:
|
template:
|
||||||
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: "600"
|
mode: "644"
|
||||||
loop: "{{ lookup('community.general.filetree', current_stack_source + '/templates') }}"
|
loop: "{{ lookup('community.general.filetree', current_stack_source) }}"
|
||||||
when: item.state == "file"
|
when: item.state == "file" and item.path | regex_search('\\.j2$')
|
||||||
|
|
||||||
|
- name: Generate {{ current_stack_name }} deployment from static files
|
||||||
|
copy:
|
||||||
|
src: "{{ item.src }}"
|
||||||
|
dest: "{{ current_stack_dest }}/{{ item.path }}"
|
||||||
|
mode: "644"
|
||||||
|
loop: "{{ lookup('community.general.filetree', current_stack_source) }}"
|
||||||
|
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 }}
|
||||||
command: docker compose -f "{{ current_stack_dest }}/docker-compose.yml" up -d --pull always --remove-orphans
|
community.docker.docker_compose_v2:
|
||||||
|
project_src: "{{ current_stack_dest }}"
|
||||||
|
state: present
|
||||||
|
pull: always
|
||||||
|
remove_orphans: yes
|
||||||
register: docker_compose_output
|
register: docker_compose_output
|
||||||
# Not perfect idempotency, but the built-in docker_compose module doesn't support docker-compose v2
|
|
||||||
# And of course there's an IPv6 bug in docker-compose v1, smh
|
|
||||||
# https://github.com/docker/compose/issues/7670
|
|
||||||
changed_when: "'created' in docker_compose_output.stderr.lower()"
|
|
||||||
failed_when: docker_compose_output.rc != 0
|
|
||||||
|
|
||||||
- debug:
|
# - debug:
|
||||||
var: docker_compose_output
|
# var: docker_compose_output
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
- name: Ensure alpina directory exists
|
- name: Ensure alpina directory exists
|
||||||
file:
|
file:
|
||||||
state: directory
|
state: directory
|
||||||
path: "{{ my_svc_path }}"
|
path: "{{ alpina_svc_path }}"
|
||||||
mode: "700"
|
mode: "700"
|
||||||
|
|
||||||
- name: Deploy collection services
|
- name: Deploy collection services
|
||||||
|
|||||||
@@ -21,8 +21,7 @@
|
|||||||
## AirVPN
|
## AirVPN
|
||||||
VPN_SERVICE_PROVIDER=airvpn
|
VPN_SERVICE_PROVIDER=airvpn
|
||||||
VPN_TYPE=wireguard
|
VPN_TYPE=wireguard
|
||||||
SERVER_NAMES=Bunda,Imai,Saclateni
|
SERVER_NAMES={{ vpn_server_names }}
|
||||||
#SERVER_NAMES=Bunda
|
|
||||||
WIREGUARD_PUBLIC_KEY={{ wg_peer_pubkey }}
|
WIREGUARD_PUBLIC_KEY={{ wg_peer_pubkey }}
|
||||||
WIREGUARD_PRIVATE_KEY={{ wg_privkey }}
|
WIREGUARD_PRIVATE_KEY={{ wg_privkey }}
|
||||||
WIREGUARD_PRESHARED_KEY={{ wg_psk }}
|
WIREGUARD_PRESHARED_KEY={{ wg_psk }}
|
||||||
3
roles/alpina/templates/apps/gitea/.env.db.j2
Normal file
3
roles/alpina/templates/apps/gitea/.env.db.j2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
POSTGRES_USER=gitea
|
||||||
|
POSTGRES_DB=gitea
|
||||||
|
POSTGRES_PASSWORD={{ gitea_db_password }}
|
||||||
@@ -3,9 +3,9 @@ GITEA____APP_NAME=CazGitea
|
|||||||
# Database
|
# Database
|
||||||
GITEA__database__DB_TYPE=postgres
|
GITEA__database__DB_TYPE=postgres
|
||||||
GITEA__database__HOST=db:5432
|
GITEA__database__HOST=db:5432
|
||||||
GITEA__database__NAME={{ db_user }}
|
GITEA__database__NAME=gitea
|
||||||
GITEA__database__USER={{ db_name }}
|
GITEA__database__USER=gitea
|
||||||
GITEA__database__PASSWD={{ db_password }}
|
GITEA__database__PASSWD={{ gitea_db_password }}
|
||||||
|
|
||||||
# Server
|
# Server
|
||||||
GITEA__server__ROOT_URL=https://gitea.{{ domain }}/
|
GITEA__server__ROOT_URL=https://gitea.{{ domain }}/
|
||||||
@@ -17,7 +17,7 @@ GITEA__mailer__SMTP_ADDR=smtp.sendgrid.net
|
|||||||
GITEA__mailer__SMTP_PORT=587
|
GITEA__mailer__SMTP_PORT=587
|
||||||
GITEA__mailer__FROM=gitea@cazzzer.com
|
GITEA__mailer__FROM=gitea@cazzzer.com
|
||||||
GITEA__mailer__USER=apikey
|
GITEA__mailer__USER=apikey
|
||||||
GITEA__mailer__PASSWD={{ sendgrid_api_key }}
|
GITEA__mailer__PASSWD={{ gitea_sendgrid_api_key }}
|
||||||
|
|
||||||
# Security
|
# Security
|
||||||
GITEA__security__SECRET_KEY={{ secret_key }}
|
GITEA__security__SECRET_KEY={{ secret_key }}
|
||||||
@@ -7,7 +7,7 @@ networks:
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
server:
|
server:
|
||||||
image: gitea/gitea:1.21
|
image: gitea/gitea:1.22
|
||||||
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) }}
|
||||||
@@ -22,7 +22,7 @@ services:
|
|||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
db:
|
db:
|
||||||
image: postgres:14-alpine
|
image: postgres:16-alpine
|
||||||
container_name: gitea_db
|
container_name: gitea_db
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
POSTGRES_USER=nextcloud
|
POSTGRES_USER=nextcloud
|
||||||
POSTGRES_DB=nextcloud
|
POSTGRES_DB=nextcloud
|
||||||
POSTGRES_PASSWORD={{ db_password }}
|
POSTGRES_PASSWORD={{ nextcloud_db_password }}
|
||||||
1
roles/alpina/templates/apps/nextcloud/.env.j2
Normal file
1
roles/alpina/templates/apps/nextcloud/.env.j2
Normal file
@@ -0,0 +1 @@
|
|||||||
|
NEXTCLOUD_VERSION=29-apache
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
POSTGRES_DB=nextcloud
|
POSTGRES_DB=nextcloud
|
||||||
POSTGRES_USER=nextcloud
|
POSTGRES_USER=nextcloud
|
||||||
POSTGRES_PASSWORD={{ db_password }}
|
POSTGRES_PASSWORD={{ nextcloud_db_password }}
|
||||||
POSTGRES_HOST=db
|
POSTGRES_HOST=db
|
||||||
|
|
||||||
NEXTCLOUD_TRUSTED_DOMAINS=nc.{{ domain }}
|
NEXTCLOUD_TRUSTED_DOMAINS=nc.{{ domain }}
|
||||||
@@ -13,11 +13,12 @@ SMTP_SECURE=tls
|
|||||||
SMTP_PORT=587
|
SMTP_PORT=587
|
||||||
SMTP_AUTHTYPE=LOGIN
|
SMTP_AUTHTYPE=LOGIN
|
||||||
SMTP_NAME=apikey
|
SMTP_NAME=apikey
|
||||||
SMTP_PASSWORD={{ sendgrid_api_key }}
|
SMTP_PASSWORD={{ nextcloud_sendgrid_api_key }}
|
||||||
MAIL_FROM_ADDRESS=nc
|
MAIL_FROM_ADDRESS=nc
|
||||||
MAIL_DOMAIN=cazzzer.com
|
MAIL_DOMAIN=cazzzer.com
|
||||||
|
|
||||||
TRUSTED_PROXIES={{ traefik_subnet }}
|
# host IPv4 and IPv6 addresses, loopback for notify_push
|
||||||
|
TRUSTED_PROXIES={{ hostvars[inventory_hostname]['ansible_default_ipv4']['address'] }} {{ hostvars[inventory_hostname]['ansible_default_ipv6']['address'] }} 127.0.0.1 ::1
|
||||||
OVERWRITEHOST=nc.{{ domain }}
|
OVERWRITEHOST=nc.{{ domain }}
|
||||||
OVERWRITEPROTOCOL=https
|
OVERWRITEPROTOCOL=https
|
||||||
OVERWRITECLIURL=https://nc.{{ domain }}
|
OVERWRITECLIURL=https://nc.{{ domain }}
|
||||||
4
roles/alpina/templates/apps/nextcloud/.env.notify_push
Normal file
4
roles/alpina/templates/apps/nextcloud/.env.notify_push
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
DATABASE_URL=postgres://nextcloud:{{ nextcloud_db_password }}@db/nextcloud
|
||||||
|
DATABASE_PREFIX=oc_
|
||||||
|
REDIS_URL=redis://:{{ redis_password }}@redis
|
||||||
|
NEXTCLOUD_URL=http://localhost
|
||||||
@@ -10,6 +10,8 @@ services:
|
|||||||
app:
|
app:
|
||||||
image: nextcloud:${NEXTCLOUD_VERSION}
|
image: nextcloud:${NEXTCLOUD_VERSION}
|
||||||
container_name: nextcloud_app
|
container_name: nextcloud_app
|
||||||
|
labels:
|
||||||
|
- {{ helpers.traefik_labels('nc', port='80') | indent(6) }}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
- db
|
- db
|
||||||
@@ -40,21 +42,28 @@ services:
|
|||||||
notify_push:
|
notify_push:
|
||||||
image: nextcloud:${NEXTCLOUD_VERSION}
|
image: nextcloud:${NEXTCLOUD_VERSION}
|
||||||
container_name: nextcloud_notify_push
|
container_name: nextcloud_notify_push
|
||||||
|
{# TODO: Refactor this and minio -#}
|
||||||
|
labels:
|
||||||
|
- traefik.enable=true
|
||||||
|
- 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
|
||||||
depends_on:
|
user: www-data
|
||||||
- app
|
env_file:
|
||||||
|
- .env.notify_push
|
||||||
|
network_mode: service:app
|
||||||
entrypoint:
|
entrypoint:
|
||||||
- /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push
|
- /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push
|
||||||
- /var/www/html/config/config.php
|
|
||||||
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_data:/var/www/html/data
|
|
||||||
|
|
||||||
db:
|
db:
|
||||||
image: postgres:13-alpine
|
image: postgres:16-alpine
|
||||||
container_name: nextcloud_db
|
container_name: nextcloud_db
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
@@ -65,7 +74,7 @@ services:
|
|||||||
- {{ base_volume_path }}/nextcloud/db:/var/lib/postgresql/data
|
- {{ base_volume_path }}/nextcloud/db:/var/lib/postgresql/data
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:7-alpine
|
image: redis:alpine
|
||||||
container_name: nextcloud_redis
|
container_name: nextcloud_redis
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
@@ -76,20 +85,3 @@ services:
|
|||||||
- sh
|
- sh
|
||||||
- -c
|
- -c
|
||||||
- redis-server --requirepass $$REDIS_PASSWORD
|
- redis-server --requirepass $$REDIS_PASSWORD
|
||||||
|
|
||||||
web:
|
|
||||||
image: nginx:1.23-alpine
|
|
||||||
container_name: nextcloud_web
|
|
||||||
labels:
|
|
||||||
- {{ helpers.traefik_labels('nc') | indent(6) }}
|
|
||||||
restart: unless-stopped
|
|
||||||
links:
|
|
||||||
- app
|
|
||||||
networks:
|
|
||||||
- traefik_traefik
|
|
||||||
- default
|
|
||||||
volumes:
|
|
||||||
- ./nginx.conf:/etc/nginx/nginx.conf:ro
|
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud:/var/www/html
|
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud_config:/var/www/html/config
|
|
||||||
- {{ base_volume_path }}/nextcloud/nextcloud_data:/var/www/html/data
|
|
||||||
@@ -4,14 +4,14 @@ AUTHENTIK_REDIS__HOST=redis
|
|||||||
AUTHENTIK_POSTGRESQL__HOST=postgres
|
AUTHENTIK_POSTGRESQL__HOST=postgres
|
||||||
AUTHENTIK_POSTGRESQL__USER=authentik
|
AUTHENTIK_POSTGRESQL__USER=authentik
|
||||||
AUTHENTIK_POSTGRESQL__NAME=authentik
|
AUTHENTIK_POSTGRESQL__NAME=authentik
|
||||||
AUTHENTIK_POSTGRESQL__PASSWORD={{ db_password }}
|
AUTHENTIK_POSTGRESQL__PASSWORD={{ authentik_db_password }}
|
||||||
|
|
||||||
AUTHENTIK_SECRET_KEY={{ authentik_secret_key }}
|
AUTHENTIK_SECRET_KEY={{ authentik_secret_key }}
|
||||||
|
|
||||||
AUTHENTIK_EMAIL__HOST=smtp.sendgrid.net
|
AUTHENTIK_EMAIL__HOST=smtp.sendgrid.net
|
||||||
AUTHENTIK_EMAIL__PORT=587
|
AUTHENTIK_EMAIL__PORT=587
|
||||||
AUTHENTIK_EMAIL__USERNAME=apikey
|
AUTHENTIK_EMAIL__USERNAME=apikey
|
||||||
AUTHENTIK_EMAIL__PASSWORD={{ sengrid_api_key }}
|
AUTHENTIK_EMAIL__PASSWORD={{ authentik_sendgrid_api_key }}
|
||||||
|
|
||||||
AUTHENTIK_EMAIL__USE_TLS=true
|
AUTHENTIK_EMAIL__USE_TLS=true
|
||||||
AUTHENTIK_EMAIL__TIMEOUT=10
|
AUTHENTIK_EMAIL__TIMEOUT=10
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
POSTGRES_USER=authentik
|
POSTGRES_USER=authentik
|
||||||
POSTGRES_DB=authentik
|
POSTGRES_DB=authentik
|
||||||
POSTGRES_PASSWORD={{ db_password }}
|
POSTGRES_PASSWORD={{ authentik_db_password }}
|
||||||
@@ -37,7 +37,7 @@ services:
|
|||||||
- {{ base_volume_path }}/authentik/certs:/certs
|
- {{ base_volume_path }}/authentik/certs:/certs
|
||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:12-alpine
|
image: postgres:16-alpine
|
||||||
container_name: authentik_postgres
|
container_name: authentik_postgres
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
@@ -13,7 +13,7 @@ services:
|
|||||||
- {{ helpers.traefik_labels('minio', port='9090') | indent(6) }}
|
- {{ helpers.traefik_labels('minio', port='9090') | indent(6) }}
|
||||||
- traefik.http.routers.minio.service=minio
|
- traefik.http.routers.minio.service=minio
|
||||||
- traefik.http.routers.minio-tls.service=minio
|
- traefik.http.routers.minio-tls.service=minio
|
||||||
- traefik.http.routers.minio-s3.rule=HostRegexp(`s3.{{ domain }}`, `{subdomain:.+}.s3.{{ domain }}`)
|
- traefik.http.routers.minio-s3.rule=Host(`s3.{{ domain }}`) || HostRegexp(`^.+[.]s3[.]{{ domain }}`)
|
||||||
- traefik.http.routers.minio-s3.entrypoints=websecure
|
- traefik.http.routers.minio-s3.entrypoints=websecure
|
||||||
- traefik.http.routers.minio-s3.tls=true
|
- traefik.http.routers.minio-s3.tls=true
|
||||||
- traefik.http.routers.minio-s3.tls.certresolver=letsencrypt
|
- traefik.http.routers.minio-s3.tls.certresolver=letsencrypt
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
DISCORD_WEBHOOK={{ alertmanager_discord_webhook }}
|
||||||
13
roles/alpina/templates/services/monitoring/Dockerfile
Normal file
13
roles/alpina/templates/services/monitoring/Dockerfile
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
FROM python:3-alpine AS builder
|
||||||
|
|
||||||
|
RUN pip install grafanalib
|
||||||
|
|
||||||
|
COPY ./grafana_config/dashboards /dashboards
|
||||||
|
|
||||||
|
RUN generate-dashboards /dashboards/*.dashboard.py
|
||||||
|
|
||||||
|
FROM grafana/grafana:latest
|
||||||
|
|
||||||
|
#COPY ./grafana_config /etc/grafana
|
||||||
|
COPY ./grafana_config/dashboards/*.yaml /etc/grafana/provisioning/dashboards
|
||||||
|
COPY --from=builder /dashboards/*.json /etc/grafana/provisioning/dashboards
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
# The root route on which each incoming alert enters.
|
||||||
|
route:
|
||||||
|
group_by: ["alertname", "job"]
|
||||||
|
group_wait: 20s
|
||||||
|
group_interval: 5m
|
||||||
|
repeat_interval: 3h
|
||||||
|
receiver: discord_webhook
|
||||||
|
|
||||||
|
receivers:
|
||||||
|
- name: "discord_webhook"
|
||||||
|
discord_configs:
|
||||||
|
- webhook_url: "{{ alertmanager_discord_webhook }}"
|
||||||
|
{# - send_resolved: true#}
|
||||||
|
{# username: 'Alertmanager'#}
|
||||||
|
{# webhook_configs:#}
|
||||||
|
{# - send_resolved: true#}
|
||||||
|
{# url: '{{ alertmanager_discord_webhook }}'#}
|
||||||
|
{# username: 'Alertmanager'#}
|
||||||
|
{# icon_url: 'https://prometheus.io/assets/icon.png'#}
|
||||||
|
{# icon_emoji: ':alert:'#}
|
||||||
|
{# send_resolved: true#}
|
||||||
|
{# text: "{{ .CommonAnnotations.summary }}"#}
|
||||||
|
{# title: "{{ .CommonLabels.alertname }}"#}
|
||||||
|
{# color: '{{ if eq .Status "firing" }}#FF0000{{ else }}#00FF00{{ end }}'#}
|
||||||
|
{# footer: '{{ .CommonLabels.monitor }}'#}
|
||||||
|
{# footer_icon: 'https://prometheus.io/assets/icon.png'#}
|
||||||
|
{# actions:#}
|
||||||
|
{# - type: 'button'#}
|
||||||
|
{# text: 'Open in Grafana'#}
|
||||||
|
{# url: '{{ .ExternalURL }}'#}
|
||||||
|
{# style: 'primary'#}
|
||||||
|
{# send_resolved: true#}
|
||||||
|
{# confirm:#}
|
||||||
|
{# title: 'Are you sure?'#}
|
||||||
|
{# text: 'This will open Grafana in a new tab.'#}
|
||||||
|
{# ok_text: 'Yes'#}
|
||||||
|
{# dismiss_text: 'No'#}
|
||||||
|
{# fields:#}
|
||||||
|
{# - title: 'Description'#}
|
||||||
|
{# value: "{{ .CommonAnnotations.description }}"#}
|
||||||
|
{# short: false#}
|
||||||
|
{# - title: 'Details'#}
|
||||||
|
{# value: "{{ .CommonAnnotations.details }}"#}
|
||||||
|
{# short: false#}
|
||||||
|
{# - title: 'Severity'#}
|
||||||
|
{# value: '{{ if eq .Labels.severity "critical" }}Critical{{ else if eq .Labels.severity "warning" }}Warning{{ else }}Info{{ end }}'#}
|
||||||
|
{# short: true#}
|
||||||
|
{# - title: 'Host'#}
|
||||||
|
{# value: '{{ .CommonLabels.monitor }}'#}
|
||||||
|
{# short: true#}
|
||||||
|
{# - title: 'Starts At'#}
|
||||||
|
{# value: '{{ .StartsAt.Format "2006-01-02 15:04:05" }}'#}
|
||||||
|
{# short: true#}
|
||||||
|
{# - title: 'Ends At'#}
|
||||||
|
{# value: '{{ .EndsAt.Format "2006-01-02 15:04:05" }}'#}
|
||||||
|
{# short: true#}
|
||||||
|
{# - title: 'Runbook'#}
|
||||||
|
{# value: '{{ .CommonAnnotations.runbook_url }}'#}
|
||||||
|
{# short: true#}
|
||||||
|
{# - title: 'Dashboard'#}
|
||||||
|
{# value: '{{ .CommonAnnotations.dashboard_url }}'#}
|
||||||
|
{# short: true#}
|
||||||
|
{# - title: 'Alerting Rule'#}
|
||||||
|
{# value: '{{ .CommonLabels.alertname }}'#}
|
||||||
|
{# short: true#}
|
||||||
|
{# - title: 'Alerting Rule Description'#}
|
||||||
|
{# value: '{{ .CommonLabels.alertname }}'#}
|
||||||
|
{# short: true#}
|
||||||
@@ -7,25 +7,30 @@ networks:
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
grafana:
|
grafana:
|
||||||
image: grafana/grafana:latest
|
{# image: grafana/grafana:latest#}
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
container_name: grafana
|
container_name: grafana
|
||||||
labels:
|
labels:
|
||||||
- {{ helpers.traefik_labels('grafana', port='3000') | indent(6) }}
|
- {{ helpers.traefik_labels('grafana', port='3000') | indent(6) }}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# Needed to make config files readable
|
# Needed to make config files readable (not anymore, TODO: remove)
|
||||||
user: "{{ remote_uid }}"
|
user: "{{ remote_uid }}"
|
||||||
networks:
|
networks:
|
||||||
- default
|
- default
|
||||||
- traefik_traefik
|
- traefik_traefik
|
||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/monitoring/grafana:/var/lib/grafana
|
- {{ base_volume_path }}/monitoring/grafana:/var/lib/grafana
|
||||||
- ./grafana_config:/etc/grafana:ro
|
- ./grafana_config/grafana.ini:/etc/grafana/grafana.ini:ro
|
||||||
|
- ./grafana_config/datasources:/etc/grafana/provisioning/datasources:ro
|
||||||
|
{# - ./grafana_config:/etc/grafana:ro#}
|
||||||
|
|
||||||
loki:
|
loki:
|
||||||
image: grafana/loki:latest
|
image: grafana/loki:latest
|
||||||
container_name: loki
|
container_name: loki
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# Needed to make config files readable
|
# Needed to make config files readable (not anymore, TODO: remove)
|
||||||
user: "{{ remote_uid }}"
|
user: "{{ remote_uid }}"
|
||||||
command:
|
command:
|
||||||
- -config.file=/etc/loki/loki-config.yaml
|
- -config.file=/etc/loki/loki-config.yaml
|
||||||
@@ -55,17 +60,33 @@ services:
|
|||||||
prometheus:
|
prometheus:
|
||||||
image: prom/prometheus:latest
|
image: prom/prometheus:latest
|
||||||
container_name: prometheus
|
container_name: prometheus
|
||||||
|
labels:
|
||||||
|
- {{ helpers.traefik_labels('prom', port='9090') | indent(6) }}
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
# Needed to make config files readable
|
# Needed to make config files readable (not anymore, TODO: remove)
|
||||||
user: "{{ remote_uid }}"
|
user: "{{ remote_uid }}"
|
||||||
command:
|
command:
|
||||||
- --config.file=/etc/prometheus/prometheus.yml
|
- --config.file=/etc/prometheus/prometheus.yml
|
||||||
- --storage.tsdb.retention.time=30d
|
- --storage.tsdb.retention.time=30d
|
||||||
|
- --web.external-url=https://prom.{{ domain }}/
|
||||||
volumes:
|
volumes:
|
||||||
- ./prometheus_config:/etc/prometheus:ro
|
- ./prometheus_config:/etc/prometheus:ro
|
||||||
- {{ base_volume_path }}/monitoring/prometheus_configs:/etc/prometheus/extra:ro
|
- {{ base_volume_path }}/monitoring/prometheus_configs:/etc/prometheus/extra:ro
|
||||||
- {{ base_volume_path }}/monitoring/prometheus:/prometheus
|
- {{ base_volume_path }}/monitoring/prometheus:/prometheus
|
||||||
|
|
||||||
|
alertmanager:
|
||||||
|
image: prom/alertmanager:latest
|
||||||
|
container_name: alertmanager
|
||||||
|
labels:
|
||||||
|
- {{ helpers.traefik_labels('alert', port='9093') | indent(6) }}
|
||||||
|
restart: unless-stopped
|
||||||
|
command:
|
||||||
|
- --config.file=/etc/alertmanager/alertmanager.yml
|
||||||
|
- --web.external-url=https://alert.{{ domain }}/
|
||||||
|
volumes:
|
||||||
|
- ./alertmanager_config:/etc/alertmanager:ro
|
||||||
|
- {{ base_volume_path }}/monitoring/alertmanager:/alertmanager
|
||||||
|
|
||||||
node-exporter:
|
node-exporter:
|
||||||
image: prom/node-exporter:latest
|
image: prom/node-exporter:latest
|
||||||
container_name: node-exporter
|
container_name: node-exporter
|
||||||
@@ -99,16 +120,6 @@ services:
|
|||||||
volumes:
|
volumes:
|
||||||
- {{ base_volume_path }}/monitoring/influxdb:/var/lib/influxdb2
|
- {{ base_volume_path }}/monitoring/influxdb:/var/lib/influxdb2
|
||||||
|
|
||||||
jaeger:
|
|
||||||
image: jaegertracing/all-in-one:1
|
|
||||||
container_name: jaeger
|
|
||||||
restart: unless-stopped
|
|
||||||
ports:
|
|
||||||
- 5778:5778
|
|
||||||
- 6831:6831/udp
|
|
||||||
volumes:
|
|
||||||
- {{ base_volume_path }}/monitoring/jaeger:/jaeger
|
|
||||||
|
|
||||||
uptime-kuma:
|
uptime-kuma:
|
||||||
image: louislam/uptime-kuma:1
|
image: louislam/uptime-kuma:1
|
||||||
container_name: uptime-kuma
|
container_name: uptime-kuma
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: 1
|
||||||
|
|
||||||
|
providers:
|
||||||
|
- name: "Grafana"
|
||||||
|
org_id: 1
|
||||||
|
folder: "Services"
|
||||||
|
type: "file"
|
||||||
|
options:
|
||||||
|
path: "/etc/grafana/provisioning/dashboards"
|
||||||
@@ -0,0 +1,140 @@
|
|||||||
|
from grafanalib.core import (
|
||||||
|
Dashboard, TimeSeries,
|
||||||
|
Target, GridPos,
|
||||||
|
Templating, Template, REFRESH_ON_TIME_RANGE_CHANGE, Logs
|
||||||
|
)
|
||||||
|
from grafanalib.formatunits import BYTES_IEC, SECONDS, BYTES_SEC_IEC
|
||||||
|
|
||||||
|
prom_datasource='prometheus'
|
||||||
|
loki_datasource='loki'
|
||||||
|
|
||||||
|
# TODO: this is (clown emoji), normal Target gave me errors in grafana
|
||||||
|
class LokiTarget(object):
|
||||||
|
def to_json_data(self):
|
||||||
|
return {
|
||||||
|
'datasource': loki_datasource,
|
||||||
|
'expr': '{compose_project=~"$compose_project", container_name=~"$container_name"} |= `$logs_query`',
|
||||||
|
'legendFormat': '{{ container_name }}',
|
||||||
|
'refId': 'A',
|
||||||
|
'queryType': 'range',
|
||||||
|
}
|
||||||
|
|
||||||
|
dashboard = Dashboard(
|
||||||
|
title='Containers',
|
||||||
|
uid='containers',
|
||||||
|
description='Data for compose projects from default Prometheus datasource collected by Cadvisor',
|
||||||
|
tags=[
|
||||||
|
'example'
|
||||||
|
],
|
||||||
|
templating=Templating(list=[
|
||||||
|
Template(
|
||||||
|
name='compose_project',
|
||||||
|
label='Compose Project',
|
||||||
|
dataSource=prom_datasource,
|
||||||
|
query='label_values({__name__=~"container.*"}, container_label_com_docker_compose_project)',
|
||||||
|
includeAll=True,
|
||||||
|
multi=True,
|
||||||
|
refresh=REFRESH_ON_TIME_RANGE_CHANGE,
|
||||||
|
),
|
||||||
|
Template(
|
||||||
|
name='container_name',
|
||||||
|
label='Container',
|
||||||
|
dataSource=prom_datasource,
|
||||||
|
query='label_values({__name__=~"container.*", container_label_com_docker_compose_project=~"$compose_project"}, name)',
|
||||||
|
includeAll=True,
|
||||||
|
multi=True,
|
||||||
|
refresh=REFRESH_ON_TIME_RANGE_CHANGE,
|
||||||
|
|
||||||
|
),
|
||||||
|
Template(
|
||||||
|
name='logs_query',
|
||||||
|
label='Log Search',
|
||||||
|
query='',
|
||||||
|
type='textbox',
|
||||||
|
),
|
||||||
|
]),
|
||||||
|
timezone='browser',
|
||||||
|
panels=[
|
||||||
|
TimeSeries(
|
||||||
|
id=1,
|
||||||
|
title='Container Memory Usage',
|
||||||
|
unit=BYTES_IEC,
|
||||||
|
gridPos=GridPos(h=8, w=12, x=0, y=0),
|
||||||
|
lineWidth=2,
|
||||||
|
fillOpacity=10,
|
||||||
|
showPoints='never',
|
||||||
|
stacking={'mode': 'normal'},
|
||||||
|
tooltipMode='all',
|
||||||
|
tooltipSort='desc',
|
||||||
|
targets=[
|
||||||
|
Target(
|
||||||
|
datasource=prom_datasource,
|
||||||
|
expr='max by (name) (container_memory_usage_bytes{name=~"$container_name", container_label_com_docker_compose_project=~"$compose_project"})',
|
||||||
|
legendFormat='{{ name }}',
|
||||||
|
refId='A',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
TimeSeries(
|
||||||
|
id=2,
|
||||||
|
title='Container CPU Usage',
|
||||||
|
unit=SECONDS,
|
||||||
|
gridPos=GridPos(h=8, w=12, x=12, y=0),
|
||||||
|
lineWidth=2,
|
||||||
|
fillOpacity=10,
|
||||||
|
showPoints='never',
|
||||||
|
targets=[
|
||||||
|
Target(
|
||||||
|
datasource=prom_datasource,
|
||||||
|
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 }}',
|
||||||
|
refId='A',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
TimeSeries(
|
||||||
|
id=3,
|
||||||
|
title='Container Network Traffic',
|
||||||
|
unit=BYTES_SEC_IEC,
|
||||||
|
gridPos=GridPos(h=8, w=12, x=0, y=8),
|
||||||
|
lineWidth=2,
|
||||||
|
fillOpacity=10,
|
||||||
|
showPoints='never',
|
||||||
|
tooltipMode='all',
|
||||||
|
tooltipSort='desc',
|
||||||
|
targets=[
|
||||||
|
Target(
|
||||||
|
datasource=prom_datasource,
|
||||||
|
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 }}",
|
||||||
|
refId='A',
|
||||||
|
),
|
||||||
|
Target(
|
||||||
|
datasource=prom_datasource,
|
||||||
|
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 }}",
|
||||||
|
refId='B',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
Logs(
|
||||||
|
id=4,
|
||||||
|
title='',
|
||||||
|
gridPos=GridPos(h=8, w=12, x=12, y=8),
|
||||||
|
showLabels=True,
|
||||||
|
showCommonLabels=True,
|
||||||
|
wrapLogMessages=True,
|
||||||
|
prettifyLogMessage=True,
|
||||||
|
dedupStrategy='numbers',
|
||||||
|
targets=[
|
||||||
|
LokiTarget(),
|
||||||
|
# Target(
|
||||||
|
# datasource=loki_datasource,
|
||||||
|
# expr='{compose_project=~"$compose_project", container_name=~"$container_name"} |= `$logs_query`',
|
||||||
|
# legendFormat='{{ container_name }}',
|
||||||
|
# refId='A',
|
||||||
|
# ),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
).auto_panel_ids()
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
from grafanalib.core import (
|
||||||
|
Dashboard, TimeSeries, GaugePanel,
|
||||||
|
Target, GridPos,
|
||||||
|
OPS_FORMAT
|
||||||
|
)
|
||||||
|
|
||||||
|
dashboard = Dashboard(
|
||||||
|
title="Python generated example dashboard",
|
||||||
|
description="Example dashboard using the Random Walk and default Prometheus datasource",
|
||||||
|
tags=[
|
||||||
|
'example'
|
||||||
|
],
|
||||||
|
timezone="browser",
|
||||||
|
panels=[
|
||||||
|
TimeSeries(
|
||||||
|
title="Random Walk",
|
||||||
|
dataSource='default',
|
||||||
|
targets=[
|
||||||
|
Target(
|
||||||
|
datasource='grafana',
|
||||||
|
expr='example',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
gridPos=GridPos(h=8, w=16, x=0, y=0),
|
||||||
|
),
|
||||||
|
GaugePanel(
|
||||||
|
title="Random Walk",
|
||||||
|
dataSource='default',
|
||||||
|
targets=[
|
||||||
|
Target(
|
||||||
|
datasource='grafana',
|
||||||
|
expr='example',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
gridPos=GridPos(h=4, w=4, x=17, y=0),
|
||||||
|
),
|
||||||
|
TimeSeries(
|
||||||
|
title="Prometheus http requests",
|
||||||
|
dataSource='prometheus',
|
||||||
|
targets=[
|
||||||
|
Target(
|
||||||
|
expr='rate(prometheus_http_requests_total[5m])',
|
||||||
|
legendFormat="{{ handler }}",
|
||||||
|
refId='A',
|
||||||
|
),
|
||||||
|
],
|
||||||
|
unit=OPS_FORMAT,
|
||||||
|
gridPos=GridPos(h=8, w=16, x=0, y=10),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
).auto_panel_ids()
|
||||||
@@ -15,6 +15,18 @@ datasources:
|
|||||||
url: http://prometheus:9090
|
url: http://prometheus:9090
|
||||||
editable: false
|
editable: false
|
||||||
|
|
||||||
|
- name: Alertmanager
|
||||||
|
type: alertmanager
|
||||||
|
access: proxy
|
||||||
|
uid: alertmanager
|
||||||
|
url: http://alertmanager:9093
|
||||||
|
jsonData:
|
||||||
|
# Valid options for implementation include mimir, cortex and prometheus
|
||||||
|
implementation: prometheus
|
||||||
|
# Whether Grafana should send alert instances to this Alertmanager
|
||||||
|
handleGrafanaManagedAlerts: true
|
||||||
|
editable: false
|
||||||
|
|
||||||
- name: InfluxDB
|
- name: InfluxDB
|
||||||
type: influxdb
|
type: influxdb
|
||||||
access: proxy
|
access: proxy
|
||||||
@@ -27,20 +39,3 @@ datasources:
|
|||||||
secureJsonData:
|
secureJsonData:
|
||||||
token: {{ influxdb_admin_token }}
|
token: {{ influxdb_admin_token }}
|
||||||
editable: false
|
editable: false
|
||||||
|
|
||||||
- name: Jaeger
|
|
||||||
type: jaeger
|
|
||||||
access: proxy
|
|
||||||
uid: jaeger
|
|
||||||
url: http://jaeger:16686
|
|
||||||
editable: false
|
|
||||||
jsonData:
|
|
||||||
tracesToLogsV2:
|
|
||||||
datasourceUid: loki
|
|
||||||
spanStartTimeShift: 1h
|
|
||||||
spanEndTimeShift: -1h
|
|
||||||
tags: []
|
|
||||||
filterByTraceID: false
|
|
||||||
filterBySpanID: false
|
|
||||||
customQuery: true
|
|
||||||
query: '{container_name=~".*$${__span.tags["traefik.service.name"]}.*"}'
|
|
||||||
@@ -20,10 +20,17 @@ schema_config:
|
|||||||
- from: 2020-10-24
|
- from: 2020-10-24
|
||||||
store: boltdb-shipper
|
store: boltdb-shipper
|
||||||
object_store: filesystem
|
object_store: filesystem
|
||||||
schema: v11
|
schema: v12
|
||||||
index:
|
index:
|
||||||
prefix: index_
|
prefix: index_
|
||||||
period: 24h
|
period: 24h
|
||||||
|
- from: 2024-10-18
|
||||||
|
index:
|
||||||
|
period: 24h
|
||||||
|
prefix: index_
|
||||||
|
object_store: filesystem
|
||||||
|
schema: v13
|
||||||
|
store: tsdb
|
||||||
|
|
||||||
# TODO: Figure this out
|
# TODO: Figure this out
|
||||||
ruler:
|
ruler:
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
groups:
|
||||||
|
- name: qbit-low-traffic
|
||||||
|
interval: 1m
|
||||||
|
rules:
|
||||||
|
- alert: QbitLowTraffic
|
||||||
|
expr: |
|
||||||
|
rate(container_network_transmit_bytes_total{name=~"gluetun"}[1m]) < 1024
|
||||||
|
for: 2m
|
||||||
|
labels:
|
||||||
|
severity: warning
|
||||||
|
annotations:
|
||||||
|
title: 'Low traffic on qBit'
|
||||||
|
description: |
|
||||||
|
The traffic on qBittorrent is lower than 1KiB/s for 2 minutes.
|
||||||
|
|
||||||
|
Last value was x bytes/s.
|
||||||
|
|
||||||
|
[Grafana Dashboard](https://grafana.{{ domain }}/d/containers?orgId=1)
|
||||||
|
[View in Grafana](https://grafana.{{ domain }}/d/containers?orgId=1&viewPanel=3)
|
||||||
|
|
||||||
|
__dashboard__uid: 'containers'
|
||||||
|
__orgId__: 1
|
||||||
|
__panelId__: 3
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
groups:
|
||||||
|
- name: demo-service-alerts
|
||||||
|
rules:
|
||||||
|
- alert: DemoServiceHighErrorRate
|
||||||
|
expr: |
|
||||||
|
(
|
||||||
|
sum without(status, instance) (
|
||||||
|
rate(demo_api_request_duration_seconds_count{status=~"5..",job="demo"}[1m])
|
||||||
|
)
|
||||||
|
/
|
||||||
|
sum without(status, instance) (
|
||||||
|
rate(demo_api_request_duration_seconds_count{job="demo"}[1m])
|
||||||
|
) * 100 > 0.5
|
||||||
|
)
|
||||||
|
for: 1m
|
||||||
|
labels:
|
||||||
|
severity: critical
|
||||||
|
annotations:
|
||||||
|
title: 'High 5xx rate for {{'{{ $labels.method }}'}} on {{'{{ $labels.path }}'}}'
|
||||||
|
description: 'The 5xx error rate for path {{'{{ $labels.path }}'}} with method {{'{{ $labels.method }}'}} in {{'{{ $labels.job }}'}} is {{'{{ printf "%.2f" $value }}'}}%.'
|
||||||
@@ -5,6 +5,11 @@ global:
|
|||||||
external_labels:
|
external_labels:
|
||||||
monitor: "{{ ansible_host }}"
|
monitor: "{{ ansible_host }}"
|
||||||
|
|
||||||
|
alerting:
|
||||||
|
alertmanagers:
|
||||||
|
- static_configs:
|
||||||
|
- targets: ["alertmanager:9093"]
|
||||||
|
|
||||||
scrape_configs:
|
scrape_configs:
|
||||||
- job_name: "prometheus"
|
- job_name: "prometheus"
|
||||||
static_configs:
|
static_configs:
|
||||||
@@ -30,7 +35,15 @@ scrape_configs:
|
|||||||
static_configs:
|
static_configs:
|
||||||
- targets: ["promtail:9080"]
|
- targets: ["promtail:9080"]
|
||||||
|
|
||||||
|
- job_name: 'demo'
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- 'demo.promlabs.com:10000'
|
||||||
|
- 'demo.promlabs.com:10001'
|
||||||
|
- 'demo.promlabs.com:10002'
|
||||||
|
|
||||||
rule_files:
|
rule_files:
|
||||||
|
- "/etc/prometheus/container.alerts.yml"
|
||||||
- "/etc/prometheus/extra/rules/*.yml"
|
- "/etc/prometheus/extra/rules/*.yml"
|
||||||
- "/etc/prometheus/extra/rules/*.json"
|
- "/etc/prometheus/extra/rules/*.json"
|
||||||
|
|
||||||
@@ -12,7 +12,7 @@ networks:
|
|||||||
|
|
||||||
services:
|
services:
|
||||||
traefik:
|
traefik:
|
||||||
image: traefik:v2.10
|
image: traefik:v3.0
|
||||||
container_name: traefik
|
container_name: traefik
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
env_file:
|
env_file:
|
||||||
@@ -8,9 +8,6 @@ accessLog:
|
|||||||
filePath: /logs/access.log
|
filePath: /logs/access.log
|
||||||
bufferingSize: 100
|
bufferingSize: 100
|
||||||
|
|
||||||
experimental:
|
|
||||||
http3: true
|
|
||||||
|
|
||||||
entryPoints:
|
entryPoints:
|
||||||
web:
|
web:
|
||||||
address: ":80"
|
address: ":80"
|
||||||
@@ -25,10 +22,6 @@ metrics:
|
|||||||
prometheus:
|
prometheus:
|
||||||
entryPoint: metrics
|
entryPoint: metrics
|
||||||
|
|
||||||
tracing:
|
|
||||||
jaeger:
|
|
||||||
samplingServerURL: http://localhost:5778/sampling
|
|
||||||
|
|
||||||
certificatesResolvers:
|
certificatesResolvers:
|
||||||
letsencrypt:
|
letsencrypt:
|
||||||
acme:
|
acme:
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
|
|
||||||
- name: Clean alpina directory
|
- name: Clean alpina directory
|
||||||
file:
|
file:
|
||||||
path: "{{ my_svc_path }}"
|
path: "{{ alpina_svc_path }}"
|
||||||
state: absent
|
state: absent
|
||||||
when: clean_desired is true
|
when: clean_desired is true
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
- hosts: docker_hosts
|
- hosts: alpina
|
||||||
roles:
|
roles:
|
||||||
- docker_host
|
- docker_host
|
||||||
- alpina
|
- alpina
|
||||||
|
|||||||
Reference in New Issue
Block a user