Class: CastCaster::Deploy::Traefik
- Inherits:
-
Object
- Object
- CastCaster::Deploy::Traefik
- Defined in:
- lib/castcaster/deploy/traefik.rb
Instance Method Summary collapse
-
#initialize(cfg) ⇒ Traefik
constructor
A new instance of Traefik.
- #service_definition ⇒ Object
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_definition ⇒ Object
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 |