Initial commit: standalone Sova jam server setup
This commit is contained in:
1
.env.example
Normal file
1
.env.example
Normal file
@@ -0,0 +1 @@
|
||||
SOVA_PASSWORD=changeme
|
||||
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.env
|
||||
40
Dockerfile
Normal file
40
Dockerfile
Normal file
@@ -0,0 +1,40 @@
|
||||
# Stage 1: Build sova-server
|
||||
FROM rustlang/rust:nightly-bookworm AS builder
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
cmake \
|
||||
pkg-config \
|
||||
libclang-dev \
|
||||
libasound2-dev \
|
||||
libdbus-1-dev \
|
||||
build-essential \
|
||||
git \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN git clone --depth 1 https://github.com/sova-org/Sova.git /sova
|
||||
|
||||
WORKDIR /sova
|
||||
|
||||
# Remove the [patch] section that references a local ../doux/ path
|
||||
RUN sed -i '/^\[patch\."https:\/\/github.com\/sova-org\/doux"\]/,/^$/d' Cargo.toml
|
||||
|
||||
# Force re-resolution without the doux patch
|
||||
RUN rm -f Cargo.lock
|
||||
|
||||
RUN cargo build -p sova-server --release --no-default-features
|
||||
|
||||
# Verify the binary name
|
||||
RUN ls -la target/release/sova*
|
||||
|
||||
# Stage 2: Minimal runtime image
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libasound2 \
|
||||
libdbus-1-3 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /sova/target/release/sova_server /usr/local/bin/sova-server
|
||||
|
||||
ENTRYPOINT ["sova-server"]
|
||||
CMD ["-i", "0.0.0.0", "-p", "8080"]
|
||||
34
README.md
Normal file
34
README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# Sova Jam Server
|
||||
|
||||
A standalone Docker setup for [Sova](https://github.com/sova-org/Sova), a live coding jam server that lets multiple performers collaborate in real-time over a shared session.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Docker
|
||||
- Docker Compose
|
||||
|
||||
## Quick start
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
# Edit .env and set a strong password
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
The server will be available on port **8080**.
|
||||
|
||||
## Connecting
|
||||
|
||||
Point your Sova-compatible client to `<your-host>:8080` and enter the password you configured in `.env`.
|
||||
|
||||
## Configuration
|
||||
|
||||
| Variable | Description | Default |
|
||||
|----------|-------------|---------|
|
||||
| `SOVA_PASSWORD` | Password required to join the jam session | `changeme` |
|
||||
|
||||
The server listens on `0.0.0.0:8080` inside the container. To change the exposed port, edit the `ports` mapping in `docker-compose.yml`.
|
||||
|
||||
## Upstream
|
||||
|
||||
Sova is developed at https://github.com/sova-org/Sova
|
||||
24
docker-compose.yml
Normal file
24
docker-compose.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
services:
|
||||
sova-server:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
shm_size: 512m
|
||||
container_name: sova-server
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:8080"
|
||||
command: ["-i", "0.0.0.0", "-p", "8080", "--password", "${SOVA_PASSWORD}"]
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 256M
|
||||
cpus: '0.5'
|
||||
reservations:
|
||||
memory: 128M
|
||||
cpus: '0.1'
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
Reference in New Issue
Block a user