Meltype
눈 녹듯 반각·전각 장벽을 녹여주는 일본어 입력
tide는 간단하고 자체 호스팅 가능한 화상 회의 서비스
tide is a simple, self-hostable video conference service. One Go binary, server-side recording and OIDC sign-in. An alternative to Jitsi, Zoom and Google Meet that runs on your own server.
생산성Go · TypeScriptGitHub @Convex-Works온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기🌊 Simple, self-hostable video conference service. One Go binary with a built-in media server, server-side recording and OIDC sign-in. A Jitsi, Zoom and Google Meet alternative.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗tide is a self-hosted video meeting service. Its Go binary embeds the SvelteKit web app and LiveKit media server. Optional recording uses LiveKit Egress, Redis, and S3-compatible storage.
.ics)On Linux with Docker:
docker run --rm --network host ghcr.io/convex-works/tide:0.1.2
The image is for linux/amd64 and linux/arm64. It uses the host's network because browsers send media straight to tide on UDP 7882 and TCP 7881.
To build from source instead, you need Go 1.26.10 or later and Node 24 or later. From the repository root:
npm ci --prefix web
make build
./bin/tide
Either way, with no TIDE_* environment variables set, tide runs in anonymous mode at
http://localhost:8080.
Next: open http://localhost:8080, choose New, then Create & join. Open the meeting link in a private window to join as a guest, and admit the guest from the host's People panel.
In anonymous mode, anyone who can reach the server can create a room. The browser that creates it owns it. Unused rooms expire after 24 hours; restarting tide clears every room.
Configuration selects the mode:
| Mode | Enabled by | Room storage | Processes |
|---|---|---|---|
| Anonymous | No OIDC issuer | In memory | tide |
| Signed in | TIDE_OIDC_ISSUER | SQLite | tide |
| Signed in with recording | OIDC + TIDE_S3_ENDPOINT | SQLite | tide + Egress + Redis |
Sign-in requires an OIDC provider and session and client secrets. Guests join with a display name and do not need an account. Recording also requires an S3-compatible bucket, storage credentials, and shared media and Redis secrets.
For production, serve tide behind an HTTPS proxy that forwards WebSocket upgrades. Media reaches the server directly over UDP 7882, with TCP 7881 as a fallback; there is no TURN relay on 443, so networks that allow only HTTPS out get no media. The deployment guide covers the binary, Docker Compose, Kubernetes, and all required configuration.
Restarting tide restarts its embedded media server and ends live meetings and recordings. An external media server can keep meetings running across a tide restart.
Hosts can record audio as OGG or the meeting layout as MP4. Files go to the configured S3-compatible bucket and appear in the room's recording list for download or deletion.
Recording runs on the server and continues if the host closes their tab while other participants remain. It stops when explicitly stopped or when the room empties.
Install the web dependencies as in Quickstart, then run:
make dev # the signed-in deployment with recording; needs Docker with Compose
make check # must pass before committing
Open http://localhost:5173 and sign in with [email protected] / tide-dev.
Development covers the rest, and
docs/internals explains how tide works and why.