Galène does NOT provide official Docker images.
| Aspect | Status |
|---|---|
| Official Docker Images | ❌ None available |
| Recommended Deployment | Source build from Go |
| Community Images | ⚠️ Unofficial, use at your own risk |
| Source Repository | github.com/jech/galene |
For production deployments, we recommend building from source. See Galène Setup for instructions.
Several community-maintained Docker images exist. These are not officially supported:
Docker Hub: hub.docker.com/r/byteonabeach/galene
# Pull the image
docker pull byteonabeach/galene:latest
# Create data directories
mkdir -p ~/galene/{groups,recordings,static}
# Create initial group configuration
cat > ~/galene/groups/test.json << 'EOF'
{
"public": true,
"description": "Test room",
"users": {
"admin": {"password": "change-me", "permissions": "op"}
}
}
EOF
# Run container
docker run -d \
--name galene \
-p 8443:8443 \
-v ~/galene/groups:/app/groups \
-v ~/galene/recordings:/app/recordings \
-v ~/galene/static:/app/static \
--restart unless-stopped \
byteonabeach/galene:latest
Docker Hub: hub.docker.com/r/deburau/galene
docker pull deburau/galene:latest
docker run -d \
--name galene \
-p 8443:8443 \
-v ~/galene/groups:/data/groups \
-v ~/galene/recordings:/data/recordings \
--restart unless-stopped \
deburau/galene:latest
Create a Dockerfile:
FROM golang:1.21-alpine AS builder
RUN apk add --no-cache git
WORKDIR /build
RUN git clone https://github.com/jech/galene.git .
RUN CGO_ENABLED=0 go build -ldflags='-s -w'
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /app
COPY --from=builder /build/galene .
COPY --from=builder /build/static ./static
EXPOSE 8443
CMD ["./galene", "-data-dir", "/data"]
Build and run:
docker build -t galene:local .
docker run -d \
--name galene \
-p 8443:8443 \
-v ~/galene/data:/data \
--restart unless-stopped \
galene:local
Create docker-compose.yml:
services:
galene:
image: byteonabeach/galene:latest
container_name: galene
restart: unless-stopped
ports:
- "8443:8443"
volumes:
- ./groups:/app/groups
- ./recordings:/app/recordings
- ./static:/app/static
environment:
- TZ=UTC
Start with:
# Create group configuration first
mkdir -p groups
cat > groups/test.json << 'EOF'
{
"public": true,
"users": {
"admin": {"password": "change-me", "permissions": "op"}
}
}
EOF
# Start container
docker compose up -d
Before starting, create at least one group file:
mkdir -p ~/galene/groups
cat > ~/galene/groups/main.json << 'EOF'
{
"public": true,
"description": "Main meeting room",
"users": {
"moderator": {"password": "secure-password", "permissions": "op"},
"presenter": {"password": "present-password", "permissions": "present"},
"viewer": {"password": "view-password", "permissions": "view"}
}
}
EOF
Open your browser to https://localhost:8443/group/main/
moderatorsecure-passwordGalène generates a self-signed certificate on first run. Browsers will show a security warning.
Use nginx or Caddy as reverse proxy:
server {
listen 443 ssl http2;
server_name galene.example.com;
ssl_certificate /etc/letsencrypt/live/galene.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/galene.example.com/privkey.pem;
location / {
proxy_pass https://127.0.0.1:8443;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
| Mount Point | Purpose |
|---|---|
/app/groups |
Group configuration files (JSON) |
/app/recordings |
Recording storage |
/app/static |
Static files (custom branding) |
/data |
Alternative data directory (some images) |
# Check container status
docker ps | grep galene
# View logs
docker logs galene
# Test connection
curl -k https://localhost:8443
Any questions?
Feel free to contact us. Find all contact information on our contact page.