1
0

feat: interaktivni vytvoreni .env souboru

This commit is contained in:
2026-03-02 12:11:57 +01:00
parent 0112694b76
commit dc9cd1fa0b
2 changed files with 80 additions and 28 deletions

View File

@@ -21,30 +21,38 @@
## Instalace ## Instalace
### 1. Konfigurace prostředí ### 1. Konfigurace prostředí
```bash
# Zkopírujte soubor .env.example na .env
cp .env.example .env
```
V případě nutnosti upravte hodnoty dle svých nastavení Při prvním spuštění se automaticky spustí průvodce konfigurací, který vytvoří soubor `.env` s potřebnými nastaveními.
`DEV_URL` - doména používaná pro lokální vývoj Budete dotázáni na:
`EXTERNAL_NETWORK` - název externí sítě, kterou používáte pro své kontejnery
`FORCE_HTTPS_REDIRECT` - nastavení vynuceného přesměrování HTTP na HTTPS (true/false)
> **Poznámka:** - **Development domain name** - doména pro lokální vývoj (výchozí: `dev.linuxak.com`)
- **External Docker network name** - název externí sítě pro kontejnery (výchozí: `traefiknet`)
- **HTTPS redirect** - vynucené přesměrování HTTP na HTTPS (výchozí: `true`)
> **Tip:** Stačí mačkat Enter pro použití výchozích hodnot, které jsou plně funkční.
> >
> Přednastavenou doménu `dev.linuxak.com` můžete ponechat. Je plně funkční a směřuje > Přednastavenou doménu `dev.linuxak.com` můžete ponechat - směřuje na IP `127.0.0.1` (váš lokální počítač).
> na IP adresu `127.0.0.1` tedy na váš lokální počítač. Můžete ponechat i přednastavený název externí sítě.
### 2. Import CA do systému ### 2. Certifikáty pro HTTPS
Traefik používá pro doménu `dev.linuxak.com` vlastní certifikát pro HTTPS komunikaci. Pro správné Traefik používá námi integrovaný 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. fungování je potřeba importovat `traefik/certs/rootCA.pem` do důvěryhodných certifikátů vašeho operačního systému.
#### MacOS **Integrovaný certifikát je platný pro:**
- `dev.linuxak.com` a všechny subdomény (`*.dev.linuxak.com`)
- `localhost`
- IP adresu `127.0.0.1`
- **Platnost:** do 27. února 2036
> **Poznámka:** Pokud změníte `DEV_URL` na jinou doménu než výše uvedené, bude potřeba dodat vlastní certifikát pro HTTPS komunikaci.
### 2.1 Import CA do systému
#### Linux (CentOS/RHEL/Fedora)
```bash ```bash
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain traefik/certs/rootCA.pem sudo cp traefik/certs/rootCA.pem /etc/pki/ca-trust/source/anchors/linuxak-dev-ca.crt
sudo update-ca-trust
``` ```
#### Linux (Ubuntu/Debian) #### Linux (Ubuntu/Debian)
@@ -53,10 +61,9 @@ sudo cp traefik/certs/rootCA.pem /usr/local/share/ca-certificates/linuxak-dev-ca
sudo update-ca-certificates sudo update-ca-certificates
``` ```
#### Linux (CentOS/RHEL/Fedora) #### MacOS
```bash ```bash
sudo cp traefik/certs/rootCA.pem /etc/pki/ca-trust/source/anchors/linuxak-dev-ca.crt sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain traefik/certs/rootCA.pem
sudo update-ca-trust
``` ```
#### Windows (PowerShell jako Admin) #### Windows (PowerShell jako Admin)
@@ -65,12 +72,15 @@ Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert:
``` ```
### 3. Spuštění ### 3. Spuštění
```bash ```bash
./run up # Spustit stack ./run up # Spustit stack (při prvním spuštění se spustí průvodce konfigurací)
./run restart # Restartovat stack ./run restart # Restartovat stack
./run down # Zastavit stack ./run down # Zastavit stack
``` ```
Při prvním spuštění `./run up` budete provedeni konfigurací - stačí postupovat podle pokynů na obrazovce.
## Přístup ke službám ## Přístup ke službám
| Služba | URL | | Služba | URL |
@@ -84,7 +94,7 @@ Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert:
Stack/ Stack/
├── docker-compose.yml # Definice služeb ├── docker-compose.yml # Definice služeb
├── run # Skript pro správu ├── run # Skript pro správu
├── .env # Konfigurace prostředí ├── .env # Konfigurace prostředí (automaticky vytvořen při prvním spuštění)
├── traefik/ # Traefik konfigurace, certifikáty a logy ├── traefik/ # Traefik konfigurace, certifikáty a logy
└── portainer/ # Portainer data └── portainer/ # Portainer data
``` ```
@@ -97,7 +107,7 @@ Do vašeho `docker-compose.yml` přidejte Traefik labels:
`<VAS_PORT>` - nahraďte skutečným portem své služby `<VAS_PORT>` - nahraďte skutečným portem své služby
`<VASE_EXTERNI_SIT>` - nahraďte skutečným názvem své externí sítě `<VASE_EXTERNI_SIT>` - nahraďte skutečným názvem své externí sítě
Příklad pro službu s náyvem `myapp`: Příklad pro službu s názvem `myapp`:
```yaml ```yaml
labels: labels:

54
run
View File

@@ -16,12 +16,54 @@ fi
# Check if .env file exists # Check if .env file exists
if [[ ! -f $ENV_FILE ]]; then if [[ ! -f $ENV_FILE ]]; then
echo "Error: $ENV_FILE file not found!" echo "Configuration file $ENV_FILE not found. Let's create it!"
echo "Please create $ENV_FILE file with the following variables:" echo ""
echo "DEV_URL=your.domain.com"
echo "EXTERNAL_NETWORK=your_network_name" # Default values
echo "FORCE_HTTPS_REDIRECT=true # Set to 'false' to disable HTTPS redirect" DEFAULT_DEV_URL="dev.linuxak.com"
exit 1 DEFAULT_EXTERNAL_NETWORK="traefiknet"
DEFAULT_FORCE_HTTPS_REDIRECT="true"
echo "Please provide the following configuration values:"
echo "(Press Enter to use default values shown in brackets)"
echo ""
# Ask for domain name
read -p "Development domain name [$DEFAULT_DEV_URL]: " input_dev_url
DEV_URL="${input_dev_url:-$DEFAULT_DEV_URL}"
# Ask for external network
read -p "External Docker network name [$DEFAULT_EXTERNAL_NETWORK]: " input_external_network
EXTERNAL_NETWORK="${input_external_network:-$DEFAULT_EXTERNAL_NETWORK}"
# Ask for HTTPS redirect
echo ""
echo "Force HTTPS redirect? (true/false)"
read -p "HTTPS redirect [$DEFAULT_FORCE_HTTPS_REDIRECT]: " input_force_https
FORCE_HTTPS_REDIRECT="${input_force_https:-$DEFAULT_FORCE_HTTPS_REDIRECT}"
# Validate HTTPS redirect value
if [[ "$FORCE_HTTPS_REDIRECT" != "true" && "$FORCE_HTTPS_REDIRECT" != "false" ]]; then
echo "Invalid value for HTTPS redirect. Using 'true' as default."
FORCE_HTTPS_REDIRECT="true"
fi
# Create .env file
echo ""
echo "Creating $ENV_FILE with the following configuration:"
echo " DEV_URL=$DEV_URL"
echo " EXTERNAL_NETWORK=$EXTERNAL_NETWORK"
echo " FORCE_HTTPS_REDIRECT=$FORCE_HTTPS_REDIRECT"
echo ""
cat > $ENV_FILE << EOF
DEV_URL=$DEV_URL
EXTERNAL_NETWORK=$EXTERNAL_NETWORK
FORCE_HTTPS_REDIRECT=$FORCE_HTTPS_REDIRECT
EOF
echo "Configuration file $ENV_FILE created successfully!"
echo ""
fi fi
# Load environment variables # Load environment variables