Sign inSign up

hyukiody/yo3-platform

By hyukiody

โ€ขUpdated 8 months ago

Image
0

2.0K

hyukiody/yo3-platform repository overview

โ YO3 Platform - Private Development Repository

Unified Container Build Repository

This is the private development repository for the YO3 Platform. Contains complete source code for all backend services and automated Docker builds.

โš ๏ธ PRIVATE REPOSITORY - Contains proprietary source code. Not for public distribution.


โ ๐Ÿ—๏ธ Repository Architecture

โ Single Fat Container Strategy

All services are bundled into one unified container for enhanced IP protection:

hyukiody/yo3-platform:latest
โ”œโ”€โ”€ Identity Service (Port 8080)
โ”œโ”€โ”€ Stream Processing (Port 8081)
โ”œโ”€โ”€ Data Core (Port 8082)
โ”œโ”€โ”€ Edge Node (Port 8091)
โ”œโ”€โ”€ Frontend (Port 5173)
โ””โ”€โ”€ Orchestrator (Port 9090)

Benefits:

  • ๐Ÿ”’ IP Protection: Difficult to reverse engineer or decompose
  • ๐Ÿš€ Simple Deployment: Single container instead of 6 microservices
  • ๐Ÿ“ฆ Reduced Attack Surface: Internal service communication only
  • โšก Faster Startup: No inter-container networking overhead

โ ๐Ÿ“ฆ Docker Hub

Published Image: hyukiody/yo3-platformโ 

# Pull latest version
docker pull hyukiody/yo3-platform:latest

# Pull specific commit
docker pull hyukiody/yo3-platform:full-source-744717c
โ Available Tags
  • latest - Most recent successful build
  • full-source - Latest from full-source branch
  • full-source-{commit} - Specific commit builds

โ ๐Ÿš€ Quick Deploy

โ Using Pre-built Image
# Pull from Docker Hub
docker pull hyukiody/yo3-platform:latest

# Run unified platform
docker run -d \
  --name yo3-platform \
  -p 5173:5173 \
  -p 8080:8080 \
  -p 8081:8081 \
  -p 8082:8082 \
  -p 8091:8091 \
  -p 9090:9090 \
  hyukiody/yo3-platform:latest

# Access frontend
open http://localhost:5173
โ Using Docker Compose
# Clone repository
git clone https://github.com/hyukiody/teraApi.git
cd teraApi

# Start all services
docker-compose -f docker-compose.production.yml up -d

# View logs
docker-compose -f docker-compose.production.yml logs -f

# Stop services
docker-compose -f docker-compose.production.yml down

โ ๐Ÿ› ๏ธ Development Build

โ Prerequisites
  • Docker Desktop 24.0+
  • Maven 3.9+ (for local builds)
  • Node.js 20+ (for frontend development)
  • Java 21
โ Local Build
# Build unified container locally
docker build -f Dockerfile.orchestrator -t yo3-platform:local .

# Run local build
docker run -d --name yo3-test -p 5173:5173 yo3-platform:local
โ Maven Build (Development)
# Build all services
mvn clean package -DskipTests

# Build specific module
cd middleware/identity
mvn clean package

โ ๐Ÿค– CI/CD Pipeline

โ Automated Builds

Pushes to full-source or main branches automatically trigger:

  1. โœ… Maven Build - Compile all Java services
  2. โœ… Frontend Build - Vite production build
  3. โœ… Docker Build - Multi-stage unified container
  4. โœ… Docker Push - Upload to Docker Hub
  5. โœ… Container Test - Verify startup health

Workflow: .github/workflows/docker-build-all.yml

โ Manual Trigger
# Trigger workflow manually
gh workflow run docker-build-all.yml --ref full-source

Or via GitHub UI: Actions โ†’ Build and Push YO3 Platform โ†’ Run workflow


โ ๐Ÿ“ Repository Structure

teraApi/
โ”œโ”€โ”€ .github/
โ”‚   โ””โ”€โ”€ workflows/
โ”‚       โ””โ”€โ”€ docker-build-all.yml    # CI/CD pipeline
โ”œโ”€โ”€ middleware/                      # Backend services
โ”‚   โ”œโ”€โ”€ identity/                   # JWT auth service
โ”‚   โ”œโ”€โ”€ stream/                     # Video processing
โ”‚   โ”œโ”€โ”€ data-core/                  # Data persistence
โ”‚   โ”œโ”€โ”€ edge-node/                  # Edge computing
โ”‚   โ””โ”€โ”€ pom.xml                     # Parent POM
โ”œโ”€โ”€ frontend/                        # React application
โ”‚   โ”œโ”€โ”€ src/                        # TypeScript source
โ”‚   โ””โ”€โ”€ package.json
โ”œโ”€โ”€ ops/                            # Operations configs
โ”‚   โ”œโ”€โ”€ nginx.conf                  # Nginx config
โ”‚   โ””โ”€โ”€ init-db.sql                 # Database schema
โ”œโ”€โ”€ Dockerfile.orchestrator         # Unified container build
โ”œโ”€โ”€ docker-compose.production.yml   # Production deployment
โ”œโ”€โ”€ pom.xml                         # Root Maven POM
โ””โ”€โ”€ README.md                       # This file

โ ๐Ÿ”ง Service Architecture

โ Middleware Services (Java 21 + Spring Boot)
ServicePortTechnologyPurpose
Identity8080Spring Security, JWTAuthentication, rate limiting
Stream8081WebSocket, EncryptionVideo processing, streaming
Data Core8082JPA, PostgreSQLData persistence, encryption
Edge Node8091REST APIEdge computing, image processing
โ Frontend (React 18 + TypeScript)
ComponentPortTechnologyPurpose
Frontend5173Vite, React RouterUser interface, dashboard
Orchestrator9090Express.jsService coordination

โ ๐Ÿ” Security Configuration

โ GitHub Secrets (Required)

Configure at: Settings โ†’ Secrets and variables โ†’ Actions

SecretDescriptionExample
DOCKERHUB_USERNAMEDocker Hub usernamehyukiody
DOCKERHUB_TOKENDocker Hub access tokendckr_pat_... (Read, Write, Delete)
โ Environment Variables
# Production environment
SPRING_PROFILES_ACTIVE=production
JAVA_OPTS="-Xmx2G -Xms512M -XX:+UseG1GC"
YO3_LOG_LEVEL=INFO
TZ=UTC

# Database (if using external DB)
DB_HOST=postgres
DB_PORT=5432
DB_NAME=yo3platform
DB_USER=yo3admin
DB_PASSWORD=<secure-password>

โ ๐Ÿ“Š Build Process

โ Dockerfile.orchestrator Stages
# Stage 1: Maven Build (Java Services)
FROM maven:3.9-eclipse-temurin-21
- Builds all 4 middleware services
- Output: JAR files in target/ directories

# Stage 2: Frontend Build (React)
FROM node:20-alpine
- Builds frontend with Vite
- Output: Static files in dist/

# Stage 3: Runtime (Unified Container)
FROM eclipse-temurin:21-jdk-alpine
- Copies JARs from Stage 1
- Copies frontend from Stage 2
- Installs orchestrator scripts
- Creates non-root user
- Exposes all service ports
โ Build Arguments
docker build \
  --build-arg BUILD_DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") \
  --build-arg VCS_REF=$(git rev-parse --short HEAD) \
  --build-arg VERSION=1.0.0 \
  -f Dockerfile.orchestrator \
  -t hyukiody/yo3-platform:latest \
  .

โ ๐Ÿงช Testing

โ Health Checks
# Check container health
docker inspect yo3-platform | jq '.[0].State.Health'

# Test individual services
curl http://localhost:8080/actuator/health  # Identity
curl http://localhost:8081/actuator/health  # Stream
curl http://localhost:8082/actuator/health  # Data Core
curl http://localhost:8091/actuator/health  # Edge Node
curl http://localhost:5173                  # Frontend
โ Integration Tests
# Run automated tests
./test-deployment.ps1  # Windows
./test-deployment.sh   # Linux/macOS

# Manual verification
docker logs yo3-platform

โ ๐Ÿ”„ Deployment Workflow

โ Development โ†’ Production
  1. Develop on feature branches
  2. Merge to full-source branch
  3. Automatic Build via GitHub Actions
  4. Docker Hub receives new image
  5. Deploy to production:
    docker pull hyukiody/yo3-platform:latest
    docker-compose -f docker-compose.production.yml up -d
    
โ Rollback
# Rollback to previous commit
docker pull hyukiody/yo3-platform:full-source-<commit-hash>
docker tag hyukiody/yo3-platform:full-source-<commit-hash> hyukiody/yo3-platform:latest
docker-compose -f docker-compose.production.yml up -d

RepositoryPurposeVisibility
yO3-platformโ Public demo (frontend only)๐ŸŒ Public
teraApiโ Full source + Docker builds๐Ÿ”’ Private
โ Public vs Private

Public Repository (yO3-platform):

  • โœ… Frontend source code
  • โœ… GitHub Pages deployment
  • โœ… Documentation
  • โŒ Backend source code (excluded from history)

Private Repository (teraApi):

  • โœ… Complete source code (frontend + backend)
  • โœ… Docker build automation
  • โœ… Internal documentation
  • โœ… Development workspace

โ ๐Ÿ“– Documentation


โ ๐Ÿค Contributors

This is a private development repository. Access is restricted to authorized contributors only.

โ Adding Contributors
# Invite collaborators via GitHub
Settings โ†’ Collaborators โ†’ Add people

โ ๐Ÿ“„ License

Proprietary License - All rights reserved.

Source code in this repository is proprietary and confidential. Unauthorized copying, distribution, or use is strictly prohibited.

See LICENSEโ  for complete terms.


โ ๐Ÿ†˜ Support

For issues or questions:

  1. Check DEV_DOCS/โ  for technical documentation
  2. Review GitHub Actionsโ  logs
  3. Contact repository maintainers

โ ๐Ÿ”ฅ Quick Commands Reference

# Build locally
docker build -f Dockerfile.orchestrator -t yo3:local .

# Run locally
docker run -d --name yo3 -p 5173:5173 -p 8080-8091:8080-8091 yo3:local

# View logs
docker logs -f yo3

# Stop container
docker stop yo3 && docker rm yo3

# Production deploy
docker pull hyukiody/yo3-platform:latest
docker-compose -f docker-compose.production.yml up -d

# Clean rebuild
docker-compose -f docker-compose.production.yml down -v
docker pull hyukiody/yo3-platform:latest
docker-compose -f docker-compose.production.yml up -d --force-recreate

Built with Java 21, Spring Boot 3.2, React 18, and Docker

Last Updated: January 4, 2026

Tag summary

Content type

Image

Digest

sha256:2bb31ca71โ€ฆ

Size

97.4 MB

Last updated

8 months ago

docker pull hyukiody/yo3-platform