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
### 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
`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)
Budete dotázáni na:
> **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
> 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ě.
> Přednastavenou doménu `dev.linuxak.com` můžete ponechat - směřuje na IP `127.0.0.1` (váš lokální počítač).
### 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é
fungování je potřeba importovat `rootCA.pem` do důvěryhodných certifikátů vašeho operačního systému.
Traefik používá námi integrovaný vlastní certifikát pro HTTPS komunikaci. Pro správné
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
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)
@@ -53,10 +61,9 @@ sudo cp traefik/certs/rootCA.pem /usr/local/share/ca-certificates/linuxak-dev-ca
sudo update-ca-certificates
```
#### Linux (CentOS/RHEL/Fedora)
#### MacOS
```bash
sudo cp traefik/certs/rootCA.pem /etc/pki/ca-trust/source/anchors/linuxak-dev-ca.crt
sudo update-ca-trust
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain traefik/certs/rootCA.pem
```
#### Windows (PowerShell jako Admin)
@@ -65,12 +72,15 @@ Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert:
```
### 3. Spuštění
```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 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
| Služba | URL |
@@ -84,7 +94,7 @@ Import-Certificate -FilePath "traefik/certs/rootCA.pem" -CertStoreLocation Cert:
Stack/
├── docker-compose.yml # Definice služeb
├── 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
└── 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
`<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
labels:

54
run
View File

@@ -16,12 +16,54 @@ fi
# Check if .env file exists
if [[ ! -f $ENV_FILE ]]; then
echo "Error: $ENV_FILE file not found!"
echo "Please create $ENV_FILE file with the following variables:"
echo "DEV_URL=your.domain.com"
echo "EXTERNAL_NETWORK=your_network_name"
echo "FORCE_HTTPS_REDIRECT=true # Set to 'false' to disable HTTPS redirect"
exit 1
echo "Configuration file $ENV_FILE not found. Let's create it!"
echo ""
# Default values
DEFAULT_DEV_URL="dev.linuxak.com"
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
# Load environment variables