Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
@speakASAP
speakASAP
Follow
View speakASAP's full-sized avatar
πŸ’­
I may be slow to respond.

Sergej speakASAP

πŸ’­
I may be slow to respond.
speakasap

Block or report speakASAP

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
speakasap /README.md

SpeakASAP Platform

Foundation repository for the SpeakASAP refactoring program. This repo hosts shared documentation, infrastructure templates, and service scaffolding used by Phase 1+ services.

Structure

speakasap/
β”œβ”€β”€ README.md # This file
β”œβ”€β”€ docker-compose.yml # Base Docker Compose template
β”œβ”€β”€ docker-compose.blue.yml # Blue environment (all services)
β”œβ”€β”€ docker-compose.green.yml # Green environment (all services)
β”œβ”€β”€ .env.example # Environment variables template
β”œβ”€β”€ scripts/
β”‚ └── deploy.sh # Deployment script template
β”œβ”€β”€ shared/ # Shared utilities
β”‚ └── notifications/ # Notification client
└── docs/
 β”œβ”€β”€ agents/ # Agent task definitions
 β”œβ”€β”€ infrastructure/ # Infrastructure documentation
 β”‚ β”œβ”€β”€ SHARED_SERVICES.md
 β”‚ β”œβ”€β”€ PORT_ALLOCATION.md
 β”‚ └── DEPLOYMENT_GUIDE.md
 └── refactoring/ # Refactoring plans and tasks

Quick Start

1. Create a New Service

  1. Copy docker-compose.yml to your service directory
  2. Replace service-name with your actual service name
  3. Create docker-compose.blue.yml and docker-compose.green.yml based on the template
  4. Update container names to include -blue and -green suffixes

2. Configure Environment

  1. Copy .env.example to .env in your service directory
  2. Fill in all required values (see docs/infrastructure/SHARED_SERVICES.md)
  3. Never commit .env to git
  4. Keep .env.example updated with variable names (keys only, no values)

3. Deploy Service

./scripts/deploy.sh

Port Allocation

All services use ports in the 42xx range:

Service Port Phase
Content Service 4201 Phase 1
Certification Service 4202 Phase 2
Assessment Service 4203 Phase 2
Course Service 4205 Phase 3
Education Service 4206 Phase 3
User Service 4207 Phase 3
Payment Service 4208 Phase 4
Notification Service 4209 Phase 4
API Gateway 4210 Phase 5
Frontend 4211 Phase 5
Salary Service 4212 Phase 4
Financial Service 4213 Phase 4

See docs/infrastructure/PORT_ALLOCATION.md for complete details.

Shared Services

All services integrate with shared microservices:

  • Auth Microservice (AUTH_SERVICE_URL) - JWT validation, user identity
  • Database Server (DB_HOST) - PostgreSQL + Redis (shared)
  • Logging Microservice (LOGGING_SERVICE_URL) - Centralized logging
  • Notifications Microservice (NOTIFICATIONS_MICROSERVICE_URL) - Email/Telegram/WhatsApp
  • Payments Microservice (PAYMENTS_MICROSERVICE_URL) - Payment processing
  • AI Microservice (AI_SERVICE_URL) - AI-powered translations and content

See docs/infrastructure/SHARED_SERVICES.md for connection details.

Deployment

Deployments use blue/green deployment via nginx-microservice:

  1. Prepare Green: Builds and starts green containers
  2. Switch Traffic: Updates nginx to route to green
  3. Monitor Health: Monitors for 30 seconds
  4. Cleanup: Stops old blue containers if healthy

See docs/infrastructure/DEPLOYMENT_GUIDE.md for complete deployment instructions.

Docker Compose Templates

Base Template

docker-compose.yml provides a template following marathon service patterns:

  • Multi-stage build support
  • Blue/green deployment ready
  • Health checks configured
  • Environment variable injection
  • nginx-network integration

Usage

  1. Copy docker-compose.yml to service directory
  2. Replace service-name with actual service name
  3. Update environment variables
  4. Create blue and green variants

Environment Variables

Required Variables

  • SERVICE_NAME - Service identifier
  • PORT - Service port (42xx range)
  • DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME - Database connection
  • LOGGING_SERVICE_URL - Centralized logging endpoint
  • DATABASE_URL - Full database connection string

Optional Variables

  • AUTH_SERVICE_URL - If service needs authentication
  • NOTIFICATION_SERVICE_URL - If service sends notifications
  • AI_SERVICE_URL - If service uses AI features
  • Timeout and retry configurations

See .env.example for complete list.

Best Practices

  1. Use environment variables - Never hardcode URLs or ports
  2. Follow naming conventions - Blue/green container suffixes
  3. Implement health checks - /health endpoint required
  4. Keep .env synced - Update .env.example with new variables (keys only)
  5. Validate before deploy - Test docker-compose files
  6. Follow marathon patterns - Consistency across services
  7. Use shared utilities - Leverage shared/ directory

Documentation

  • Deployment Guide: docs/infrastructure/DEPLOYMENT_GUIDE.md
  • Port Allocation: docs/infrastructure/PORT_ALLOCATION.md
  • Shared Services: docs/infrastructure/SHARED_SERVICES.md
  • Refactoring Plans: docs/refactoring/
  • Agent Tasks: docs/agents/

Notes

  • Production-only workflows - No dev environment configs
  • Centralized logging - All services use LOGGING_SERVICE_URL
  • Port range: 42xx reserved for SpeakASAP services
  • Blue/green deployment - Zero-downtime deployments via nginx-microservice
  • Marathon patterns - Follow marathon service structure for consistency

References

  • Marathon Service: /Users/sergiystashok/Documents/GitHub/marathon
  • nginx-microservice: Integration patterns and deployment scripts
  • Phase 1 Tasks: docs/refactoring/PHASE1_TASK_DECOMPOSITION.md

Popular repositories Loading

  1. task-management task-management Public

    A multi-node distributed todo application built with the Model Context Protocol (MCP) that provides intelligent task management and prioritization using free AI analysis.

    JavaScript 1

  2. tresinky_web tresinky_web Public

    Forked from BelungaXD/tresinky_web

    It’s a website for the TΕ™eΕ‘inky Cetechovice project, showcasing the restoration and life of a historic cherry orchard via year-based photo albums, with info pages, contact, and donations to support...

    Python 1

  3. crypto-ai-agent crypto-ai-agent Public

    Powerful asynchronous agent for cryptocurrency monitoring and Telegram notifications. You can manage your multi-currency portfolio (USD, EUR, CZK).

    Python 1

  4. nginx-microservice nginx-microservice Public

    A centralized reverse proxy microservice for managing multiple domains and subdomains with automatic SSL certificate management via Let's Encrypt.

    Shell 1

  5. database-server database-server Public

    Centralized database server serving multiple projects. One PostgreSQL container hosts multiple databases (one per project), and one Redis container for caching.

    Shell 1

  6. flipflop-service flipflop-service Public

    modern, fully automated e-commerce platform for selling diverse product categories. The platform will integrate with multiple wholesale suppliers via APIs, automatically synchronize product data, p...

    TypeScript 1

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /