Compare commits
36 Commits
4f2a435e2a
...
5b12eb2072
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5b12eb2072 | ||
|
|
7a559a9021 | ||
|
|
1c29fbf958 | ||
|
|
7c4650f83b | ||
|
|
39abf1b5fc | ||
|
|
e45cfb5ebd | ||
|
|
246f6b2c0f | ||
|
|
075c6bfdf9 | ||
|
|
58e1bad1cf | ||
|
|
110c0f7291 | ||
|
|
2550a945a3 | ||
|
|
159dda3843 | ||
|
|
946f968ca0 | ||
|
|
58e36c420c | ||
|
|
7fb6a74a13 | ||
|
|
183d19848b | ||
|
|
f2081217af | ||
|
|
e9620052f7 | ||
|
|
3ca2983c68 | ||
|
|
676988fabb | ||
|
|
73b178fa2c | ||
|
|
8e8bfd1897 | ||
|
|
aaa043f06e | ||
|
|
74860f8a0d | ||
|
|
9d0bae2dea | ||
|
|
63c5c50578 | ||
|
|
632f143637 | ||
|
|
a4171330e5 | ||
|
|
af0d8cd9ac | ||
|
|
fa59a081d8 | ||
|
|
6f7b81f1da | ||
|
|
a12ee2e5aa | ||
|
|
c72e03f282 | ||
|
|
0cedc90031 | ||
| a6b2ea3a14 | |||
|
|
b5443ddcee |
@@ -32,6 +32,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Setup SSH and Deploy
|
- name: Setup SSH and Deploy
|
||||||
shell: sh
|
shell: sh
|
||||||
|
env:
|
||||||
|
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
|
||||||
|
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
|
||||||
|
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p ~/.ssh
|
mkdir -p ~/.ssh
|
||||||
chmod 700 ~/.ssh
|
chmod 700 ~/.ssh
|
||||||
@@ -42,49 +46,43 @@ jobs:
|
|||||||
cd /workspace/repo
|
cd /workspace/repo
|
||||||
scp -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key merchbay_admin.tar.gz docker-compose.yml "$DEPLOY_USER@$DEPLOY_HOST:/tmp/"
|
scp -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key merchbay_admin.tar.gz docker-compose.yml "$DEPLOY_USER@$DEPLOY_HOST:/tmp/"
|
||||||
|
|
||||||
ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key "$DEPLOY_USER@$DEPLOY_HOST" "
|
ssh -o StrictHostKeyChecking=no -i ~/.ssh/deploy_key "$DEPLOY_USER@$DEPLOY_HOST" 'bash -s' << 'ENDSSH'
|
||||||
DEPLOY_DIR='/var/www/merchbay_admin'
|
set -e
|
||||||
mkdir -p \$DEPLOY_DIR
|
DEPLOY_DIR="/var/www/merchbay_admin"
|
||||||
cd /tmp
|
mkdir -p "$DEPLOY_DIR"
|
||||||
docker load < merchbay_admin.tar.gz
|
cd /tmp
|
||||||
|
docker load < merchbay_admin.tar.gz
|
||||||
echo 'Removing old merchbay_admin images'
|
|
||||||
docker images | grep merchbay_admin | grep -v "\$(docker images merchbay_admin:latest -q)" | awk '{print \$3}' | xargs -r docker rmi -f || true
|
echo "Removing old merchbay_admin images"
|
||||||
|
CURRENT_IMAGE=$(docker images merchbay_admin:latest -q)
|
||||||
cp docker-compose.yml \$DEPLOY_DIR/
|
docker images | grep merchbay_admin | grep -v "$CURRENT_IMAGE" | awk '{print $3}' | xargs -r docker rmi -f || true
|
||||||
cd \$DEPLOY_DIR
|
|
||||||
|
cp docker-compose.yml "$DEPLOY_DIR/"
|
||||||
# .env file should already exist on server with all required variables
|
cd "$DEPLOY_DIR"
|
||||||
# Required: DB_*, IMAGES_DIRECTORY, PRODUCTION_PRIVATE_SERVER
|
|
||||||
# If it doesn't exist, deployment will fail (this is intentional for security)
|
docker compose down || true
|
||||||
|
docker image prune -f
|
||||||
docker compose down || true
|
docker network inspect traefik-public >/dev/null 2>&1 || docker network create traefik-public
|
||||||
docker image prune -f
|
docker network inspect crew-app-net >/dev/null 2>&1 || docker network create crew-app-net
|
||||||
docker network inspect traefik-public >/dev/null 2>&1 || docker network create traefik-public
|
export DOMAIN=admin.merchbay.app
|
||||||
docker network inspect crew-app-net >/dev/null 2>&1 || docker network create crew-app-net
|
export APP_URL=https://admin.merchbay.app
|
||||||
export DOMAIN=admin.merchbay.app
|
docker compose up -d
|
||||||
export APP_URL=https://admin.merchbay.app
|
sleep 10
|
||||||
docker compose up -d
|
docker compose exec -T app php artisan config:cache
|
||||||
sleep 10
|
docker compose exec -T app php artisan route:cache
|
||||||
docker compose exec -T app php artisan config:cache
|
rm -f /tmp/merchbay_admin.tar.gz /tmp/docker-compose.yml
|
||||||
docker compose exec -T app php artisan route:cache
|
|
||||||
rm -f /tmp/merchbay_admin.tar.gz /tmp/docker-compose.yml
|
echo "Aggressive Docker cleanup to reclaim space"
|
||||||
|
docker image prune -af --filter "until=24h" || true
|
||||||
echo 'Aggressive Docker cleanup to reclaim space'
|
docker container prune -f || true
|
||||||
docker image prune -af --filter "until=24h" || true
|
docker volume prune -f || true
|
||||||
docker container prune -f || true
|
docker builder prune -af --filter "until=48h" || true
|
||||||
docker volume prune -f || true
|
echo "Docker space usage:"
|
||||||
docker builder prune -af --filter "until=48h" || true
|
docker system df
|
||||||
echo 'Docker space usage:'
|
|
||||||
docker system df
|
echo "Production deployment completed successfully!"
|
||||||
|
echo "Application available at: https://admin.merchbay.app"
|
||||||
echo 'Production deployment completed successfully!'
|
ENDSSH
|
||||||
echo 'Application available at: https://admin.merchbay.app'
|
|
||||||
"
|
|
||||||
env:
|
|
||||||
DEPLOY_SSH_KEY: ${{ secrets.DEPLOY_SSH_KEY }}
|
|
||||||
DEPLOY_USER: ${{ secrets.DEPLOY_USER }}
|
|
||||||
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
|
|
||||||
|
|
||||||
- name: Health Check
|
- name: Health Check
|
||||||
shell: sh
|
shell: sh
|
||||||
|
|||||||
Reference in New Issue
Block a user