Published image for running a Tusile community-server in container environments. Most people want the install guide instead: its bundle runs this same image with Postgres, Caddy and LiveKit already wired up. The image is published for linux/amd64 only, so ARM hosts cannot run it.
Docker Hub image
karolrzotki/tusile-community-server
Pull image
docker pull karolrzotki/tusile-community-server:latestQuick run example
docker run -d --name tusile-community \
-p 9090:9090 \
-e DATABASE_URL="postgres://user:pass@db:5432/tusile_community?sslmode=disable" \
-e CORE_SERVER_URL="https://api.tusile.com" \
-e SERVER_TOKEN="your_server_token" \
-e COMMUNITY_PUBLIC_URL="https://community.example.com" \
-e LIVEKIT_API_KEY="your_livekit_key" \
-e LIVEKIT_API_SECRET="your_livekit_secret" \
-v tusile-community-uploads:/app/uploads \
-v tusile-community-data:/app/data \
karolrzotki/tusile-community-server:latestCompose usage pattern
Use the published image in your compose service and provide required environment variables plus persistent volumes.
services:
community-server:
image: karolrzotki/tusile-community-server:latest
platform: linux/amd64
ports:
- "9090:9090"
environment:
DATABASE_URL: postgres://user:pass@postgres:5432/tusile_community?sslmode=disable
CORE_SERVER_URL: https://api.tusile.com
SERVER_TOKEN: ${SERVER_TOKEN}
COMMUNITY_PUBLIC_URL: https://community.example.com
LIVEKIT_API_KEY: ${LIVEKIT_API_KEY}
LIVEKIT_API_SECRET: ${LIVEKIT_API_SECRET}
volumes:
- community-uploads:/app/uploads
- community-data:/app/dataKeep /app/data on a named volume. It holds the install ID and, on an Offgrid server, community_key, the signing key the server’s identity is derived from. Losing it on Offgrid invalidates every session and changes the server ID.
Update server (pull latest image)
To update a running deployment to the latest published image:
docker compose pull community-server
docker compose up -d community-serverIf you are not using compose, pull the latest tag and recreate the container with the same environment variables and volumes.
docker pull karolrzotki/tusile-community-server:latest
docker stop tusile-community
docker rm tusile-community
# recreate using your docker run command with the same env/volumesRequired runtime variables
DATABASE_URLCOMMUNITY_PUBLIC_URLLIVEKIT_API_KEYandLIVEKIT_API_SECRET(no default; make a pair withdocker run --rm livekit/livekit-server generate-keys)- Cloud:
CORE_SERVER_URLandSERVER_TOKEN - Offgrid:
OFFGRID_MODE=trueinstead of those two, which are then ignored
Optional override: set LIVEKIT_URL to return an explicit LiveKit endpoint to clients instead of deriving it from COMMUNITY_PUBLIC_URL and LIVEKIT_PORT. Set LIVEKIT_API_URL to LiveKit’s address as seen from this container (the bundle uses http://livekit:7880) for server-side voice moderation. Every other variable is in the configuration reference.