Unter der URL https://developers.google.com/tag-platform/tag-manager/server-side/manual-setup-guide?hl=de#manually_provision_a_preview_server finden Sie den Link zur Dokumentation von Google.
Sie müssen vorher die Container Konfiguration in der Google Web-Konsole (https://tagmanager.google.com/) einrichten.
Wie in dem Artikel Installation von nginx mit automatischen SSL Zertifikaten (Let’s Encrypt) beschrieben, kann dieser nginx Container mit dem benötigten Google Tag Manager Container verknüpft werden. Hierfür muss lediglich die docker-compose.yml des nginx Containers wie folgt angepasst werden:
version: "2"
services:
web:
image: linuxserver/swag:latest
container_name: nginx-autoletsencrypt
cap_add:
- NET_ADMIN
environment:
- PUID=1000
- PGID=2002
- TZ=Europe/Berlin
- SUBDOMAINS=
- VALIDATION=http
- DHLEVEL=2048
- ONLY_SUBDOMAINS=false
- STAGING=false
- URL=$SERVER_FQDN
- EMAIL=$EMAIL
- EXTRA_DOMAINS=$SSL_DOMAINS
volumes:
- /home/podman/data/nginx-autoletsencrypt/:/config
ports:
- 443:443
- 80:80
restart: unless-stopped
networks:
- tagmanager
tagmanager-preview:
image: gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
container_name: tagmanager-preview
environment:
- CONTAINER_CONFIG=<Container-config>
- RUN_AS_PREVIEW_SERVER=true
- PORT=8082
ports:
- 8082:8082
restart: unless-stopped
networks:
- tagmanager
tagmanager:
image: gcr.io/cloud-tagging-10302018/gtm-cloud-image:stable
container_name: tagmanager
environment:
- CONTAINER_CONFIG=<Container-config>
- PREVIEW_SERVER_URL=https://<preview-server-url>
- PORT=8083
ports:
- 8083:8083
restart: unless-stopped
networks:
- tagmanager
depends_on:
tagmanager-preview:
condition: service_started
networks:
tagmanager:
driver: bridge
In der docker-compose.yml müssen die Variablen in den <>-Klammern ersetzt werden.
Anschließend kann mit der Abarbeitung der Dokumentation des nginx Containers weiter fortgefahren werden. Hierzu müssen für die "SSL_DOMAINS" die zu verwendenen Domains eingetragen werden, wie zum Beispiel die "<preview-server-url>" oder auch die "<tagmanager-url>". Nachdem mittels der "create.sh" die Container erstellt wurden, muss nur noch eine nginx Konfiguration für den Preview Container abgelegt und die Variablen in den <>-Klammern ausgetauscht werden. Folgende Befehle können so auf dem Podman Server ausgeführt werden:
cat > preview-container.conf << EOF
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <preview-server-url>;
include /config/nginx/ssl.conf;
client_max_body_size 0;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://tagmanager-preview:8082;
}
}
EOF
podman unshare mv preview-container.conf /home/podman/data/nginx-autoletsencrypt/nginx/site-confs/preview-container.conf
Genauso kann auch eine nginx Konfiguration für die Tagmanager URL hinterlegt werden:
cat > tagmanager-container.conf << EOF
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <tagmanager-url>;
include /config/nginx/ssl.conf;
client_max_body_size 0;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass http://tagmanager:8083;
}
}
EOF
podman unshare mv tagmanager-container.conf /home/podman/data/nginx-autoletsencrypt/nginx/site-confs/tagmanager-container.conf