#!/bin/bash # Actual version see https://gist.github.com/envoyr/d349fc746258d2a433cf3cf7e9ad0f0b # # Run in cli with: # $ bash dev.sh # Cloning repositories git clone git@github.com:froxlor/bundle.git 2>/dev/null git clone git@github.com:froxlor/framework.git 2>/dev/null # Backend Auswahl if [ -z "${BACKEND}" ]; then echo "Kein Datenbank-Backend gesetzt." PS3='Bitte wählen Sie ein Datenbank-Backend (1 oder 2): ' options=("mariadb" "sqlite") select opt in "${options[@]}" do case $opt in "mariadb") BACKEND="mariadb"; break ;; "sqlite") BACKEND="sqlite"; break ;; *) echo "Ungültige Wahl $REPLY";; esac done fi echo "Verwende Backend: ${BACKEND}" # Write docker-compose.yml for sqlite if [ ${BACKEND} == "sqlite" ]; then cat > docker-compose.yml <<'EOF' services: froxlor: build: . environment: DB_CONNECTION: sqlite ports: - 8000:8000 volumes: - ./bundle:/var/www/html/froxlor - ./framework:/var/www/html/framework EOF elif [ ${BACKEND} == "mariadb" ]; then # Create .env file printf "Enter MariaDB root password: " stty -echo read DB_ROOT_PASS stty echo printf "\n" printf "Enter Froxlor DB password: " stty -echo read DB_PASS stty echo printf "\n" cat > .env < docker-compose.yml <<'EOF' services: froxlor: build: . environment: DB_CONNECTION: mariadb DB_HOST: db DB_PORT: 3306 DB_DATABASE: froxlor DB_USERNAME: root DB_PASSWORD: ${MARIADB_ROOT_PASSWORD} ports: - 8000:8000 volumes: - ./bundle:/var/www/html/froxlor - ./framework:/var/www/html/framework depends_on: db: condition: service_healthy db: image: mariadb restart: always environment: MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD} MARIADB_DATABASE: froxlor MARIADB_USER: froxlor MARIADB_PASSWORD: ${MARIADB_PASSWORD} ports: - 3306:3306 volumes: - ./database:/var/lib/mysql healthcheck: test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] start_period: 10s interval: 10s timeout: 5s retries: 3 adminer: image: adminer restart: always ports: - 8080:8080 EOF else echo "No backend selected." fi echo "Finished! Starting with 'docker compose up', you can use with -d to run it in background. Press 'd' to detach from current session." docker compose up --build