diff --git a/.ci/lint.sh b/.ci/lint.sh
old mode 100644
new mode 100755
diff --git a/.ci/requirements.txt b/.ci/requirements.txt
new file mode 100644
index 0000000..d03d21f
--- /dev/null
+++ b/.ci/requirements.txt
@@ -0,0 +1 @@
+pyyaml==6.0.2
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index d70df2c..5b6b397 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 .vscode
-.env.priv
\ No newline at end of file
+.env.priv
+.venv
\ No newline at end of file
diff --git a/.woodpecker/lint.yml b/.woodpecker/lint.yml
index b518d19..a9fea1e 100644
--- a/.woodpecker/lint.yml
+++ b/.woodpecker/lint.yml
@@ -1,14 +1,25 @@
 steps:
+  check_ports_labels:
+    image: python:3.12-slim
+    commands:
+      - pip3 install -r .ci/requirements.txt
+      - python3 .ci/port_attribution_watcher.py
+      - python3 .ci/traefik_labels_watcher.py
+    when:
+      - event: pull_request
+        repo: gnouseu/docker-services
+      - event: push
+        branch: main
   lint:
     image: debian:stable-slim
     commands:
       - apt-get update
       - apt-get install -y curl
       - curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
-      - chmod +x //usr/local/bin/docker-compose
+      - chmod +x /usr/local/bin/docker-compose
       - sh .ci/lint.sh
     when:
       - event: pull_request
         repo: gnouseu/docker-services
       - event: push
-        branch: main
+        branch: main
\ No newline at end of file
diff --git a/README.md b/README.md
index b694dfa..18eb693 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,14 @@
 # Services Gnous
 
-L'ensemble des docker compose pour les services du projet Gnous.
\ No newline at end of file
+L'ensemble des docker compose pour les services du projet Gnous.
+
+## Lint 
+
+```
+python3 -m venv .venv/
+source .venv/bin/activate
+pip install -r .ci/requirements.txt
+python3 .ci/port_attribution_watcher.py
+python3 .ci/traefik_label_watcher.py
+./.ci/lint.sh
+```
\ No newline at end of file
diff --git a/compute-1-mep/wiki/docker-compose.yaml b/compute-1-mep/wiki/docker-compose.yaml
index d9edbef..9e0d7fd 100644
--- a/compute-1-mep/wiki/docker-compose.yaml
+++ b/compute-1-mep/wiki/docker-compose.yaml
@@ -7,7 +7,7 @@ services:
     image: git.gnous.eu/gnouseu/wiki:v3
     restart: unless-stopped
     ports:
-      - "3005:80"
+      - "3010:80"
     labels:
       - "traefik.enable=true"
       - "traefik.http.routers.wiki.entryPoints=websecure"
diff --git a/internals/woodpecker/docker-compose.yaml b/internals/woodpecker/docker-compose.yaml
index 2ae2e57..b719bf2 100644
--- a/internals/woodpecker/docker-compose.yaml
+++ b/internals/woodpecker/docker-compose.yaml
@@ -53,7 +53,7 @@ services:
       - "traefik.http.routers.woodpecker-grpc-secure.entrypoints=websecure"
       - "traefik.http.routers.woodpecker-grpc-secure.service=woodpecker-grpc"
       - "traefik.http.routers.woodpecker-grpc.middlewares=woodpecker-grpc-redirect@docker"
-      - "traefik.http.routers.gnousdoteu.middlewares=proxyHeader@file,proxyError@file"
+      - "traefik.http.routers.woodpecker-grpc.middlewares=proxyHeader@file,proxyError@file"
     depends_on:
       - db