Compare commits

..

5 Commits

Author SHA1 Message Date
ruinivist 9b44356782 fix: rem localhost bind inside of container 2026-05-26 22:05:50 +00:00
ruinivist a035162a6b fix: docs to localhost bind 2026-05-26 21:56:53 +00:00
ruinivist a19073d1f0 feat: publish to tag "latest" 2026-05-26 21:36:22 +00:00
ruinivist 10abe4a31f docs: update README 2026-05-26 20:16:31 +00:00
ruinivist af6d70fe6e fix: change default bind to be localhost 2026-05-26 20:15:26 +00:00
3 changed files with 22 additions and 11 deletions
+3 -1
View File
@@ -71,7 +71,9 @@ jobs:
context: .
file: ./Dockerfile
push: true
tags: ${{ env.IMAGE_NAME }}:${{ env.VERSION }}
tags: |
${{ env.IMAGE_NAME }}:${{ env.VERSION }}
${{ env.IMAGE_NAME }}:latest
labels: |
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.revision=${{ github.sha }}
+18 -9
View File
@@ -1,7 +1,23 @@
# excali
# excali-box
Private self-hosted Excalidraw with Bun and SQLite.
This is bare wrapper around the excalidraw packages that adds autosave and disk-persistence.
No auth to keep things simple - you either run in a private network or put it behind a Caddy auth or similar solutions.
> GPT 5.5 generated
## Pull from GHCR and run
Images are published to:
`ghcr.io/ruinivist/excalidraw-box:<version>`
```bash
docker pull ghcr.io/ruinivist/excalidraw-box:latest
docker run --rm -p 127.0.0.1:3000:3000 -v "$PWD/excali-box-data:/data" ghcr.io/ruinivist/excalidraw-box:latest
```
## Run locally
```bash
@@ -22,14 +38,7 @@ bun run typecheck
```bash
docker build -t excali .
docker run --rm -p 3000:3000 -v "$PWD/excali-box-data:/data" excali
docker run --rm -p 127.0.0.1:3000:3000 -v "$PWD/excali-box-data:/data" excali
```
This will make the data persistent in the `excali-box-data` folder in the current directory, the site will be available at `localhost:3000`.
> Note that this command will bind to ALL interfaces. If you use a rev
> proxy, you may want to bind to locahost instead, you can do that by setting the `HOST` environment variable to `localhost`:
```bash
docker run --rm -p 3000:3000 -v "$PWD/excali-box-data:/data" -e HOST=localhost excali
```
+1 -1
View File
@@ -8,7 +8,7 @@ export function createServer() {
return {
port: Number(process.env.PORT ?? "3000"),
hostname: process.env.HOST ?? "0.0.0.0",
hostname: process.env.HOST ?? "localhost",
routes: {
"/": (request: Request) => {
const drawing = drawingStore.ensureInitialDrawing();