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
2.7 KiB
2.7 KiB
Service Entry Point Scripts
This document describes the entrypoint script structure implemented for each service in the Docker Compose setup.
Overview
Each service has a dedicated entrypoint script that handles initialization, dependency checks, and startup procedures. This approach provides:
- Better error handling and logging
- Proper dependency management
- Consistent startup procedures
- Clear separation of concerns
Script Locations
setup/entrypoint.sh: Database initialization and migrationsredis/entrypoint.sh: Redis server configuration and startuphocuspocus/entrypoint.sh: Hocuspocus service initializationserver/entrypoint.sh: Main server startup and health checks
Common Features
Each script includes:
- Error handling with
set -e - Timestamp-based logging
- Health checks for dependencies
- Environment-specific behavior (development/production)
Service-Specific Details
Setup Service
- Handles database creation
- Runs migrations
- Seeds initial data
- Waits for PostgreSQL to be ready
Redis Service
- Creates runtime configuration
- Securely handles passwords from secrets
- Configures persistence and logging
- Sets up performance tuning
Hocuspocus Service
- Checks PostgreSQL and Redis dependencies
- Handles development/production modes
- Provides health check endpoint
- Manages WebSocket connections
Server Service
- Displays version information
- Checks all service dependencies
- Handles development/production modes
- Provides comprehensive logging
Usage
The entrypoint scripts are automatically executed when their respective containers start. No manual intervention is required.
Development Mode
docker-compose up
The scripts will:
- Check dependencies
- Initialize services
- Start in development mode with hot reloading
Production Mode
docker-compose -f docker-compose.yaml up
The scripts will:
- Perform thorough health checks
- Initialize with production settings
- Start services with optimized configurations
Error Handling
All scripts implement proper error handling:
- Descriptive error messages
- Non-zero exit codes on failure
- Dependency timeout handling
- Graceful shutdown procedures
Logging
Consistent logging format across all scripts:
- Timestamp prefixes
- Service identification
- Status updates
- Error details when applicable
Security
Security measures implemented:
- Secrets management
- No hardcoded credentials
- Proper file permissions
- Non-root user execution where applicable
Maintenance
When updating the scripts:
- Maintain the error handling patterns
- Keep the logging format consistent
- Update dependency checks as needed
- Test both development and production modes