Fix cd command errors and ensure Caddy binds to all interfaces for healthchecks

This commit is contained in:
Andreas Düren 2025-03-16 23:19:52 +01:00
parent 042c156960
commit 31def9585a

View File

@ -478,6 +478,9 @@ cat > /app/data/caddy/Caddyfile <<EOT
}
:$CADDY_PORT {
# Ensure we listen on all interfaces
bind 0.0.0.0
log {
output file /app/data/caddy/access.log {
roll_size 10MB
@ -761,7 +764,6 @@ chown -R cloudron:cloudron /app/data/go
echo "==> Checking database migration state"
if [ -d "$SERVER_DIR/cmd/museum" ]; then
echo "==> Attempting to fix dirty migration state"
cd "$SERVER_DIR"
# Create migrations log directory
mkdir -p /app/data/logs/migrations
@ -773,17 +775,19 @@ if [ -d "$SERVER_DIR/cmd/museum" ]; then
export GOFLAGS="-modfile=/app/data/go/go.mod -mod=mod"
echo "==> Forcing migration version to 25"
if /usr/local/bin/gosu cloudron:cloudron env \
GOCACHE="$GOCACHE" \
GOMODCACHE="$GOMODCACHE" \
GO111MODULE=on \
GOFLAGS="$GOFLAGS" \
cd "$SERVER_DIR" && go run cmd/museum/main.go db force 25 > /app/data/logs/migrations/force.log 2>&1; then
# Execute as the cloudron user but use a proper script instead of env cd
cat > /tmp/run_migration.sh <<EOF
#!/bin/bash
cd "$SERVER_DIR" && go run cmd/museum/main.go db force 25
EOF
chmod +x /tmp/run_migration.sh
if /usr/local/bin/gosu cloudron:cloudron bash /tmp/run_migration.sh > /app/data/logs/migrations/force.log 2>&1; then
echo "==> Successfully forced migration version"
else
echo "==> WARNING: Could not force migration version"
echo "==> Migration force log:"
cat /app/data/logs/migrations/force.log
cat /app/data/logs/migrations/force.log || echo "==> No migration log was created"
fi
else
echo "==> Skipping migration state check: cmd/museum not found"
@ -823,12 +827,26 @@ if [ -n "$MUSEUM_BIN" ]; then
SERVER_PID=$!
elif [ -d "$SERVER_DIR/cmd/museum" ]; then
echo "==> Starting Museum from source"
# Create a startup script
cat > /tmp/run_server.sh <<EOF
#!/bin/bash
cd "$SERVER_DIR" && go run cmd/museum/main.go serve
EOF
chmod +x /tmp/run_server.sh
/usr/local/bin/gosu cloudron:cloudron env \
GOCACHE="$GOCACHE" \
GOMODCACHE="$GOMODCACHE" \
GO111MODULE=on \
GOFLAGS="$GOFLAGS" \
cd "$SERVER_DIR" && go run cmd/museum/main.go serve > /app/data/logs/museum.log 2>&1 &
MUSEUM_CONFIG="$MUSEUM_CONFIG" \
MUSEUM_DB_HOST="$MUSEUM_DB_HOST" \
MUSEUM_DB_PORT="$MUSEUM_DB_PORT" \
MUSEUM_DB_USER="$MUSEUM_DB_USER" \
MUSEUM_DB_PASSWORD="$MUSEUM_DB_PASSWORD" \
MUSEUM_DB_NAME="$MUSEUM_DB_NAME" \
ENTE_LOG_LEVEL=debug \
bash /tmp/run_server.sh > /app/data/logs/museum.log 2>&1 &
SERVER_PID=$!
else
echo "==> ERROR: Museum server not found"