Skip to content

Commit 2d8f04b

Browse files
committed
[IMP] Bump doodba to v9.0.5, Traefik to 3.0, and Postgres to 17
1 parent 2f1d4d9 commit 2d8f04b

10 files changed

Lines changed: 157 additions & 142 deletions

.copier-answers.yml

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
2-
_commit: v8.4.2
2+
_commit: v9.0.5
33
_src_path: gh:Tecnativa/doodba-copier-template
44
backup_deletion: false
55
backup_dst: boto3+s3://man18-backup
@@ -9,20 +9,20 @@ backup_image_version: latest
99
backup_tz: America/Detroit
1010
cidr_whitelist: null
1111
domains_prod:
12-
- hosts:
13-
- manmanufacturing.com
14-
- hosts:
15-
- www.manmanufacturing.com
12+
- hosts:
13+
- manmanufacturing.com
14+
- hosts:
15+
- www.manmanufacturing.com
1616
redirect_permanent: true
1717
redirect_to: manmanufacturing.com
1818
domains_test:
19-
- hosts:
20-
- test.manmanufacturing.com
21-
- hosts:
22-
- www.test.manmanufacturing.com
19+
- hosts:
20+
- test.manmanufacturing.com
21+
- hosts:
22+
- www.test.manmanufacturing.com
2323
redirect_permanent: true
2424
redirect_to: test.manmanufacturing.com
25-
gitlab_url: ''
25+
gitlab_url: ""
2626
odoo_dbfilter: ^prod
2727
odoo_initial_lang: en_US
2828
odoo_listdb: false
@@ -31,14 +31,14 @@ odoo_oci_image: ghcr.io/pyxiris/man18
3131
odoo_proxy: traefik
3232
odoo_version: 18.0
3333
paths_with_crawlers:
34-
- /web/image/website
34+
- /web/image/website
3535
paths_without_crawlers:
36-
- /web
37-
- /website/info
36+
- /web
37+
- /website/info
3838
postgres_dbname: prod
3939
postgres_exposed: false
4040
postgres_username: odoo
41-
postgres_version: '16'
41+
postgres_version: "17"
4242
project_author: Liam Noonan
4343
project_license: LGPL-3.0-or-later
4444
project_name: man18
@@ -49,5 +49,4 @@ smtp_relay_host: smtp-relay.brevo.com
4949
smtp_relay_port: 587
5050
smtp_relay_user: 95fbdc001@smtp-brevo.com
5151
smtp_relay_version: latest
52-
traefik_version: 2
53-
52+
traefik_version: 3

.pre-commit-config.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ repos:
2323
files: "\\.rej$"
2424
- &maintainer_tools
2525
repo: https://github.com/oca/maintainer-tools
26-
rev: b89f767503be6ab2b11e4f50a7557cb20066e667
26+
rev: f9b919b9868143135a9c9cb03021089cabba8223
2727
hooks:
2828
# update the NOT INSTALLABLE ADDONS section above
2929
- id: oca-update-pre-commit-excluded-addons
@@ -59,8 +59,10 @@ repos:
5959
- id: trailing-whitespace
6060
- id: end-of-file-fixer
6161
- id: debug-statements
62+
6263
- id: fix-encoding-pragma
6364
args: ["--remove"]
65+
6466
- id: check-case-conflict
6567
- id: check-docstring-first
6668
- id: check-executables-have-shebangs

.ruff.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ exclude = ["setup/*"]
1515
[format]
1616
exclude = ["setup/*"]
1717

18-
[per-file-ignores]
18+
[lint.per-file-ignores]
1919
"__init__.py" = ["F401", "I001"] # ignore unused and unsorted imports in __init__.py
2020
"__manifest__.py" = ["B018"] # useless expression
2121

22-
[isort]
22+
[lint.isort]
2323
section-order = ["future", "standard-library", "third-party", "odoo", "odoo-addons", "first-party", "local-folder"]
2424

25-
[isort.sections]
25+
[lint.isort.sections]
2626
"odoo" = ["odoo"]
2727
"odoo-addons" = ["odoo.addons"]
2828

29-
[mccabe]
29+
[lint.mccabe]
3030
max-complexity = 16

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[![Doodba deployment](https://img.shields.io/badge/deployment-doodba-informational)](https://github.com/Tecnativa/doodba)
2-
[![Last template update](https://img.shields.io/badge/last%20template%20update-v8.4.2-informational)](https://github.com/Tecnativa/doodba-copier-template/tree/v8.4.2)
2+
[![Last template update](https://img.shields.io/badge/last%20template%20update-v9.0.5-informational)](https://github.com/Tecnativa/doodba-copier-template/tree/v9.0.5)
33
[![Odoo](https://img.shields.io/badge/odoo-v18.0-a3478a)](https://github.com/odoo/odoo/tree/18.0)
44
[![Deployment data](https://img.shields.io/badge/%F0%9F%8C%90%20prod-manmanufacturing.com-green)](http://manmanufacturing.com)
55
[![Deployment data](https://img.shields.io/badge/%E2%9A%92%20demo-test.manmanufacturing.com-yellow)](http://test.manmanufacturing.com)

common.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ services:
66
build:
77
context: ./odoo
88
args:
9-
DB_VERSION: "16"
9+
DB_VERSION: "17"
1010
ODOO_VERSION: "18.0"
1111
UID: "${UID:-1000}"
1212
GID: "${GID:-1000}"
@@ -25,7 +25,7 @@ services:
2525
traefik.port: "8069"
2626

2727
db:
28-
image: ghcr.io/tecnativa/postgres-autoconf:16-alpine
28+
image: ghcr.io/tecnativa/postgres-autoconf:17-alpine
2929
shm_size: 4gb
3030
environment:
3131
POSTGRES_DB: *dbname
@@ -111,7 +111,7 @@ services:
111111
hostname: backup.manmanufacturing.com
112112
init: true
113113
environment:
114-
DB_VERSION: "16"
114+
DB_VERSION: "17"
115115
DBS_TO_INCLUDE: "^prod"
116116
DST: "boto3+s3://man18-backup"
117117
EMAIL_FROM: "backups@manmanufacturing.com"

devel.yaml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ services:
99
default:
1010
public:
1111
ports:
12-
- "127.0.0.1:18899:6899"
13-
- "127.0.0.1:18069:8069"
14-
- "127.0.0.1:18072:8072"
12+
- "127.0.0.1:${PORT_PREFIX:-18}899:6899"
13+
- "127.0.0.1:${PORT_PREFIX:-18}069:8069"
14+
- "127.0.0.1:${PORT_PREFIX:-18}072:8072"
1515
environment:
1616
PORT: "6899 8069 8072"
1717
TARGET: odoo
@@ -41,7 +41,7 @@ services:
4141
PYTHONOPTIMIZE: ""
4242
PYTHONPATH: /opt/odoo/custom/src/odoo
4343
SMTP_PORT: "1025"
44-
WDB_WEB_PORT: "18984"
44+
WDB_WEB_PORT: "${PORT_PREFIX:-18}984"
4545
# To avoid installing demo data export DOODBA_WITHOUT_DEMO=all
4646
WITHOUT_DEMO: "${DOODBA_WITHOUT_DEMO-false}"
4747
volumes:
@@ -78,7 +78,7 @@ services:
7878
image: docker.io/sosedoff/pgweb
7979
networks: *public
8080
ports:
81-
- "127.0.0.1:18081:8081"
81+
- "127.0.0.1:${PORT_PREFIX:-18}081:8081"
8282
environment:
8383
DATABASE_URL: postgres://odoo:odoopassword@db:5432/devel?sslmode=disable
8484
depends_on:
@@ -90,7 +90,7 @@ services:
9090
service: smtpfake
9191
networks: *public
9292
ports:
93-
- "127.0.0.1:18025:8025"
93+
- "127.0.0.1:${PORT_PREFIX:-18}025:8025"
9494
environment:
9595
MP_SMTP_RELAY_HOST: &mailserver mailserver
9696

@@ -127,7 +127,7 @@ services:
127127
image: docker.io/kozea/wdb
128128
networks: *public
129129
ports:
130-
- "127.0.0.1:18984:1984"
130+
- "127.0.0.1:${PORT_PREFIX:-18}984:1984"
131131
# HACK https://github.com/Kozea/wdb/issues/136
132132
init: true
133133

inverseproxy.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: "2.4"
22
services:
33
proxy:
4-
image: traefik:2.4
4+
image: traefik:3.0
55
networks:
66
shared:
77
aliases: []
@@ -15,6 +15,10 @@ services:
1515
depends_on:
1616
- dockersocket
1717
restart: unless-stopped
18+
environment:
19+
AWS_ACCESS_KEY_ID: ""
20+
AWS_SECRET_ACCESS_KEY: ""
21+
LEGO_EXPERIMENTAL_CNAME_SUPPORT: "true"
1822
tty: true
1923
command:
2024
- "--entrypoints.web-insecure.address=:80"

prod.yaml

Lines changed: 56 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -30,112 +30,110 @@ services:
3030
traefik.domain: "manmanufacturing.com"
3131
traefik.forbiddenCrawlers-0.frontend.headers.customResponseHeaders:
3232
"X-Robots-Tag:noindex, nofollow"
33-
traefik.forbiddenCrawlers-0.frontend.rule: Host(`manmanufacturing.com`);Path:/web,/web/{anything:.*},/website/info,/website/info/{anything:.*}
33+
traefik.forbiddenCrawlers-0.frontend.rule:
34+
Host(`manmanufacturing.com`) && (PathPrefix(`/web`) || Path(`/web`) ||
35+
PathPrefix(`/website/info`) || Path(`/website/info`))
3436
traefik.main-0.frontend.rule: Host(`manmanufacturing.com`)
35-
traefik.longpolling-0.frontend.rule: Host(`manmanufacturing.com`);Path:/websocket,/websocket/{anything:.*}
37+
traefik.longpolling-0.frontend.rule:
38+
Host(`manmanufacturing.com`) && (PathPrefix(`/websocket`) || Path(`/websocket`))
3639
traefik.longpolling-0.port: 8072
3740
traefik.alt-1.frontend.redirect.regex: ^(.*)://([^/]+)/(.*)$$
3841
traefik.alt-1.frontend.redirect.replacement: $$1://manmanufacturing.com/$$3
3942
traefik.alt-1.frontend.rule: Host(`www.manmanufacturing.com`)
4043
traefik.http.middlewares.man18-18-0-prod-buffering.buffering.retryExpression:
4144
IsNetworkError() && Attempts() < 5
4245
traefik.http.middlewares.man18-18-0-prod-compress.compress: "true"
43-
? traefik.http.middlewares.man18-18-0-prod-forbid-crawlers.headers.customResponseHeaders.X-Robots-Tag
44-
: "noindex, nofollow"
46+
traefik.http.middlewares.man18-18-0-prod-forbid-crawlers.headers.customResponseHeaders.X-Robots-Tag:
47+
"noindex, nofollow"
4548
traefik.http.middlewares.man18-18-0-prod-addSTS.headers.forceSTSHeader: "true"
4649
traefik.http.middlewares.man18-18-0-prod-forceSecure.redirectScheme.scheme: https
4750
traefik.http.middlewares.man18-18-0-prod-forceSecure.redirectScheme.permanent: "true"
4851
traefik.http.middlewares.man18-18-0-prod-override-ws-headers.headers.customRequestHeaders.X-Forwarded-Proto: "https"
4952
traefik.http.services.man18-18-0-prod-main.loadbalancer.server.port: 8069
5053
traefik.http.services.man18-18-0-prod-longpolling.loadbalancer.server.port: 8072
51-
traefik.http.routers.man18-18-0-prod-main-0.rule:
52-
Host(`manmanufacturing.com`)
53-
traefik.http.routers.man18-18-0-prod-main-0.service:
54-
man18-18-0-prod-main
54+
traefik.http.routers.man18-18-0-prod-main-0.rule: Host(`manmanufacturing.com`)
55+
traefik.http.routers.man18-18-0-prod-main-0.service: man18-18-0-prod-main
5556
traefik.http.routers.man18-18-0-prod-main-0.middlewares:
56-
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress, man18-18-0-prod-forceSecure
57+
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress,
58+
man18-18-0-prod-forceSecure
5759
traefik.http.routers.man18-18-0-prod-main-0.priority: 1
58-
traefik.http.routers.man18-18-0-prod-main-secure-0.rule:
59-
Host(`manmanufacturing.com`)
60-
traefik.http.routers.man18-18-0-prod-main-secure-0.service:
61-
man18-18-0-prod-main
60+
traefik.http.routers.man18-18-0-prod-main-secure-0.rule: Host(`manmanufacturing.com`)
61+
traefik.http.routers.man18-18-0-prod-main-secure-0.service: man18-18-0-prod-main
6262
traefik.http.routers.man18-18-0-prod-main-secure-0.middlewares:
63-
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress, man18-18-0-prod-forceSecure
63+
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress,
64+
man18-18-0-prod-forceSecure
6465
traefik.http.routers.man18-18-0-prod-main-secure-0.priority: 1
6566
traefik.http.routers.man18-18-0-prod-main-secure-0.tls: "true"
66-
traefik.http.routers.man18-18-0-prod-main-secure-0.tls.certResolver:
67-
letsencrypt
67+
traefik.http.routers.man18-18-0-prod-main-secure-0.tls.certResolver: letsencrypt
6868
traefik.http.routers.man18-18-0-prod-longpolling-0.rule:
6969
Host(`manmanufacturing.com`) && Path(`/websocket`)
70-
traefik.http.routers.man18-18-0-prod-longpolling-0.service:
71-
man18-18-0-prod-longpolling
70+
traefik.http.routers.man18-18-0-prod-longpolling-0.service: man18-18-0-prod-longpolling
7271
traefik.http.routers.man18-18-0-prod-longpolling-0.middlewares:
73-
man18-18-0-prod-addSTS, man18-18-0-prod-forceSecure, man18-18-0-prod-override-ws-headers
74-
traefik.http.routers.man18-18-0-prod-longpolling-0.priority: 10
72+
man18-18-0-prod-addSTS, man18-18-0-prod-forceSecure,
73+
man18-18-0-prod-override-ws-headers
74+
traefik.http.routers.man18-18-0-prod-longpolling-0.priority: 20
7575
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.rule:
7676
Host(`manmanufacturing.com`) && Path(`/websocket`)
77-
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.service:
78-
man18-18-0-prod-longpolling
77+
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.service: man18-18-0-prod-longpolling
7978
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.middlewares:
80-
man18-18-0-prod-addSTS, man18-18-0-prod-forceSecure, man18-18-0-prod-override-ws-headers
81-
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.priority: 10
79+
man18-18-0-prod-addSTS, man18-18-0-prod-forceSecure,
80+
man18-18-0-prod-override-ws-headers
81+
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.priority: 20
8282
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.tls: "true"
83-
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.tls.certResolver:
84-
letsencrypt
83+
traefik.http.routers.man18-18-0-prod-longpolling-secure-0.tls.certResolver: letsencrypt
8584
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-0.rule:
86-
Host(`manmanufacturing.com`) && (PathPrefix(`/web/`, `/website/info/`) || Path(`/web`, `/website/info`))
87-
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-0.service:
88-
man18-18-0-prod-main
85+
Host(`manmanufacturing.com`) && (PathPrefix(`/web/`) ||
86+
PathPrefix(`/website/info/`) || Path(`/web`) || Path(`/website/info`))
87+
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-0.service: man18-18-0-prod-main
8988
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-0.middlewares:
90-
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress, man18-18-0-prod-forbid-crawlers, man18-18-0-prod-forceSecure
89+
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress,
90+
man18-18-0-prod-forbid-crawlers, man18-18-0-prod-forceSecure
9191
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-0.priority: 10
9292
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.rule:
93-
Host(`manmanufacturing.com`) && (PathPrefix(`/web/`, `/website/info/`) || Path(`/web`, `/website/info`))
94-
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.service:
95-
man18-18-0-prod-main
93+
Host(`manmanufacturing.com`) && (PathPrefix(`/web/`) ||
94+
PathPrefix(`/website/info/`) || Path(`/web`) || Path(`/website/info`))
95+
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.service: man18-18-0-prod-main
9696
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.middlewares:
97-
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress, man18-18-0-prod-forbid-crawlers, man18-18-0-prod-forceSecure
97+
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress,
98+
man18-18-0-prod-forbid-crawlers, man18-18-0-prod-forceSecure
9899
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.priority: 10
99100
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.tls: "true"
100-
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.tls.certResolver:
101-
letsencrypt
101+
traefik.http.routers.man18-18-0-prod-forbiddenCrawlers-secure-0.tls.certResolver: letsencrypt
102102
traefik.http.routers.man18-18-0-prod-allowedCrawlers-0.rule:
103-
Host(`manmanufacturing.com`) && (PathPrefix(`/web/image/website/`) || Path(`/web/image/website`))
104-
traefik.http.routers.man18-18-0-prod-allowedCrawlers-0.service:
105-
man18-18-0-prod-main
103+
Host(`manmanufacturing.com`) && (PathPrefix(`/web/image/website/`) ||
104+
Path(`/web/image/website`))
105+
traefik.http.routers.man18-18-0-prod-allowedCrawlers-0.service: man18-18-0-prod-main
106106
traefik.http.routers.man18-18-0-prod-allowedCrawlers-0.middlewares:
107-
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress, man18-18-0-prod-forceSecure
107+
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress,
108+
man18-18-0-prod-forceSecure
108109
traefik.http.routers.man18-18-0-prod-allowedCrawlers-0.priority: 100
109110
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.rule:
110-
Host(`manmanufacturing.com`) && (PathPrefix(`/web/image/website/`) || Path(`/web/image/website`))
111-
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.service:
112-
man18-18-0-prod-main
111+
Host(`manmanufacturing.com`) && (PathPrefix(`/web/image/website/`) ||
112+
Path(`/web/image/website`))
113+
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.service: man18-18-0-prod-main
113114
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.middlewares:
114-
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress, man18-18-0-prod-forceSecure
115+
man18-18-0-prod-addSTS, man18-18-0-prod-buffering, man18-18-0-prod-compress,
116+
man18-18-0-prod-forceSecure
115117
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.priority: 100
116118
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.tls: "true"
117-
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.tls.certResolver:
118-
letsencrypt
119+
traefik.http.routers.man18-18-0-prod-allowedCrawlers-secure-0.tls.certResolver: letsencrypt
119120
traefik.http.middlewares.man18-18-0-prod-redirect-1.redirectRegex.permanent: "true"
120121
traefik.http.middlewares.man18-18-0-prod-redirect-1.redirectRegex.regex: ^(.*)://([^/]+)/(.*)$$
121122
traefik.http.middlewares.man18-18-0-prod-redirect-1.redirectRegex.replacement: $$1://manmanufacturing.com/$$3
122-
traefik.http.routers.man18-18-0-prod-redirect-1.rule:
123-
Host(`www.manmanufacturing.com`)
124-
traefik.http.routers.man18-18-0-prod-redirect-1.service:
125-
man18-18-0-prod-main
123+
traefik.http.routers.man18-18-0-prod-redirect-1.rule: Host(`www.manmanufacturing.com`)
124+
traefik.http.routers.man18-18-0-prod-redirect-1.service: man18-18-0-prod-main
126125
traefik.http.routers.man18-18-0-prod-redirect-1.middlewares:
127-
man18-18-0-prod-addSTS, man18-18-0-prod-compress, man18-18-0-prod-forceSecure, man18-18-0-prod-redirect-1
126+
man18-18-0-prod-addSTS, man18-18-0-prod-compress, man18-18-0-prod-forceSecure,
127+
man18-18-0-prod-redirect-1
128128
traefik.http.routers.man18-18-0-prod-redirect-1.priority: 10
129-
traefik.http.routers.man18-18-0-prod-redirect-secure-1.rule:
130-
Host(`www.manmanufacturing.com`)
131-
traefik.http.routers.man18-18-0-prod-redirect-secure-1.service:
132-
man18-18-0-prod-main
129+
traefik.http.routers.man18-18-0-prod-redirect-secure-1.rule: Host(`www.manmanufacturing.com`)
130+
traefik.http.routers.man18-18-0-prod-redirect-secure-1.service: man18-18-0-prod-main
133131
traefik.http.routers.man18-18-0-prod-redirect-secure-1.middlewares:
134-
man18-18-0-prod-addSTS, man18-18-0-prod-compress, man18-18-0-prod-forceSecure, man18-18-0-prod-redirect-1
132+
man18-18-0-prod-addSTS, man18-18-0-prod-compress, man18-18-0-prod-forceSecure,
133+
man18-18-0-prod-redirect-1
135134
traefik.http.routers.man18-18-0-prod-redirect-secure-1.priority: 10
136135
traefik.http.routers.man18-18-0-prod-redirect-secure-1.tls: "true"
137-
traefik.http.routers.man18-18-0-prod-redirect-secure-1.tls.certResolver:
138-
letsencrypt
136+
traefik.http.routers.man18-18-0-prod-redirect-secure-1.tls.certResolver: letsencrypt
139137

140138
db:
141139
extends:

0 commit comments

Comments
 (0)