Open source Elixir game server with authentication, users, lobbies, groups, parties, friends, chat, notifications, achievements, leaderboards, server scripting and an admin portal with HTTP, WebSocket, and WebRTC support and SDK for JS and Godot.
Game + Backend = Gamend
Discord | Guides | API Docs | Elixir Docs | Starter Template
- Auth — Email/password, magic link, OAuth (Discord, Google, Apple, Facebook, Steam), JWT API tokens
- Users — Profiles, metadata, device tokens, account lifecycle
- Lobbies — Host-managed, max users, hidden/locked, passwords, real-time updates
- Groups — Public / private / hidden communities, roles, join requests, invites
- Parties — Ephemeral groups (2–10 players), invite-based, lobby integration
- Friends — Requests, accept/reject, blocking
- Chat — Lobby, group, party, and friend DMs with read cursors and unread counts
- Notifications — Typed notifications for all social events, read/unread, real-time delivery
- Achievements — Progress tracking, hidden achievements, unlock percentage (rarity), admin management
- Leaderboards — Global and per-user rankings
- Key-Value Store — Server-side key-value storage with access control hooks
- Server Scripting — Elixir hooks on server events (login, lobby created, achievement unlocked, etc.)
- Admin Portal — Built-in web dashboard for managing all resources
- JavaScript SDK
- Godot SDK
- Elixir SDK — Stub modules for IDE autocomplete in custom hooks
cp .env.example .env
./start.shVisit localhost:4000.
# Single instance
docker compose up
# Multi-instance (2 apps + nginx + PostgreSQL + Redis)
docker compose -f docker-compose.multi.yml up --scale app=2See the Deployment Tutorial and Starter Template for production deployment on fly.io (~$5/month without Postgres).
This project has a .github/copilot-instructions.md file you can use.
