#!/bin/bash set -euo pipefail if [ -z "${1:-}" ]; then echo "Usage: ./scripts/new-app.sh " echo "Example: ./scripts/new-app.sh my-blog" exit 1 fi APP="$1" REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" if [ -d "$REPO_ROOT/docker/$APP" ]; then echo "Error: docker/$APP already exists." exit 1 fi echo "Creating docker/$APP/compose.yml..." mkdir -p "$REPO_ROOT/docker/$APP" cat > "$REPO_ROOT/docker/$APP/compose.yml" < "$REPO_ROOT/scripts/deploy-$APP.sh" < "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" <<'OUTER' name: Deploy APP_PLACEHOLDER on: push: branches: [main] paths: - 'docker/APP_PLACEHOLDER/**' jobs: deploy: runs-on: ubuntu-latest steps: - name: Deploy via SSH uses: appleboy/ssh-action@v1 with: host: ${{ secrets.DEPLOY_HOST }} username: deploy key: ${{ secrets.DEPLOY_KEY }} script: deploy-APP_PLACEHOLDER OUTER sed -i "s/APP_PLACEHOLDER/$APP/g" "$REPO_ROOT/.gitea/workflows/deploy-$APP.yml" echo "" echo "Done! Files created:" echo " - docker/$APP/compose.yml" echo " - scripts/deploy-$APP.sh" echo " - .gitea/workflows/deploy-$APP.yml" echo " - Updated scripts/deploy-dispatch.sh" echo "" echo "Next steps:" echo " 1. Edit docker/$APP/compose.yml to fit your app" echo " 2. Commit and push to deploy" echo " 3. Configure the proxy host in Nginx Proxy Manager"