github ChrispyBacon-dev/DockFlare v1.8.9
DockFlare v1.8.9 - A New Look and More Power!

latest releases: v2.1.7, v2.1.6, v2.1.5...
2 months ago

DockFlare v1.8.9 - A New Look and More Power!

I'm thrilled to announce the release of DockFlare v1.8.9! This is a significant update, focused on improving the user experience with a more intuitive, project-aligned configuration and providing much greater routing flexibility.

✨ New Feature: It's Official! Say Hello to the dockflare. Label Prefix

To better align with the project's identity, the default label prefix has been changed from cloudflare.tunnel. to dockflare.. This makes configuration more intuitive and clearly ties your labels to the DockFlare project. I believe this will make setting up new services much cleaner and easier to understand.

Your Old Compose Files Are Safe!

This is not a breaking change. I've designed it so that your existing docker-compose.yml files using the cloudflare.tunnel. prefix will continue to work without any changes.

DockFlare now intelligently checks for labels in a specific order:

  1. A custom prefix you've set via the LABEL_PREFIX environment variable.
  2. The new dockflare. prefix.
  3. The legacy cloudflare.tunnel. prefix.

New Recommended Label Style:

version: '3.8'
services:
  my-service:
    image: some-image
    labels:
      # The new, cleaner way!
      - "dockflare.enable=true"
      - "dockflare.hostname=service.mydomain.com"
      - "dockflare.service=http://my-service:8080"
      - "dockflare.access.policy=bypass"

✨ New Feature: Multi-Path Routing per Hostname

You are no longer limited to a single path per hostname! I've completely refactored the internal state management so that DockFlare can now intelligently handle multiple ingress rules for the same hostname, each pointing to a different path. This is perfect for routing traffic to different services in a microservice architecture or for exposing different parts of an application under a single domain.

How it Works:
By using indexed labels (e.g., .0., .1., etc.), you can now define multiple rules for the same hostname. DockFlare uses a combination of hostname and path as the unique identifier for a rule, preventing the "last one wins" problem and overwrite behavior of previous versions.

Example: A single Nginx container serving multiple paths (using the new labels!)

version: '3.8'
services:
  my-api-gateway:
    image: nginx:alpine
    container_name: my-api-gateway
    labels:
      - "dockflare.enable=true"

      # --- Rule 0: The root path ---
      - "dockflare.0.hostname=api.mydomain.com"
      - "dockflare.0.service=http://my-api-gateway:80"

      # --- Rule 1: The /users path ---
      - "dockflare.1.hostname=api.mydomain.com"
      - "dockflare.1.path=/users"
      - "dockflare.1.service=http://my-api-gateway:80"

      # --- Rule 2: The /products path ---
      - "dockflare.2.hostname=api.mydomain.com"
      - "dockflare.2.path=/products"
      - "dockflare.2.service=http://my-api-gateway:80"

In this example, DockFlare will correctly create and manage three separate ingress rules for api.mydomain.com.

🛠️ Improvements & Fixes

This release also includes important stability enhancements and bug fixes, particularly related to the new multi-path routing feature and UI interactions.

  • Robust UI Policy Management: The logic for managing Cloudflare Access policies via the web UI has been completely overhauled. It now correctly handles rules with paths, ensuring that creating, updating, or reverting policies for multi-path hostnames is reliable and error-free.
  • Manual Rule Creation Fixed: An issue where manually created rules were not being correctly added to the Cloudflare Tunnel's ingress configuration has been resolved. The internal state for manual rules now perfectly mirrors the structure of Docker-generated rules, ensuring they are always processed correctly.
  • Efficient API Usage: Policy updates from the UI are now more intelligent. DockFlare will first check if the requested configuration already matches what's on Cloudflare, preventing unnecessary API calls and making the interface feel more responsive.

🚀 What's Next?

I will be updating the official documentation and all examples in the repository shortly to reflect the new dockflare. prefix as the recommended standard.

Thank you for your continued support and for contributing to the project with your excellent feedback and feature requests! I hope you enjoy the new flexibility.

Don't miss a new DockFlare release

NewReleases is sending notifications on new releases.