Some checks are pending
Bidi Control Character Guard / bidi-control-guard (push) Waiting to run
Circular Dependency Check / Check for new circular dependencies (push) Waiting to run
Citus Migration Smoke / Combined migrations on single-node Citus (push) Waiting to run
E2E Fresh Install Tests / fresh-install-e2e (push) Waiting to run
ext-v2 guardrails / Run ext-v2 guard and ESLint (push) Waiting to run
Integration Tests / Check for relevant changes (push) Waiting to run
Integration Tests / ${{ (github.event_name == 'schedule' || github.event.inputs.suite == 'full') && 'Full integration suite' || 'Tier-1 integration subset' }} (push) Blocked by required conditions
Mobile checks / Mobile lint + typecheck (push) Waiting to run
Mobile checks / Mobile unit tests (push) Waiting to run
Mobile checks / Mobile dependency audit (report) (push) Waiting to run
Mobile checks / Mobile reproducibility checks (push) Waiting to run
Secrets guard (env backups) / Ensure no tracked env backup files (push) Waiting to run
Temporal Readiness / fast-readiness (push) Waiting to run
Temporal Readiness / docker-parity (push) Waiting to run
TypeScript Type Check / Nx affected typecheck (push) Waiting to run
Unit Tests / Skipped-test budget (push) Waiting to run
Unit Tests / Nx affected unit tests (push) Waiting to run
Unit Tests / Server unit coverage (informational) (push) Waiting to run
Validate Tenant Management Schema / Check for relevant changes (push) Waiting to run
Validate Tenant Management Schema / Validate Tenant Management Schema (push) Blocked by required conditions
EE Workflows Build Guard / ee-workflows-build-guard (push) Waiting to run
Excluded: .git, node_modules, secrets/, compose.env, assemblyscript tgz Source: /opt/alga-psa on psa.joliet.tech
54 lines
2.4 KiB
Bash
54 lines
2.4 KiB
Bash
#!/bin/sh
|
|
set -euo pipefail
|
|
|
|
# Nx project-graph caching/daemon can get into a bad state across container restarts and then fail
|
|
# with "Cannot find configuration for task server:next:dev". Reset it on boot for stability.
|
|
export NX_DAEMON="${NX_DAEMON:-false}"
|
|
export NX_CACHE_DIRECTORY="${NX_CACHE_DIRECTORY:-/tmp/nx-cache}"
|
|
export NX_WORKSPACE_DATA_DIRECTORY="${NX_WORKSPACE_DATA_DIRECTORY:-/tmp/nx-workspace-data}"
|
|
export NX_PROJECT_GRAPH_CACHE_DIRECTORY="${NX_PROJECT_GRAPH_CACHE_DIRECTORY:-/tmp/nx-workspace-data}"
|
|
rm -rf "$NX_CACHE_DIRECTORY" "$NX_WORKSPACE_DATA_DIRECTORY" >/dev/null 2>&1 || true
|
|
mkdir -p "$NX_CACHE_DIRECTORY" "$NX_WORKSPACE_DATA_DIRECTORY" >/dev/null 2>&1 || true
|
|
|
|
cd /app
|
|
npx --no-install nx reset >/dev/null 2>&1 || true
|
|
|
|
DB_PASSWORD=""
|
|
SECRET_FILE="/run/secrets/db_password_server"
|
|
if [ -f "$SECRET_FILE" ]; then
|
|
DB_PASSWORD=$(tr -d '\r\n' < "$SECRET_FILE")
|
|
elif [ -n "${DB_PASSWORD_SERVER:-}" ]; then
|
|
DB_PASSWORD="${DB_PASSWORD_SERVER}"
|
|
else
|
|
echo "[server-dev-entrypoint] ERROR: db password not found in /run/secrets/db_password_server or DB_PASSWORD_SERVER env" >&2
|
|
exit 1
|
|
fi
|
|
|
|
PG_HOST="${PGBOUNCER_HOST:-pgbouncer}"
|
|
PG_PORT="${PGBOUNCER_PORT:-6432}"
|
|
export DATABASE_URL="postgresql://app_user:${DB_PASSWORD}@${PG_HOST}:${PG_PORT}/server"
|
|
export NODE_ENV="development"
|
|
export DB_HOST="${PG_HOST}"
|
|
export DB_PORT="${PG_PORT}"
|
|
export REDIS_HOST="${REDIS_HOST:-redis}"
|
|
export REDIS_PORT="${REDIS_PORT:-6379}"
|
|
export HOCUSPOCUS_URL="${HOCUSPOCUS_URL:-ws://hocuspocus:1234}"
|
|
|
|
# Some startup tasks (e.g. standard invoice template sync) require the AssemblyScript compiler.
|
|
# The template compiler lives in a nested package with its own node_modules.
|
|
ASC_JS="/app/server/src/invoice-templates/assemblyscript/node_modules/assemblyscript/dist/asc.js"
|
|
if [ ! -f "$ASC_JS" ]; then
|
|
echo "[server-dev-entrypoint] Installing AssemblyScript deps for invoice templates..."
|
|
mkdir -p /app/.npm-cache >/dev/null 2>&1 || true
|
|
(cd /app/server/src/invoice-templates/assemblyscript && npm install --cache /app/.npm-cache --silent)
|
|
fi
|
|
|
|
cd /app/server
|
|
# Avoid Nx flakiness inside long-lived containers (e.g. `docker compose restart`) by running Next directly.
|
|
# Next 16 defaults to Turbopack; keep that default. Webpack can be forced for debugging via ALGA_NEXT_WEBPACK=1.
|
|
NEXT_DEV_FLAGS="--hostname 0.0.0.0 --port 3000"
|
|
if [ "${ALGA_NEXT_WEBPACK:-0}" = "1" ]; then
|
|
NEXT_DEV_FLAGS="--webpack ${NEXT_DEV_FLAGS}"
|
|
fi
|
|
exec npx --no-install next dev ${NEXT_DEV_FLAGS}
|