Files
oma-memorial/.gitea/workflows/deploy.yml
T
denshooter ab7e540e25 fix: use persistent data path /opt/oma-memorial/data
Workspace dir gets recreated each build, losing all data.
Using fixed host path ensures DB and uploads persist across deploys.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 16:48:47 +01:00

67 lines
2.2 KiB
YAML

name: Build and Deploy
on:
push:
branches:
- main
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Create proxy network if needed
run: docker network create proxy || true
- name: Build Docker image
run: docker build -t oma-memorial:latest .
- name: Stop and remove old container
run: |
docker stop oma-memorial 2>/dev/null || true
docker rm oma-memorial 2>/dev/null || true
- name: Ensure data directory exists
run: |
mkdir -p /opt/oma-memorial/data/uploads/photos /opt/oma-memorial/data/uploads/videos /opt/oma-memorial/data/uploads/music
chown -R 1001:1001 /opt/oma-memorial/data
- name: Run container in proxy network
run: |
HOST_IP=$(docker network inspect proxy --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}' 2>/dev/null || ip route | grep default | awk '{print $3}')
docker run -d \
--name oma-memorial \
--network proxy \
--add-host=host.docker.internal:${HOST_IP} \
--restart unless-stopped \
-e NODE_ENV=production \
-e OLLAMA_URL="http://host.docker.internal:11434" \
-e SITE_PASSWORD="${{ secrets.SITE_PASSWORD }}" \
-e ADMIN_PASSWORD="${{ secrets.ADMIN_PASSWORD }}" \
-v /opt/oma-memorial/data:/app/data \
oma-memorial:latest
- name: Health check
run: |
echo "Waiting for container to start..."
for i in $(seq 1 15); do
if docker exec oma-memorial node -e "fetch('http://localhost:3000/api/candles').then(r=>{process.exit(r.ok?0:1)}).catch(()=>process.exit(1))" 2>/dev/null; then
echo "Container is healthy!"
exit 0
fi
echo "Attempt $i/15..."
sleep 2
done
echo "Health check failed"
docker logs oma-memorial --tail 30
exit 1
- name: Show container status
if: always()
run: |
docker ps --filter name=oma-memorial
docker logs oma-memorial --tail 20