Initialize work order management system with database schema, API handlers, web client, and Docker configuration.

This commit is contained in:
2026-05-16 16:15:53 -04:00
parent c135722339
commit f904431ec3
28 changed files with 2171 additions and 0 deletions
+68
View File
@@ -0,0 +1,68 @@
services:
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
environment:
SA_PASSWORD: ${SA_PASSWORD}
ACCEPT_EULA: "Y"
MSSQL_PID: Developer
ports:
- "1433:1433"
volumes:
- mssql_data:/var/opt/mssql
healthcheck:
test: ["CMD", "/opt/mssql-tools18/bin/sqlcmd", "-S", "localhost", "-U", "sa", "-P", "${SA_PASSWORD}", "-Q", "SELECT 1", "-No", "-l", "5"]
interval: 10s
timeout: 10s
retries: 12
start_period: 40s
keycloak:
image: quay.io/keycloak/keycloak:24.0
command: start-dev --import-realm --http-port=8180
environment:
KEYCLOAK_ADMIN: ${KC_ADMIN}
KEYCLOAK_ADMIN_PASSWORD: ${KC_ADMIN_PASSWORD}
KC_DB: dev-file
KC_HTTP_PORT: "8180"
KC_HOSTNAME_STRICT: "false"
KC_HOSTNAME_STRICT_HTTPS: "false"
KC_HTTP_ENABLED: "true"
KC_HEALTH_ENABLED: "true"
ports:
- "8180:8180"
volumes:
- ./keycloak:/opt/keycloak/data/import
- keycloak_data:/opt/keycloak/data
healthcheck:
# Keycloak image has no curl/wget; use bash TCP to confirm port is open
test: ["CMD-SHELL", "bash -c 'exec 3<>/dev/tcp/localhost/8180' 2>/dev/null && echo ok || exit 1"]
interval: 10s
timeout: 5s
retries: 18
start_period: 30s
api:
build: .
ports:
- "9080:9080"
env_file: .env
environment:
DB_DSN: "sqlserver://sa:${SA_PASSWORD}@mssql:1433?database=workorders"
OIDC_ISSUER: "http://localhost:8180/realms/workorders"
JWKS_URL: "http://keycloak:8180/realms/workorders/protocol/openid-connect/certs"
extra_hosts:
- "localhost:host-gateway"
volumes:
- uploads:/uploads
depends_on:
mssql:
condition: service_healthy
keycloak:
condition: service_healthy
restart: on-failure
volumes:
mssql_data:
keycloak_data:
uploads: