Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/ShaneIsrael/fireshare/llms.txt

Use this file to discover all available pages before exploring further.

Fireshare publishes two Docker images to Docker Hub under the shaneisrael/fireshare repository. Both images run the same application code and support the same feature set, with one key difference: the standard image bundles a CUDA-enabled FFmpeg build for NVIDIA GPU transcoding, while the lite image uses the system FFmpeg package and is significantly smaller. For most users who don’t have an NVIDIA GPU or don’t need adaptive-quality transcoding, the lite image is the right choice.

Image Variants

Standard Image — shaneisrael/fireshare:latest

The standard image is built on top of nvidia/cuda:11.8.0-runtime-ubuntu22.04 and includes a custom-compiled FFmpeg 6.1 with full NVENC support (AV1, H.264, H.265), plus all CPU encoders (libx264, libx265, libvpx, libaom, SVT-AV1). Python 3.14 is compiled from source and bundled in the image. Use this image if you have an NVIDIA GPU on the Docker host and want to enable GPU-accelerated transcoding with TRANSCODE_GPU=true.

Lite Image — shaneisrael/fireshare:latest-lite

The lite image is built on top of python:3.14-slim-bookworm (Debian Bookworm) and installs FFmpeg from the system package manager. It is smaller, faster to pull, and requires no NVIDIA runtime. GPU transcoding is permanently disabled — the entrypoint-lite.sh script forces TRANSCODE_GPU=false at startup, overriding any value you set. Use this image if you do not have an NVIDIA GPU, or if you want a smaller image footprint and CPU-only transcoding is sufficient.

Comparison

FeatureStandard (latest)Lite (latest-lite)
GPU transcoding (NVIDIA NVENC)✅ Supported❌ Not available
CPU transcoding✅ Supported✅ Supported
FFmpeg buildCustom CUDA-enabled FFmpeg 6.1System FFmpeg (Debian)
Base imagenvidia/cuda:11.8.0-runtime-ubuntu22.04python:3.14-slim-bookworm
Image sizeLarger (CUDA libraries included)Smaller
NVIDIA runtime requiredFor GPU transcodingNo
Setting TRANSCODE_GPU=true has no effect in the lite image. The entrypoint script permanently overrides this variable to false before the application starts. If you need GPU transcoding, switch to shaneisrael/fireshare:latest.

Available Tags

Images are published to Docker Hub at hub.docker.com/r/shaneisrael/fireshare.
TagDescription
latestMost recent stable release of the standard (CUDA) image
latest-liteMost recent stable release of the lite (CPU-only) image
vX.Y.ZPinned version tag for the standard image (see Docker Hub for available tags)
vX.Y.Z-litePinned version tag for the lite image (see Docker Hub for available tags)
Pin to a specific version tag in production so that a docker-compose pull never silently upgrades your instance to a new version with breaking changes. Check Docker Hub for all available version tags.

Pulling the Images

# Lite image (recommended for most users)
docker pull shaneisrael/fireshare:latest-lite

# Standard image (NVIDIA GPU transcoding)
docker pull shaneisrael/fireshare:latest

Volume Mounts Reference

Both image variants use the same four volume mounts. The container entrypoint validates that /data, /videos, and /processed are mounted before starting; it exits with an error if any are missing.
MountPurpose
/dataSQLite database and internal state. All video metadata and user accounts are stored here.
/processedGenerated output: poster thumbnails, boomerang previews, and symlinks to source video files.
/videosSource video directory. Fireshare scans this path on startup and on a recurring schedule.
/imagesSource image directory. If not mounted, uploaded images will not persist across restarts.
volumes:
  - /path/to/data:/data
  - /path/to/processed:/processed
  - /path/to/videos:/videos
  - /path/to/images:/images
/images is the only optional mount. Fireshare will log a warning if it is not mounted but will continue to start normally. The other three — /data, /videos, and /processed — are required.

PUID and PGID

Both images run the application process as a dynamically created appuser whose UID and GID are set at startup from the PUID and PGID environment variables. Files written to your mounted volumes — database entries, generated posters, processed symlinks — will be owned by this user. Set PUID and PGID to match the owner of your host directories to avoid permission errors. Run the id command on your host to find the correct values:
id
# uid=1000(youruser) gid=1000(yourgroup) groups=1000(yourgroup)
Then set the matching values in your Compose file or docker run command:
environment:
  - PUID=1000
  - PGID=1000
If the PUID/PGID values do not match the owner of your host directories, Fireshare will log a warning at startup and may encounter permission errors when writing to /data or /processed. If you see Could not chown warnings in the logs, double-check that your host directories are owned by the UID and GID you specified.
If you need the container to run as a different user — for example, to match a media server’s service account — simply set PUID and PGID to that account’s UID and GID. No changes to the image are required.

Build docs developers (and LLMs) love