Skip to content

Instantly share code, notes, and snippets.

@xserveraws
Forked from gilbitron/CaddyController.php
Created December 7, 2022 13:09
Show Gist options
  • Save xserveraws/8f83b4cb939655ab0285d94c8b839227 to your computer and use it in GitHub Desktop.
Save xserveraws/8f83b4cb939655ab0285d94c8b839227 to your computer and use it in GitHub Desktop.

Revisions

  1. @gilbitron gilbitron created this gist Jun 16, 2021.
    26 changes: 26 additions & 0 deletions CaddyController.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,26 @@
    <?php
    # app/Http/Controllers/CaddyController.php

    namespace App\Http\Controllers;

    use App\Store;
    use Illuminate\Http\Request;

    class CaddyController extends Controller
    {
    public function check(Request $request)
    {
    $authorizedDomains = [
    'laravel.test',
    'www.laravel.test',
    // Add subdomains here
    ];

    if (in_array($request->query('domain'), $authorizedDomains)) {
    return response('Domain Authorized');
    }

    // Abort if there's no 200 response returned above
    abort(503);
    }
    }
    24 changes: 24 additions & 0 deletions Caddyfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    # docker/Caddyfile

    {
    on_demand_tls {
    ask http://laravel.test/caddy-check
    }
    local_certs
    }

    :443 {
    tls internal {
    on_demand
    }

    reverse_proxy laravel.test {
    header_up Host {host}
    header_up X-Real-IP {remote}
    header_up X-Forwarded-For {remote}
    header_up X-Forwarded-Port {server_port}
    header_up X-Forwarded-Proto {scheme}

    health_timeout 5s
    }
    }
    19 changes: 19 additions & 0 deletions docker-compose.yml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    services:
    caddy:
    image: caddy:latest
    restart: unless-stopped
    ports:
    - '80:80'
    - '443:443'
    volumes:
    - './docker/Caddyfile:/etc/caddy/Caddyfile'
    - sailcaddy:/data
    - sailcaddy:/config
    networks:
    - sail

    # Remove "ports" from laravel.test service

    volumes:
    sailcaddy:
    driver: local
    4 changes: 4 additions & 0 deletions web.php
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,4 @@
    <?php
    # routes/web.php

    Route::get('/caddy-check', 'CaddyController@check');