Skip to content

mikotoIO/mikoto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,750 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Most Overkill Messaging App in the World.


features

  • 📑 tabs
  • 🀄 tiling window manager
  • 🧵 threaded messages
  • 📡 voice, video, and screen share
  • 📝 real-time wiki channels using Y.js
  • zen mode
  • 🅱️ keyboard shortcuts
  • 📨 direct messages

and upcoming:

  • 🌎 built-in community finder
  • 🔍 search channels
  • 🪐 DID-based usernames
    • 🥸 subdomains for multiple personas and identities
  • 🔒 encryption
  • 🎨 custom themes
  • 🛒 marketplace for extensions and integrations

Setup

Prerequisites:

  • Docker
  • Rustup
  • Proto (tool manager, used to install moonrepo)
  • Just (task runner)
proto install
pnpm install

# Copy .env.example to .env and set the variables
cp ./.env.example ./.env

# Reset and seed the environment
just reset-dev-env

Development

Mikoto uses a Moon-based monorepo.

To develop apps and packages, run the following command:

docker compose up -d # Run auxiliary services
just run-core # runs the base scripts

Frontend-only against production

If you're iterating on client UI and don't need a local backend, you can point the dev client at the production API instead:

just run-client-prod

This runs the client on http://localhost:3510 and proxies API, media, and WebSocket traffic through to the production services same-origin (no local Docker, superego, or migrations required). See apps/client/docs/PROD-BACKEND-DEV.md for details.

Build

To build all apps and packages, run the following command:

moon :build

Port Configuration

All Mikoto services use ports in the 351X or 351XX range to avoid conflicts with other common services:

Application Services (351X)

Service Port Description
Client 3510 Web client
Superego 3511 API server
Collab 3512 Collaboration service
MediaServer 3513 Media handling service

Infrastructure Services (351XX)

Service Ports Description
PostgreSQL 35101 Database
Redis 35102 Cache & pub/sub
RustFS (S3) 35103, 35104 Object storage
LiveKit 35105, 35106, 35107 Real-time audio/video
MailHog 35108, 35109 Development mail server

Docs

docs.mikoto.io

License

MIT Licensed. See LICENSE.

About

The Mikoto Monorepo

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors