From 4e10bdc92d455e6bd142235cebe3f7f847bae464 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 29 Jun 2026 19:32:35 +0000 Subject: [PATCH] fix: remove obsolete jcabillot/phpapache references - Delete renovate.json: custom manager for jcabillot/phpapache ARG VERSION is obsolete since migration to dunglas/frankenphp. - Update AGENTS.md: reflect FrankenPHP/Caddy base image, /app/public, no ARG VERSION, fixed tag. --- AGENTS.md | 7 ++++--- renovate.json | 17 ----------------- 2 files changed, 4 insertions(+), 20 deletions(-) delete mode 100644 renovate.json diff --git a/AGENTS.md b/AGENTS.md index 6af1cd7..d4f4a30 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -6,18 +6,19 @@ Lightweight PHP micro-service that returns the client's public IP address as JSO ## 2. Folder Structure -- `root/`: Application source code served by Apache. +- `root/`: Application source code served by FrankenPHP/Caddy. - `index.php`: Single endpoint returning `REMOTE_ADDR` as JSON. +- `Caddyfile`: FrankenPHP/Caddy web server configuration — PHP handler on `:8080` with `try_files` + `php_server`. - `.gitea/workflows/`: Gitea Actions CI pipelines. - `docker-build.yaml`: Build and push Docker image to Docker Hub on push/PR to master + daily cron. -- `Dockerfile`: Multi-stage build extending `jcabillot/phpapache` base image, copies `root/` into `/var/www/html`. +- `Dockerfile`: Single-stage build from `dunglas/frankenphp:1-php8.5-alpine`, copies `root/` into `/app/public`. - `.gitlab-ci.yml`: Legacy GitLab CI config (deprecated, replaced by Gitea Actions). - `Jenkinsfile`: Legacy Jenkins pipeline (deprecated, replaced by Gitea Actions). ## 3. Core Behaviors & Patterns - **Request/Response Flow**: Single PHP endpoint sets `Content-Type: application/json` header and returns `$_SERVER['REMOTE_ADDR']` encoded as JSON string. No routing, no framework, no state. -- **Container Base Image Pattern**: `Dockerfile` uses `ARG VERSION="latest"` to allow version pinning at build time, extends `jcabillot/phpapache` which provides PHP + Apache pre-configured. Application code is layered on top via `COPY root /var/www/html`. +- **Container Base Image Pattern**: `Dockerfile` is a single-stage build from a fixed `dunglas/frankenphp:1-php8.5-alpine` tag (Alpine-based FrankenPHP with Caddy). No `ARG VERSION` — the tag is pinned, Renovate auto-detects it. Application code is layered via `COPY root /app/public`. FrankenPHP provides PHP + Caddy pre-configured. - **Traefik IngressRoute with HTTPS Redirect**: Two IngressRoute resources handle traffic — `ip-websecure` serves HTTPS on the `websecure` entrypoint, `ip-web` catches HTTP on `web` entrypoint and applies a `redirectScheme` middleware for permanent HTTPS redirect. The Service reference in the HTTP IngressRoute is required by Traefik even though the middleware intercepts before reaching it. - **Health Probes**: Deployment defines both `livenessProbe` and `readinessProbe` using `httpGet` on `/` at the named `http` port (8080). Kubernetes uses these to restart unhealthy pods and exclude unready pods from the Service endpoints. - **Security Hardening**: Pod spec sets `automountServiceAccountToken: false` to prevent unnecessary Kubernetes API access from the container. diff --git a/renovate.json b/renovate.json deleted file mode 100644 index d04175d..0000000 --- a/renovate.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "customManagers": [ - { - "customType": "regex", - "description": "Detect ARG VERSION pin for jcabillot/phpapache base image", - "managerFilePatterns": [ - "/^Dockerfile$/" - ], - "matchStrings": [ - "ARG\\s+VERSION=\"(?[^\"]+)\"" - ], - "depNameTemplate": "jcabillot/phpapache", - "datasourceTemplate": "docker" - } - ] -} -- 2.52.0