Class: CastCaster::Deploy::Traefik

Inherits:
Object
  • Object
show all
Defined in:
lib/castcaster/deploy/traefik.rb

Instance Method Summary collapse

Constructor Details

#initialize(cfg) ⇒ Traefik

Returns a new instance of Traefik.



4
5
6
7
8
# File 'lib/castcaster/deploy/traefik.rb', line 4

def initialize(cfg)
  @cfg = cfg
  @domain = cfg.fetch('domain', 'stream.example.com')
  @email = cfg.fetch('acme_email', 'admin@example.com')
end

Instance Method Details

#service_definitionObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/castcaster/deploy/traefik.rb', line 10

def service_definition
  {
    'traefik' => {
      'image' => 'traefik:v3.0',
      'restart' => 'unless-stopped',
      'ports' => ['80:80', '443:443'],
      'depends_on' => ['nginx'],
      'volumes' => [
        'traefik-certificates:/certificates',
        "./traefik/dynamic.yml:/etc/traefik/dynamic.yml:ro"
      ],
      'command' => "\"--providers.file.filename=/etc/traefik/dynamic.yml\",\"--entrypoints.http.address=:80\",\"--entrypoints.https.address=:443\",\"--certificatesresolvers.le.acme.email=#{@email}\",\"--certificatesresolvers.le.acme.storage=/certificates/acme.json\",\"--certificatesresolvers.le.acme.tlschallenge=true\",\"--accesslog\",\"--log\""
    }
  }
end