Skip to content

mawburn/osika

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Osika - AI Chat Platform & Integration Hub

Osika - AI Chat API & Integration Platform

Clean, extensible AI platform with intuitive UI and powerful API for custom integrations.

Osika is an AI chat platform currently in Proof of Concept (PoC) phase with a working GraphQL API and authentication system. Core chat functionality is implemented with plans for future plugin extensibility.

Key Features

πŸ” Authentication & Security
Multiple authentication providers including Google, GitHub, Microsoft, SAML, LDAP, and email/password. Role-based access control with secure session management.

πŸ’¬ Real-time Communication
Real-time messaging with streaming AI responses. Built-in support for conversation history and message persistence.

🧩 Plugin Architecture (Planned)
Extensible plugin system planned for future releases. API foundations exist but plugin execution and sandboxing are not yet implemented.

πŸ”— GraphQL API
Type-safe GraphQL API with comprehensive schema for users, conversations, and messaging. Built with Pothos for runtime type safety.

🏭 Enterprise Ready
Multi-user architecture with authentication, session management, and database-backed persistence. Additional enterprise features in development.

Quick Start

Prerequisites

  • Node.js 24+ (required) and pnpm (package manager)
  • Podman or Docker (for local PostgreSQL and Redis containers)

Installation

git clone https://github.com/your-org/osika.git
cd osika
pnpm install

Environment Setup

  1. Copy environment configuration:

    cp .env.example .env
  2. Generate required secrets:

    # Automatically generate and set SESSION_KEY and JWT_SECRET
    pnpm setup:secrets
  3. Configure authentication providers (optional):

    • Uncomment and configure any OAuth providers you want to use
    • See Authentication Setup for detailed provider configuration

Database & Services Setup

Option 1: Automated Setup (Recommended)

# Start PostgreSQL and Redis containers in background
pnpm dev:env:bg

# Wait for services to be ready, then setup database
pnpm db        # Validates schema, formats, and generates Prisma client
pnpm db:push   # Syncs database schema (for development)
pnpm db:seed   # Creates sample users and AI model configurations

Option 2: Manual Container Management

# Start containers in foreground (press Ctrl+C to stop)
pnpm dev:env

# In another terminal, setup database:
pnpm db
pnpm db:push
pnpm db:seed

Container Management Commands:

pnpm dev:env:bg      # Start in background
pnpm dev:env:stop    # Stop containers
pnpm dev:env:restart # Restart containers
pnpm dev:env:status  # Check container status

Development

# Start the development server
pnpm dev

Available Services:

Verification

Test your setup:

# Run type checking
pnpm typecheck

# Run linting
pnpm lint

# Run tests
pnpm test

# Run all quality checks
pnpm quality

Database Management

# Common database operations
pnpm db           # Validate, format, and generate Prisma client
pnpm db:push      # Sync database schema (development)
pnpm db:seed      # Create sample users and AI model configurations
pnpm db:studio    # Open Prisma Studio visual editor
pnpm db:reset     # Reset database (drops all data)

Architecture

Osika uses a monorepo structure with pnpm workspaces:

  • apps/api/ - Fastify GraphQL API server
  • apps/web/ - Web application frontend
  • packages/shared-types/ - Shared TypeScript types
  • apps/api/src/domains/ - Domain-driven business logic modules
  • docs/ - Technical documentation

The system follows Domain-Driven Design principles with separate modules for authentication, messaging, and users.

Documentation

Core Documentation

Development

πŸ“„ License

This project is licensed under AGPL-3.0.

🏭 Enterprise-Friendly

Internal business use is 100% allowed under AGPL without any code sharing requirements. This includes sharing access with your vendors, contractors, and business partners. You only need to share source code if you're offering this as a service to external customers.

Learn more about licensing β†’

About

Clean, extensible AI platform with intuitive UI and powerful API for custom integrations. Features GraphQL API, real-time messaging with streaming AI responses, extensible plugin architecture, and enterprise-ready multi-user support.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages