DEV Community

Cover image for How to Set Up Laravel in a Subfolder Using Traefik
Ferri Sutanto
Ferri Sutanto

Posted on • Originally published at ferrisutanto.com

How to Set Up Laravel in a Subfolder Using Traefik

Here’s how you can run Laravel in a subfolder with Traefik. Let’s consider this scenario:

  • Traefik is already installed with entry points http and https.
  • Laravel will be installed in the /app subfolder.
  • Traefik and Laravel will use an external network called traefik.

Edit docker-compose.yml as following:

services:
  app:
    image: your-app-image

    # ...the rest of the configuration

    networks:
      - traefik
    labels:
      - traefik.enable=true
      - traefik.docker.network=traefik
      - traefik.constraint-label=traefik

      - traefik.http.middlewares.app-strip.stripprefix.prefixes=/app

      # HTTP entrypoint
      - traefik.http.routers.app-http.entrypoints=http
      - traefik.http.routers.app-http.rule=Host(`your-app-domain.com`) && PathPrefix(`/app`)
      - traefik.http.routers.app-http.middlewares=https-redirect,app-strip

      # HTTPS  entrypoint
      - traefik.http.routers.app-https.entrypoints=https
      - traefik.http.routers.app-https.rule=Host(`your-app-domain.com`) && PathPrefix(`/app`)
      - traefik.http.routers.app-https.tls=true
      - traefik.http.routers.app-https.middlewares=app-strip

networks:
  traefik:
    external: true
Enter fullscreen mode Exit fullscreen mode

Edit .env and set the subfolder in APP_URL.

APP_URL=https://your-app-domain.com/app

# ...the rest of the configuration
Enter fullscreen mode Exit fullscreen mode

Edit app/Http/Middleware/TrustProxies.php and ensure that all proxies are allowed to let Laravel generate HTTPS URLs.

Always use URL helpers like url(), route(), etc., to generate full URLs, including the subfolder path.

That’s it! Now you can run your compose file with docker compose up -d and access your Laravel application via the subfolder.

Billboard image

Use Playwright to test. Use Playwright to monitor.

Join Vercel, CrowdStrike, and thousands of other teams that run end-to-end monitors on Checkly's programmable monitoring platform.

Get started now!

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay