# excalidash.install: $app_domain $app_port $@ excalidash.install(){ # Config # app_name="excalidash" # App Name app_repo_url="https://github.com/ZimengXiong/ExcaliDash" # App Codebase app_version="latest" app_domain="${1:-"$app_name.$org_domain"}" # Unique app domain app_port="${2:-"3003"}" # App Port 6767 db_port="$((app_port - 1))" # DB Port # Setup env # container_name="$app_name-$app_port" app_name_domain="$(echo $app_domain | tr "." "-")" app_path="/data/${app_name_domain}" data_path="$app_path/${app_name}_data" code_path="$app_path/$(basename $app_repo_url)" app_container_config="$code_path/docker-compose.yml" mkdir -p "$app_path" echo cd "$app_path" cd "$app_path" if [ ! $? == "0" ];then err "Failed to cd \"$app_path\"" return 1 fi # Install App # echo git clone "$app_repo_url" git clone "$app_repo_url" cd "$code_path" if [ ! $? == "0" ];then err "Failed to cd \"$code_path\"" return 1 fi # Create folder $data_path echo sudo mkdir -p "$data_path" sudo mkdir -p "$data_path" # Set permissions $data_path #echo sudo chown -R 1000:1000 "$data_path" #sudo chown -R 1000:1000 "$data_path" # Contain App. Write docker-compose config. tee "$app_container_config" > /dev/null < process.exit(r.statusCode === 200 ? 0 : 1))", ] interval: 30s timeout: 10s retries: 3 frontend: container_name: $container_name #container_name: excalidash-frontend #image: "$app_name-$app_version" build: context: . dockerfile: frontend/Dockerfile ports: - "$app_port:80" depends_on: - backend networks: - excalidash-network restart: unless-stopped healthcheck: test: [ "CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:80", ] interval: 30s timeout: 10s retries: 3 networks: excalidash-network: driver: bridge #volumes: #backend-data: EOF echo cat ./docker-compose.yml cat ./docker-compose.yml # Run App. LIVE! echo Running $app_name container in the background. echo sudo docker-compose pull sudo docker-compose pull echo sudo docker-compose down sudo docker-compose down echo sudo docker-compose up -d sudo docker-compose up -d echo open http://$(host.ip):$app_port } # ---