feat: https a certifikaty s ca
This commit is contained in:
86
README.md
86
README.md
@@ -9,29 +9,60 @@ Docker stack s reverse proxy (Traefik) a webovým rozhraním pro správu kontejn
|
||||
|
||||
## Instalace
|
||||
|
||||
1. **Konfigurace prostředí**
|
||||
```bash
|
||||
# Přejmenujte soubor .env.example na .env
|
||||
mv .env.example .env
|
||||
### 1. Konfigurace prostředí
|
||||
```bash
|
||||
# Přejmenujte soubor .env.example na .env
|
||||
mv .env.example .env
|
||||
|
||||
# Upravte .env soubor dle svých nastavení
|
||||
DEV_URL=dev.linuxak.com
|
||||
EXTERNAL_NETWORK=traefiknet
|
||||
```
|
||||
# Upravte .env soubor dle svých nastavení
|
||||
DEV_URL=dev.linuxak.com
|
||||
EXTERNAL_NETWORK=traefiknet
|
||||
```
|
||||
|
||||
2. **Spuštění**
|
||||
```bash
|
||||
./run up # Spustit stack
|
||||
./run restart # Restartovat stack
|
||||
./run down # Zastavit stack
|
||||
```
|
||||
> **Poznámka:**
|
||||
>
|
||||
> Doménu `dev.linuxak.com` můžete ponechat, směřuje na `127.0.0.1` tedy na váš lokální počítač. Pokud chcete použít
|
||||
> jinou doménu, nezapomeňte ji přidat do vašeho `/etc/hosts` souboru a vygenerovat novou sadu certifikátů pro tuto doménu.
|
||||
|
||||
### 2. Import CA do systému
|
||||
|
||||
Traefik používá vlastní certifikát pro HTTPS komunikaci. Pro správné fungování je potřeba importovat `rootCA.pem` do důvěryhodných certifikátů vašeho operačního systému.
|
||||
|
||||
#### MacOS
|
||||
```bash
|
||||
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain traefik/certs/rootCA.pem
|
||||
```
|
||||
|
||||
#### Linux (Ubuntu/Debian)
|
||||
```bash
|
||||
sudo cp traefik/certs/rootCA.pem /usr/local/share/ca-certificates/linuxak-dev-ca.crt
|
||||
sudo update-ca-certificates
|
||||
```
|
||||
|
||||
#### Linux (CentOS/RHEL/Fedora)
|
||||
```bash
|
||||
sudo cp traefik/certs/rootCA.pem /etc/pki/ca-trust/source/anchors/linuxak-dev-ca.crt
|
||||
sudo update-ca-trust
|
||||
```
|
||||
|
||||
#### Windows (PowerShell jako Admin)
|
||||
```bash
|
||||
Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert:\LocalMachine\Root
|
||||
```
|
||||
|
||||
### 3. Spuštění
|
||||
```bash
|
||||
./run up # Spustit stack
|
||||
./run restart # Restartovat stack
|
||||
./run down # Zastavit stack
|
||||
```
|
||||
|
||||
## Přístup ke službám
|
||||
|
||||
| Služba | URL |
|
||||
|--------|-----|
|
||||
| Traefik Dashboard | http://traefik.dev.linuxak.com |
|
||||
| Portainer | http://portainer.dev.linuxak.com |
|
||||
| Služba | URL |
|
||||
|--------|-----------------------------------|
|
||||
| Traefik Dashboard | https://traefik.dev.linuxak.com |
|
||||
| Portainer | https://portainer.dev.linuxak.com |
|
||||
|
||||
## Struktura
|
||||
|
||||
@@ -40,26 +71,29 @@ Stack/
|
||||
├── docker-compose.yml # Definice služeb
|
||||
├── run # Skript pro správu
|
||||
├── .env # Konfigurace prostředí
|
||||
├── traefik/ # Traefik konfigurace a logy
|
||||
└── portainer/ # Portainer data
|
||||
├── traefik/ # Traefik konfigurace, certifikáty a logy
|
||||
└── portainer/ # Portainer data
|
||||
```
|
||||
|
||||
## Persistence
|
||||
|
||||
Složka `portainer` je persistentním úložištěm pro službu Portainer a všechna data této služby zůstanou uložená i po vypnutí stacku, dokud je ručně nesmažete.
|
||||
|
||||
## Přidání nové služby
|
||||
## Připojení vaší služby do Traefiku
|
||||
|
||||
Do vašeho `docker-compose.yml` přidejte Traefik labels:
|
||||
|
||||
Hodnotu `<PORT>` nahraďte skutečným portem své služby.
|
||||
> Hodnotu `<VASE_URL>` nahraďte skutečnou doménou své služby.
|
||||
> Hodnotu `<VAS_PORT>` nahraďte skutečným portem své služby.
|
||||
> Hodnotu `<VASE_EXTERNI_SIT>` nahraďte skutečným náyvem své externí sítě.
|
||||
|
||||
```yaml
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.myapp.rule=Host(`myapp.${DEV_URL}`)"
|
||||
- "traefik.http.routers.myapp.entrypoints=web"
|
||||
- "traefik.http.services.myapp.loadbalancer.server.port=<PORT>"
|
||||
- "traefik.http.routers.myapp.rule=Host(`myapp.<VASE_URL>`)"
|
||||
- "traefik.http.routers.myapp.entrypoints=websecure"
|
||||
- "traefik.http.routers.myapp.tls=true"
|
||||
- "traefik.http.services.myapp.loadbalancer.server.port=<VAS_PORT>"
|
||||
networks:
|
||||
- ${EXTERNAL_NETWORK}
|
||||
- <VASE_EXTERNI_SIT>
|
||||
```
|
||||
Reference in New Issue
Block a user