initial commit
This commit is contained in:
Executable
+79
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "${1:-}" ]; then
|
||||
echo "Usage: ./scripts/new-app.sh <app-name>"
|
||||
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" <<EOF
|
||||
services:
|
||||
app:
|
||||
image: git.timothykim.net/timothykim/$APP:latest
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- shared
|
||||
|
||||
networks:
|
||||
shared:
|
||||
external: true
|
||||
EOF
|
||||
|
||||
echo "Creating scripts/deploy-$APP.sh..."
|
||||
cat > "$REPO_ROOT/scripts/deploy-$APP.sh" <<EOF
|
||||
#!/bin/bash
|
||||
cd /opt && git pull && cd docker/$APP && docker compose pull && docker compose up -d
|
||||
EOF
|
||||
chmod +x "$REPO_ROOT/scripts/deploy-$APP.sh"
|
||||
|
||||
echo "Adding $APP to deploy-dispatch.sh..."
|
||||
sed -i "/^ \*)$/i\\ deploy-$APP) /opt/scripts/deploy-$APP.sh ;;" \
|
||||
"$REPO_ROOT/scripts/deploy-dispatch.sh"
|
||||
|
||||
echo "Creating .gitea/workflows/deploy-$APP.yml..."
|
||||
mkdir -p "$REPO_ROOT/.gitea/workflows"
|
||||
cat > "$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"
|
||||
Reference in New Issue
Block a user