Dockerized (#99)

* Dockerized

* Update README.md
This commit is contained in:
Code Arranger 2024-10-02 08:28:58 -07:00 committed by GitHub
parent 710c59c2c9
commit 1fbbf36ba0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 93 additions and 0 deletions

View file

@ -206,6 +206,14 @@ cargo run --bin moshi-cli -r -- tui --host localhost
python -m moshi.client
```
### Docker Compose (CUDA only)
```bash
docker compose up
```
* Requires [NVIDIA Container Toolkit](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)
### WebUI
The web UI can be built from this repo via the

21
client/Dockerfile Normal file
View file

@ -0,0 +1,21 @@
FROM node:20
WORKDIR /app
COPY . /app
RUN npm install
RUN npm run build
# Install OpenSSL
RUN apt-get update && apt-get install -y openssl
# Generate self-signed SSL certificate
RUN openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /app/key.pem -out /app/cert.pem \
-subj "/C=US/ST=State/L=City/O=Organization/CN=localhost"
EXPOSE 5173
CMD ["npm", "run", "dev"]

40
docker-compose.yml Normal file
View file

@ -0,0 +1,40 @@
version: "3.8"
name: moshi
services:
moshi:
build:
context: ./moshi
expose:
- 8998/tcp
restart: unless-stopped
volumes:
- hf-cache:/root/.cache/huggingface
environment:
#- HF_REPO=kyutai/moshika-pytorch-bf16
- HF_REPO=kyutai/moshiko-pytorch-bf16
deploy:
resources:
reservations:
devices:
- driver: nvidia
capabilities: [gpu]
count: all
tunnel:
image: cloudflare/cloudflared:latest
pull_policy: always
restart: unless-stopped
expose:
- 43337/tcp
environment:
TUNNEL_URL: http://moshi:8998
TUNNEL_METRICS: 0.0.0.0:43337
command: tunnel --no-autoupdate
depends_on:
- moshi
volumes:
hf-cache:

24
moshi/Dockerfile Normal file
View file

@ -0,0 +1,24 @@
# Use an official Python runtime as a parent image
FROM python:3.10
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY . /app
# Install any needed packages specified in requirements.txt
# Assuming you have a requirements.txt file in the moshi directory
RUN pip install --no-cache-dir -r requirements.txt
# Install Moshi and gradio
RUN pip install --no-cache-dir moshi gradio
# Expose the port used by the server
EXPOSE 8998
# Set environment variable for the model (with a default value)
ENV HF_REPO=kyutai/moshiko-pytorch-bf16
# Run the server when the container launches
CMD python -m moshi.server --gradio-tunnel --hf-repo $HF_REPO