Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.vscode/
.githooks/
.github/
.idea/
.zed/
target/
38 changes: 38 additions & 0 deletions .github/workflows/publish-docker-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Publish Docker Image

on:
push:
branches:
- main

jobs:
build-docker-image:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Build Docker image
run: docker build -t exo/exo:latest .

#
# Placeholder: until docker hub account is setup and secrets are added to the repository.
#
# publish-docker-image:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v3
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: Build and push Docker image
# uses: docker/build-push-action@v5
# with:
# context: .
# push: true
# tags: |
# exo/exo:latest
15 changes: 15 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM node:latest
EXPOSE 52415
ENV CARGO_HOME=/usr/local/cargo
ENV RUSTUP_HOME=/usr/local/rustup
ENV PATH=/usr/local/cargo/bin:$PATH
WORKDIR /home/exo
COPY --from=rust:latest /usr/local/cargo /usr/local/cargo
COPY --from=rust:latest /usr/local/rustup /usr/local/rustup
COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
COPY . .
RUN rustup toolchain install nightly && uv sync
WORKDIR /home/exo/dashboard
RUN npm install && npm run build
WORKDIR /home/exo
CMD [ "uv", "run", "exo" ]
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,12 @@ exo follows the [XDG Base Directory Specification](https://specifications.freede

You can override these locations by setting the corresponding XDG environment variables.

### Run in Docker

```bash
docker run --gpus=all -v /.config/exo:/.config/exo/ -v /.local/share/exo/:/.local/share/exo/ -v /.cache/exo/:/.cache/exo/ -p 52415:52145 exo/exo:latest # or --privileged instead of --gpus=all to pass through all devices
```

### macOS App

exo ships a macOS app that runs in the background on your Mac.
Expand Down