Sign inSign up

vantreeseba/sendspin-image-server

By vantreeseba

•Updated 27 days ago

Image
0

3.5K

vantreeseba/sendspin-image-server repository overview

⁠Quick start
docker run -d \
  --name sendspin-image-server \
  --network host \
  -e DATA_DIR=/data \
  -v sendspin-data:/data \
  -v /path/to/your/photos:/app/images \
  ghcr.io/vantreeseba/sendspin-image-server:main

--network host is required for mDNS multicast to work. Without it the server cannot advertise itself or discover clients on the local network.

Open http://<your-docker-host>:8928 to access the UI.

⁠With a remote Docker daemon

If your Docker daemon runs on a different machine (e.g. a home server at docker.lan):

export DOCKER_HOST=tcp://docker.lan:2375

docker pull ghcr.io/vantreeseba/sendspin-image-server:main

docker rm -f sendspin-image-server

docker run -d \
  --name sendspin-image-server \
  --network host \
  -e DATA_DIR=/data \
  -v sendspin-data:/data \
  -v /path/to/photos:/app/images \
  ghcr.io/vantreeseba/sendspin-image-server:main
⁠Persistent data

Mount a volume or host directory at /data and set DATA_DIR=/data. The server writes sendspin.db there, storing all provider configurations and per-client settings across restarts.

# Named volume (recommended)
-v sendspin-data:/data -e DATA_DIR=/data

# Or a host path
-v /srv/sendspin:/data -e DATA_DIR=/data

Without DATA_DIR, the server runs without persistence — providers and assignments must be reconfigured after each restart.

⁠Mounting local images

The built-in local provider looks for images at /app/images inside the container. Mount your photo directory there:

-v /path/to/your/photos:/app/images

Supported formats: JPEG, PNG, BMP, WebP.

⁠docker-compose
services:
  sendspin-image-server:
    image: ghcr.io/vantreeseba/sendspin-image-server:main
    container_name: sendspin-image-server
    network_mode: host
    restart: unless-stopped
    volumes:
      - sendspin-data:/data
      - /path/to/your/photos:/app/images
    environment:
      DATA_DIR: /data
      SLIDESHOW_INTERVAL: "120"   # server-wide default; override per client in UI
      DITHER_ALGO: floyd-steinberg  # server-wide default; override per client in UI

volumes:
  sendspin-data:

With an Immich provider (added via UI after first start, or pre-configured):

    environment:
      DATA_DIR: /data
      SLIDESHOW_INTERVAL: "120"

Immich credentials are stored in the database after you add the provider through the UI — no environment variables needed.


⁠Configuration reference

Environment variableCLI flagDefaultDescription
SLIDESHOW_INTERVAL--interval120Seconds between image advances (server-wide default; overridable per client)
DITHER_ALGO--dither-algofloyd-steinbergDefault dither algorithm; overridable per client in the UI
DATA_DIR--data-dir(none)Path for SQLite persistence. Omit to run stateless.
—--host0.0.0.0Bind address for both servers
—--port8927WebSocket (Sendspin protocol) port
—--http-port8928HTTP / REST API / Web UI port
—--nameSendspin Image ServerServer display name (shown in mDNS and client handshake)
—--log-levelINFOOne of DEBUG, INFO, WARNING, ERROR, CRITICAL

Tag summary

Content type

Image

Digest

sha256:813b3fca2…

Size

95.9 MB

Last updated

27 days ago

docker pull vantreeseba/sendspin-image-server