feat: replace Lanyard with dk0 Sentinel Discord bot, make music link clickable
Some checks failed
CI / CD / test-build (push) Failing after 5m20s
CI / CD / deploy-dev (push) Has been cancelled
CI / CD / deploy-production (push) Has been cancelled

This commit is contained in:
2026-04-22 11:43:44 +02:00
parent 049dda8dc5
commit 3a9f8f4cc5
12 changed files with 573 additions and 16 deletions

View File

@@ -62,9 +62,18 @@ jobs:
CONTAINER_NAME="portfolio-app-dev"
HEALTH_PORT="3001"
IMAGE_NAME="${{ env.DOCKER_IMAGE }}:dev"
BOT_CONTAINER="portfolio-discord-bot-dev"
BOT_IMAGE="portfolio-discord-bot:dev"
# Check for existing container
# Build discord-bot image
echo "🏗️ Building discord-bot image..."
DOCKER_BUILDKIT=1 docker build \
-t $BOT_IMAGE \
./discord-presence-bot
# Check for existing containers
EXISTING_CONTAINER=$(docker ps -aq -f name=$CONTAINER_NAME || echo "")
EXISTING_BOT=$(docker ps -aq -f name=$BOT_CONTAINER || echo "")
# Ensure networks exist
echo "🌐 Ensuring networks exist..."
@@ -78,13 +87,15 @@ jobs:
echo "⚠️ Production database not reachable, app will use fallbacks"
fi
# Stop and remove existing container
if [ ! -z "$EXISTING_CONTAINER" ]; then
echo "🛑 Stopping existing container..."
docker stop $EXISTING_CONTAINER 2>/dev/null || true
docker rm $EXISTING_CONTAINER 2>/dev/null || true
sleep 3
fi
# Stop and remove existing containers
for C in $EXISTING_CONTAINER $EXISTING_BOT; do
if [ ! -z "$C" ]; then
echo "🛑 Stopping existing container $C..."
docker stop $C 2>/dev/null || true
docker rm $C 2>/dev/null || true
sleep 3
fi
done
# Ensure port is free
PORT_CONTAINER=$(docker ps -a --format "{{.ID}}\t{{.Ports}}" | grep -E "(:${HEALTH_PORT}->)" | awk '{print $1}' | head -1 || echo "")
@@ -95,7 +106,18 @@ jobs:
sleep 3
fi
# Start new container
# Start discord-bot container
echo "🤖 Starting discord-bot container..."
docker run -d \
--name $BOT_CONTAINER \
--restart unless-stopped \
--network portfolio_net \
-e DISCORD_BOT_TOKEN="${DISCORD_BOT_TOKEN}" \
-e DISCORD_USER_ID="${DISCORD_USER_ID:-172037532370862080}" \
-e BOT_PORT=3001 \
$BOT_IMAGE
# Start new portfolio container
echo "🆕 Starting new dev container..."
docker run -d \
--name $CONTAINER_NAME \
@@ -159,6 +181,8 @@ jobs:
N8N_API_KEY: ${{ vars.N8N_API_KEY || '' }}
DIRECTUS_URL: ${{ vars.DIRECTUS_URL || 'https://cms.dk0.dev' }}
DIRECTUS_STATIC_TOKEN: ${{ secrets.DIRECTUS_STATIC_TOKEN || '' }}
DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN || '' }}
DISCORD_USER_ID: ${{ vars.DISCORD_USER_ID || '172037532370862080' }}
- name: Cleanup
run: docker image prune -f
@@ -209,10 +233,12 @@ jobs:
export ADMIN_SESSION_SECRET="${ADMIN_SESSION_SECRET}"
export DIRECTUS_URL="${DIRECTUS_URL}"
export DIRECTUS_STATIC_TOKEN="${DIRECTUS_STATIC_TOKEN}"
export DISCORD_BOT_TOKEN="${DISCORD_BOT_TOKEN}"
export DISCORD_USER_ID="${DISCORD_USER_ID:-172037532370862080}"
# Start new container via compose
echo "🆕 Starting new production container..."
docker compose -f $COMPOSE_FILE up -d portfolio
# Start new containers via compose
echo "🆕 Starting new production containers..."
docker compose -f $COMPOSE_FILE up -d --build portfolio discord-bot
# Wait for health
echo "⏳ Waiting for container to be healthy..."
@@ -274,6 +300,8 @@ jobs:
N8N_API_KEY: ${{ vars.N8N_API_KEY || '' }}
DIRECTUS_URL: ${{ vars.DIRECTUS_URL || 'https://cms.dk0.dev' }}
DIRECTUS_STATIC_TOKEN: ${{ secrets.DIRECTUS_STATIC_TOKEN || '' }}
DISCORD_BOT_TOKEN: ${{ secrets.DISCORD_BOT_TOKEN || '' }}
DISCORD_USER_ID: ${{ vars.DISCORD_USER_ID || '172037532370862080' }}
- name: Cleanup
run: docker image prune -f