Skip to content

fossasia/loungemesh

Repository files navigation

LoungeMesh

Spatial video lounge for informal online and hybrid events — move freely in a shared 2D space with proximity-based audio. Built for Eventyay integration and self-hosted Jitsi.

Documentation: docs.loungemesh.com — built with TypeDoc + VitePress, deployed via GitHub Actions to GitHub Pages (DOCS_CNAME + DOCS_BASE_URL repo variables). See Publishing docs.

Quick start

npm install
npm run setup
npm run dev

Open http://localhost:5173.

Docker (SPA + Jitsi stack)

npm run setup
npm run docker:up

Use 127.0.0.1 for Docker smoke tests; some systems resolve localhost to IPv6 first, which can reset the mapped container port.

Stack

  • Vue 3, TypeScript, Vite, Pinia
  • lib-jitsi-meet (headless, no iframe)
  • Web Audio API for spatial gain
  • Docker + nginx

Scripts

Command Description
npm run dev Development server
npm run build Production build → dist/
npm test Vitest unit tests
npm run docs:dev VitePress docs locally
npm run docs:build Build docs to docs-site/.vitepress/dist
npm run test:e2e Playwright smoke tests (after npm run build)
npm run typecheck Type-check .ts and .vue with vue-tsc
npm run setup Create .env for local dev + Docker (loungemesh.sh dev)
npm run deploy Rebuild Docker stack on server (loungemesh.sh deploy)
npm run fix:jvb Fix a JVB advertising the wrong public IP

Production server setup uses ./scripts/loungemesh.sh bootstrap — see Deployment.

License

See LICENSE.md.

About

Spatial video lounge for informal, hallway-style interactions https://loungemesh.com

Resources

License

Stars

Watchers

Forks

Contributors