An ephemeral, e2e encrypted, and RAM-only zero knowledge server chat room.
- TypeScript 35.5%
- Svelte 32.9%
- Rust 25%
- CSS 3.8%
- Shell 1.9%
- Other 0.9%
| assistant/requests | ||
| backend | ||
| docs | ||
| frontend | ||
| infra | ||
| mk | ||
| nginx | ||
| .browserstack.yml | ||
| .flake8 | ||
| .gitignore | ||
| AGENTS.md | ||
| CONVENTIONS.md | ||
| CRUSH.md | ||
| Dockerfile | ||
| FEATURES.md | ||
| ISSUES.md | ||
| PROMPTS.md | ||
| README.md | ||
| SECURITY.md | ||
| todo-chat.md | ||
| todo.md | ||
Ephemeral chat
This app will host a simple ephemeral chat interface. Nothing is stored on the server, the whole app runs in RAM. Chats are not saved.
Rust server (Dockerized)
- Build and run locally (foreground):
./run 8000 1
- Build and run mapped to a host port (daemon, then tail logs):
./run 8000 0
The Docker build uses a Rust toolchain >= 1.82 to satisfy dependencies (ICU/IDNA). A rust-toolchain.toml is included to pin local builds to 1.82 as well.
Manual local build (optional)
If you have Rust installed via rustup:
cargo build --release- Run:
./target/release/ephemeral-chat
Environment variables honored (defaults in parentheses):
- EPHEMERAL_CHAT_DOMAIN ("localhost")
- EPHEMERAL_API ("http://localhost:8000")
- EPHEMERAL_CHAT_HOST_IP ("127.0.0.1")
- JITSI_URL ("meet.jit.si")
- MAX_SINGLE_UPLOAD_MB (50)
- MAX_ATTACHMENT_BYTES_TOTAL_MB (512)
- MAX_ATTACHMENTS_PER_ROOM (256)
- ATTACH_RELAY_TTL_SECONDS (90)
- DEFAULT_MSG_TTL_MINUTES (60)
- DEFAULT_MAX_PEERS_CONNECTED (2)
- RUST_LOG ("info,tower_http=info,axum=info")