chore: sync all local changes and new files

- Update next.config.ts
- Add netlify.toml, Docker configs, e2e tests
- Add env templates, docs (README, ROADMAP, TODO)
- Add vitest/playwright test configs
- Add component and lib tests
- Add install script, portainer env template
- Update .gitignore (tsbuildinfo, deno.lock, dev.db)
This commit is contained in:
FalahMobile
2026-07-02 20:01:48 +08:00
parent 2e66def057
commit 61baf3ac5d
25 changed files with 2456 additions and 2 deletions
+203
View File
@@ -0,0 +1,203 @@
# Local Development with Docker
# Usage: docker-compose -f docker-compose.local.yml up -d
version: '3.8'
services:
# =============================================================================
# CORE LAYER - Falah OS Services
# =============================================================================
# Ummah ID - Sovereign Identity Service
ummahid:
build:
context: ./docker/services/ummahid
dockerfile: Dockerfile
container_name: falah-ummahid
ports:
- "3001:3000"
environment:
- NODE_ENV=development
- SERVICE_NAME=ummahid
- REDIS_URL=redis://redis:6379
- DATABASE_URL=postgresql://postgres:falahdev@postgres:5432/falahid
- JWT_SECRET=dev_jwt_secret_change_in_production
- ENCRYPTION_KEY=dev_encryption_key_change_in_production
depends_on:
- postgres
- redis
networks:
- falah-dev-network
restart: unless-stopped
# Wallet Service - FLH Currency Management
wallet:
build:
context: ./docker/services/wallet
dockerfile: Dockerfile
container_name: falah-wallet
ports:
- "3002:3000"
environment:
- NODE_ENV=development
- SERVICE_NAME=wallet
- REDIS_URL=redis://redis:6379
- DATABASE_URL=postgresql://postgres:falahdev@postgres:5432/falahwallet
- MOCKNET_URL=http://mocknet:3000
- PROTOCOL_FEE_PERCENT=1.5
depends_on:
- postgres
- redis
- ummahid
networks:
- falah-dev-network
restart: unless-stopped
# RAMZ Contract Engine - Shariah-Compliant Smart Contracts
ramz:
build:
context: ./docker/services/ramz
dockerfile: Dockerfile
container_name: falah-ramz
ports:
- "3003:3000"
environment:
- NODE_ENV=development
- SERVICE_NAME=ramz
- REDIS_URL=redis://redis:6379
- DATABASE_URL=postgresql://postgres:falahdev@postgres:5432/falahramz
- SHARIAH_RULES=NO_RIBA,NO_GHARAR,NO_MAYSIR,HALAL_COMMODITY,ASSET_BACKED,MUTUAL_CONSENT,NO_BAI_INAH
depends_on:
- postgres
- redis
- ummahid
- wallet
networks:
- falah-dev-network
restart: unless-stopped
# Mock-Net Sandbox - Digital Twin Environment
mocknet:
build:
context: ./docker/services/mocknet
dockerfile: Dockerfile
container_name: falah-mocknet
ports:
- "3004:3000"
environment:
- NODE_ENV=development
- SERVICE_NAME=mocknet
- REDIS_URL=redis://redis:6379
- DATABASE_URL=postgresql://postgres:falahdev@postgres:5432/falahmock
- ENABLE_CHAOS_TESTING=true
depends_on:
- postgres
- redis
networks:
- falah-dev-network
restart: unless-stopped
# =============================================================================
# API GATEWAY
# =============================================================================
api-gateway:
build:
context: ./docker/services/api-gateway
dockerfile: Dockerfile
container_name: falah-api-gateway
ports:
- "3000:3000"
environment:
- NODE_ENV=development
- SERVICE_NAME=api-gateway
- REDIS_URL=redis://redis:6379
- UMMAHID_URL=http://ummahid:3000
- WALLET_URL=http://wallet:3000
- RAMZ_URL=http://ramz:3000
- MOCKNET_URL=http://mocknet:3000
depends_on:
- redis
- ummahid
- wallet
- ramz
networks:
- falah-dev-network
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
# =============================================================================
# DATA LAYER
# =============================================================================
postgres:
image: postgres:16-alpine
container_name: falah-postgres-dev
ports:
- "5432:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=falahdev
- POSTGRES_DB=falahdb
volumes:
- postgres-dev-data:/var/lib/postgresql/data
- ./docker/infrastructure/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
networks:
- falah-dev-network
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: falah-redis-dev
ports:
- "6379:6379"
volumes:
- redis-dev-data:/data
networks:
- falah-dev-network
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
command: redis-server --appendonly yes
# =============================================================================
# FRONTEND (Netlify Dev)
# =============================================================================
# Uncomment for local frontend development
# frontend:
# image: node:20-alpine
# working_dir: /app
# command: sh -c "npm install -g netlify-cli && netlify dev"
# volumes:
# - .:/app
# ports:
# - "8888:8888"
# - "1313:1313"
# networks:
# - falah-dev-network
volumes:
postgres-dev-data:
driver: local
redis-dev-data:
driver: local
networks:
falah-dev-network:
driver: bridge
ipam:
config:
- subnet: 172.30.0.0/16