Skip to main content

ODIN Documentation

Build real-time voice chat, game servers, and video conferencing into your applications.

Ctrl+K
Get StartedJoin Discord

Choose Your Product

Select a product to explore SDKs, guides, and API references.

ODIN Voice

Real-time voice chat for games and applications with 3D spatial audio.

SDKs
UnityUnrealWebNode.jsSwiftCore/C

Game server hosting with automatic deployment and scaling.

Get StartedCLI ReferenceAPI Docs

Browser-based video conferencing with WebRTC.


See It In Action

Explore real integration examples. Click through to see how easy it is to add ODIN to your projects.

Update Gameserver On Commit
Add Real-Time Voice Chat to Webapp
Proximity Chat in Unity
Transcribe Audio to Text
/scripts/cicd/update-server.sh
#!/bin/bash
# CI/CD script to deploy game server updates with ODIN Fleet

CONFIG_ID=16 # Your config ID from the console

# Create a new Docker image and get its ID
IMAGE_ID=$(odin fleet images create \
--name="Game Server" \
--version="$CI_VERSION_TAG" \
--type="dockerImage" \
--docker-image="my-registry/gameserver:$CI_VERSION_TAG" \
--registry-id=1 \
--format="value(id)" \
--force)

echo "Created image: $IMAGE_ID"

# Wait for image to be ready
STATUS="processing"
while [[ "$STATUS" != "ready" ]]; do
STATUS=$(odin fleet images get \
--image-id=$IMAGE_ID \
--format="value(status)")

if [[ "$STATUS" == "error" ]]; then
echo "Error: Image creation failed"
exit 1
fi
sleep 5
done

# Update config - all servers will restart with new version
odin fleet configs update \
--config-id=$CONFIG_ID \
--binary-id=$IMAGE_ID \
--force

echo "Deployed version $CI_VERSION_TAG"

Update Gameserver On Commit

Automatically update your gameserver when you push a commit to your repository using ODIN Fleet with Steamworks integration.

/scripts/cicd/update-server.sh
#!/bin/bash
# CI/CD script to deploy game server updates with ODIN Fleet

CONFIG_ID=16 # Your config ID from the console

# Create a new Docker image and get its ID
IMAGE_ID=$(odin fleet images create \
--name="Game Server" \
--version="$CI_VERSION_TAG" \
--type="dockerImage" \
--docker-image="my-registry/gameserver:$CI_VERSION_TAG" \
--registry-id=1 \
--format="value(id)" \
--force)

echo "Created image: $IMAGE_ID"

# Wait for image to be ready
STATUS="processing"
while [[ "$STATUS" != "ready" ]]; do
STATUS=$(odin fleet images get \
--image-id=$IMAGE_ID \
--format="value(status)")

if [[ "$STATUS" == "error" ]]; then
echo "Error: Image creation failed"
exit 1
fi
sleep 5
done

# Update config - all servers will restart with new version
odin fleet configs update \
--config-id=$CONFIG_ID \
--binary-id=$IMAGE_ID \
--force

echo "Deployed version $CI_VERSION_TAG"

Popular Guides

Step-by-step tutorials to help you get started quickly.

Voice
Add Voice Chat to Unity

Integrate ODIN Voice into your Unity game with 3D spatial audio support.

Fleet
Deploy a Game Server

Host your dedicated server with ODIN Fleet and automated deployment.

Rooms
Web Video Conferencing

Build browser-based video rooms with WebRTC technology.

Fundamentals
Authentication Setup

Configure access keys and token generation for your apps.

Resources:

GitHub

Discord

YouTube

Fundamentals