Skip to content
@octoposprime

OctopOS Prime

Octopos Prime

🐙 OctopOS Prime

Modern, scalable software ecosystem based on microservice architecture

Email Location Followers

📋 Table of Contents

🎯 Overview

OctopOS Prime is a comprehensive software platform developed using modern software development principles and microservice architecture. The system consists of independently deployable microservices that communicate via Protocol Buffers.

Key Features

  • 🏗️ Microservice Architecture: Independent, scalable services
  • 🔐 Security: JWT-based authentication and authorization
  • 📡 GraphQL API Gateway: Single point access to all services
  • 📱 Cross-Platform: Web and mobile applications
  • 🐳 Containerization: Easy deployment with Docker
  • 📊 Observability: Centralized logging and monitoring

🏛️ System Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Client Layer                             │
│  ┌──────────────┐              ┌──────────────┐             │
│  │  Web Client  │              │ Mobile App   │             │
│  │  (op-web-    │              │ (op-mo-app)  │             │
│  │   site)      │              │   Flutter    │             │
│  └──────────────┘              └──────────────┘             │
└─────────────────────────────────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────┐
│                    API Gateway                              │
│              ┌──────────────────────┐                       │
│              │   op-be-graphql      │                       │
│              │   (GraphQL Gateway)  │                       │
│              └──────────────────────┘                       │
└─────────────────────────────────────────────────────────────┘
                           │
           ┌───────────────┼───────────────┐
           ▼               ▼               ▼
┌─────────────────────────────────────────────────────────────┐
│                Backend Microservices                        │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐     │
│  │ op-be-   │  │ op-be-   │  │ op-be-   │  │ op-be-   │     │
│  │  auth    │  │  user    │  │ logging  │  │  book    │     │
│  └──────────┘  └──────────┘  └──────────┘  └──────────┘     │
│                                                             │
│  ┌──────────┐              ┌──────────────────────┐         │
│  │ op-be-   │              │   op-be-shared       │         │
│  │  dlr     │              │  (Common Library)    │         │
│  └──────────┘              └──────────────────────┘         │
└─────────────────────────────────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────┐
│                   SDK & Protocol Layer                      │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐       │
│  │  op-go-sdk-  │  │  op-go-sdk-  │  │   op-proto   │       │
│  │     srv      │  │     clt      │  │   (ProtoBuf) │       │
│  └──────────────┘  └──────────────┘  └──────────────┘       │
└─────────────────────────────────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────┐
│                    OS & Infrastructure                      │
│  ┌──────────────┐              ┌──────────────┐             │
│  │  op-go-os    │              │  op-infra    │             │
│  │              │              │              │             │
│  └──────────────┘              └──────────────┘             │
└─────────────────────────────────────────────────────────────┘
                           │
                           ▼
┌─────────────────────────────────────────────────────────────┐
│                  Data & Cache Layer                         │
│              PostgreSQL + Redis                             │
└─────────────────────────────────────────────────────────────┘

📦 Repository Structure

🔌 Protocol & SDK Layer

Repository Description Technology Stars
op-proto Protocol Buffers definitions - Communication protocol for all services Protocol Buffers ⭐ 58
op-go-os OctopOS Prime operating system layer Go ⭐ 57
op-go-sdk-srv Server-side SDK - Server-side development library Go ⭐ 58
op-go-sdk-clt Client-side SDK - Client-side development library Go ⭐ 56

🔐 Backend Services

Repository Description Port Stars
op-be-graphql GraphQL API Gateway - Main API router 18080 ⭐ 13
op-be-auth Authentication and authorization service 18084 ⭐ 5
op-be-user User management service 18082 ⭐ 17
op-be-logging Centralized logging service 18081 -
op-be-book Book/content management service - ⭐ 7
op-be-dlr DLR (Data Layer Repository) service 18083 -
op-be-shared Backend shared libraries - ⭐ 14
op-be-docs Backend documentation - -

🖥️ Frontend & Mobile

Repository Description Technology Stars
op-web-site Web application TypeScript/CSS/HTML ⭐ 11
op-mo-app Mobile application (Android/iOS) Flutter ⭐ 17

🛠️ Infrastructure & DevOps

Repository Description Technology Stars
op-infra Infrastructure as Code, deployment scripts Shell Scripts ⭐ 8

🎨 Design & Community

Repository Description Stars
op-design Design system and style guides ⭐ 16
octo-bot Discord community management bot -
.github Organization profile and templates ⭐ 8

🔧 Technology Stack

Backend

  • Language: Go (Golang)
  • API: GraphQL
  • Protocol: Protocol Buffers (gRPC)
  • Authentication: JWT (JSON Web Tokens)
  • Database: PostgreSQL
  • Cache: Redis
  • Container: Docker
  • Network: Docker Network

Frontend

  • Web: TypeScript, CSS, HTML
  • Mobile: Flutter (Dart)

DevOps & Infrastructure

  • Container Orchestration: Docker
  • Scripting: Shell Scripts
  • CI/CD: GitHub Actions

Monitoring & Logging

  • Logging: Centralized logging service (op-be-logging)
  • Port Management: Dedicated port assignment for each service

🚀 Installation and Getting Started

Requirements

- Docker & Docker Compose
- Go 1.21+ (for backend development)
- Flutter 3.0+ (for mobile development)
- Node.js 18+ (for web development)
- PostgreSQL 15+
- Redis 7+

Environment Variables

Required environment variables for all backend services:

# Database
POSTGRES_USERNAME=op
POSTGRES_PASSWORD=op
POSTGRES_DATABASE=op

# Authentication
JWT_SECRET_KEY=op

# Cache
REDIS_PASSWORD=op

# Testing
TEST=true

Create Docker Network

docker network create op

Start Backend Services

# Logging service
docker run --pull=always -d --expose 18081 -p 18081:18080 \
  --network op -e TEST=true --name op-be-logging \
  ghcr.io/octoposprime/op-be-logging:latest

# User service
docker run --pull=always -d --expose 18082 -p 18082:18080 \
  --network op -e TEST=true --name op-be-user \
  ghcr.io/octoposprime/op-be-user:latest

# GraphQL API Gateway
docker run --pull=always -d --expose 18080 -p 18080:18080 \
  --network op -e TEST=true --name op-be-graphql \
  ghcr.io/octoposprime/op-be-graphql:latest

# DLR service
docker run --pull=always -d --expose 18083 -p 18083:18080 \
  --network op -e TEST=true --name op-be-dlr \
  ghcr.io/octoposprime/op-be-dlr:latest

# Auth service
docker run --pull=always -d --expose 18084 -p 18084:18080 \
  --network op -e TEST=true --name op-be-auth \
  ghcr.io/octoposprime/op-be-auth:latest

Stop Services

docker stop op-be-logging op-be-user op-be-graphql op-be-dlr op-be-auth
docker rm op-be-logging op-be-user op-be-graphql op-be-dlr op-be-auth

Port Structure

Service Internal Port External Port
GraphQL Gateway 18080 18080
Logging 18080 18081
User 18080 18082
DLR 18080 18083
Auth 18080 18084

📚 Microservice Architecture Principles

1. Independent Deployment

Each service runs in its own Docker container and can be deployed independently.

2. Protocol Buffers Communication

Inter-service communication is done via Protocol Buffers (gRPC), which provides:

  • Type-safe communication
  • High performance
  • Automatic code generation

3. API Gateway Pattern

op-be-graphql serves as the single entry point for all client requests.

4. Shared Library

op-be-shared provides common functions and utilities, preventing code duplication.

5. Centralized Logging

op-be-logging centrally collects logs from all services.

🔐 Security

  • JWT Authentication: Token-based authentication
  • Service Isolation: Each service in isolated Docker container
  • Environment Variables: Sensitive information stored as environment variables
  • Network Isolation: Service isolation via Docker network

🤝 Contributing

OctopOS Prime is an open source project and we welcome your contributions!

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: Add amazing feature')
  4. Push your branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Code Standards

  • Use gofmt for Go code standards
  • Use Conventional Commits for commit messages
  • Write unit tests for every change
  • Keep documentation up to date

📞 Contact

📄 License

All repositories in this project are licensed under MIT License.

👥 Contributors

37 contributors have made 732 commits to the OctopOS Prime organization.

🏆 Top Contributors

Rank Contributor Total Commits Repositories
1 husamettinarabaci 176 27
2 Sddilora 122 15
3 aleyna0f 68 1
4 Maraza25 45 8
5 ikramylmz 40 1
6 Smnrgcl 38 6
7 akadir8 27 4
8 suhedadogan50 26 1
9 Feyzanrs 23 9
10 Weal1041 21 1

🌟 Statistics

Growing community with over 300+ stars across repositories!


Built with ❤️ by OctopOS Prime Team
Making microservices development easier and scalable

Pinned Loading

  1. op-proto op-proto Public

    Protocol Buffers

    Makefile 58

  2. op-go-os op-go-os Public

    OctopOS Prime OS with GoLang

    Go 57

  3. op-go-sdk-srv op-go-sdk-srv Public

    OctopOS Prime Protocol Proxy Server Sdk

    58

  4. op-go-sdk-clt op-go-sdk-clt Public

    OctopOS Prime Protocol Proxy Client Sdk

    56

Repositories

Showing 10 of 27 repositories

Top languages

Loading…

Most used topics

Loading…