Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Docker Test Domains

Ambiente Docker locale per usare domini .test su porta 80/443 con HTTPS locale via mkcert, senza esporre porte per ogni singolo progetto.

In pratica:

  • Traefik è l’unico servizio che espone 80:80 e 443:443 sulla macchina
  • gli altri container restano su rete Docker interna
  • ogni app risponde tramite hostname (es. api.test, app.test)
  • i certificati TLS locali sono caricati da certs/

Requisiti

  • Docker + Docker Compose
  • mkcert installato (vedi certs/README.md)
  • Domini .test risolti in locale verso 127.0.0.1 (es. tramite /etc/hosts)

Esempio /etc/hosts:

127.0.0.1 whoami.test api.test

Avvio rapido

Dalla root del repository:

cp traefik/dynamic.example.yml traefik/dynamic.yml

Poi avvia lo stack:

docker compose up -d

Test base:

Come funziona

Aggiungere un altro progetto Docker

L’idea è collegare il tuo progetto alla rete localproxy e dichiarare le label Traefik sul servizio, senza ports esposte (oppure con porte esposte non significative).

1) Nel compose.yml del tuo progetto

Esempio minimale per un servizio api interno su porta 3000:

services:
  api:
    image: node:20-alpine
    working_dir: /app
    command: sh -c "npm ci && npm run dev"
    volumes:
      - ./:/app
    labels:
      - traefik.enable=true
      - traefik.docker.network=localproxy
      - traefik.http.routers.api.rule=Host(`api.test`)
      - traefik.http.routers.api.entrypoints=websecure
      - traefik.http.routers.api.tls=true
      - traefik.http.services.api.loadbalancer.server.port=3000
    networks:
      - localproxy

networks:
  localproxy:
    external: true
    name: localproxy

Note:

  • non aggiungere ports: al servizio (Traefik fa da ingresso unico)
  • loadbalancer.server.port deve essere la porta interna reale del container
  • se usi più servizi, assegna hostname diversi (app.test, admin.test, ecc.)

2) Generare certificato TLS per il nuovo dominio

Dalla cartella certs:

mkcert -cert-file api.test.pem -key-file api.test-key.pem api.test

3) Copiare il file dinamico di esempio e registrare i certificati

Se non l’hai già fatto, copia il file di esempio:

cp traefik/dynamic.example.yml traefik/dynamic.yml

Poi apri traefik/dynamic.yml e aggiungi i tuoi certificati sotto tls.certificates:

tls:
  certificates:
    - certFile: /etc/traefik/certs/api.test.pem
      keyFile: /etc/traefik/certs/api.test-key.pem

4) Aggiornare hosts + riavviare

  1. aggiungi api.test a /etc/hosts
  2. riavvia questo stack:
docker compose up -d --force-recreate

Flusso consigliato per nuovi progetti

  1. Scegli un dominio locale (nomeprogetto.test)
  2. Crea cert con mkcert
  3. Aggiungi label Traefik al servizio
  4. Collega il progetto alla rete esterna localproxy
  5. Aggiorna /etc/hosts
  6. Avvia stack Traefik + progetto

Con questo setup puoi eseguire più progetti in parallelo usando sempre 80/443, senza conflitti di porte locali.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors