feat: interaktivni vytvoreni .env souboru
This commit is contained in:
54
README.md
54
README.md
@@ -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
54
run
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user