Level 1
It's probably late but as I'm interested in the topic can you configure traefik to point to port 8000? maybe FrankenPhp points to that automatically.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
Hello, Is someone already deployed a Laravel/Franken/Docker with Traefik ? I'm trying to deploy one. And all I tried, at the best, give me a bad gateway error. Here my traefik config :
version: '3'
services:
r-p:
image: traefik:v3.1
command: --configFile=/etc/traefik/traefik.yml
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./traefik.yml:/etc/traefik/traefik.yml
- ./acme.json:/acme.json
networks:
- r-p
labels:
- "traefik.http.middlewares.https_redirect.redirectscheme.scheme=https"
- "traefik.http.middlewares.https_redirect.redirectscheme.permanent=true"
- traefik.http.middlewares.SslHeader.headers.frameDeny=true
- traefik.http.middlewares.SslHeader.headers.SslRedirect=true
- traefik.http.middlewares.SslHeader.headers.AccessControlAllowMethods=GET,OPTIONS,PUT
- traefik.http.middlewares.SslHeader.headers.AccessControlAllowOrigin=origin-list-or-null
- traefik.http.middlewares.SslHeader.headers.AccessControlMaxAge=100
- traefik.http.middlewares.SslHeader.headers.AddVaryHeader=true
- traefik.http.middlewares.SslHeader.headers.BrowserXssFilter=true
- traefik.http.middlewares.SslHeader.headers.ContentTypeNosniff=true
- traefik.http.middlewares.SslHeader.headers.ForceSTSHeader=true
- traefik.http.middlewares.SslHeader.headers.STSIncludeSubdomains=true
- traefik.http.middlewares.SslHeader.headers.STSPreload=true
- traefik.http.middlewares.SslHeader.headers.ContentSecurityPolicy=default-src 'self' 'unsafe-eval'
- traefik.http.middlewares.SslHeader.headers.ReferrerPolicy=same-origin
- traefik.http.middlewares.SslHeader.headers.FeaturePolicy="vibrate 'self'"
- traefik.http.middlewares.SslHeader.headers.STSSeconds=31536000
- "traefik.http.middlewares.autodetect.contenttype=true"
- "traefik.http.middlewares.sslheader.headers.customrequestheaders.X-Forwarded-Proto=https"
networks:
r-p:
external: true
The traefik.yml
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
http:
middlewares:
test-redirectscheme:
redirectScheme:
scheme: https
permanent: true
certificatesResolvers:
myresolver:
acme:
email: ****@gmail.com
storage: acme.json
httpChallenge:
entryPoint: web
providers:
docker:
exposedByDefault: false
franken docker-compose.yml
services:
franken:
build:
context: .
volumes:
- type: bind
source: ./.env
target: /app/.env
- ./storage:/app/storage
- public:/app/public
restart: always
working_dir: /app
networks:
- r-p
environment:
- "SERVER_NAME=:83"
labels:
- "traefik.enable=true"
- "traefik.docker.network=r-p"
- "traefik.http.routers.franken.rule=Host(`***.***.fr`)"
- "traefik.http.routers.franken.entrypoints=websecure,web"
- "traefik.http.routers.franken.tls=true"
- "traefik.http.routers.franken.tls.certresolver=myresolver"
- "traefik.http.services.franken.loadbalancer.server.port=80"
- "traefik.http.middlewares.autodetect.contenttype=true"
#ports:
#- "83:80"
networks:
r-p:
external: true
volumes:
public:
I'm using Octane on top of Laravel. And the last my Dockerfile
FROM dunglas/frankenphp:latest-php8.3-alpine
RUN apk add --no-cache bash git linux-headers libzip-dev libxml2-dev supervisor nodejs npm chromium
RUN cu rl to composer.*** | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo pdo_mysql sockets pcntl zip exif bcmath
# Redis
RUN apk --no-cache add pcre-dev ${PHPIZE_DEPS} \
&& pecl install redis \
&& docker-php-ext-enable redis \
&& apk del pcre-dev ${PHPIZE_DEPS} \
&& rm -rf /tmp/pear
COPY . /app
WORKDIR /app
ENV COMPOSER_ALLOW_SUPERUSER=1
RUN composer install --no-dev --prefer-dist --no-interaction
RUN npm install
RUN npm run build
RUN mkdir /tmp/public/
RUN cp -r /app/public/* /tmp/public/
RUN composer require laravel/octane
RUN yes | php artisan octane:install --server=frankenphp
#RUN /usr/bin/crontab /app/docker/crontab
ENV CHROME_PATH=/usr/bin/chromium
ENV OCTANE_SERVER=frankenphp
ENTRYPOINT ["sh", "/app/docker/entrypoint.sh"]
In my entrypoint I just have supervisor start the php artisan octane:frankenphp. Do you know what's wrong ? I tried all I could.
Please or to participate in this conversation.