Installation - cleverdevil/squishy GitHub Wiki
Installing Squishy
Squishy is designed to be run in Docker, which simplifies installation and ensures compatibility across different systems. This guide will walk you through the installation process.
System Requirements
- A Linux-based system with Docker and Docker Compose installed
- Sufficient storage space for your media and transcoded files
- For hardware acceleration: A compatible GPU with proper drivers installed
Docker Installation
-
Clone the repository:
git clone https://github.com/cleverdevil/squishy.git cd squishy
-
Modify the Docker Compose file:
# Create a copy of the example file cp docker-compose.yml.example docker-compose.yml # Edit the file with your preferred editor nano docker-compose.yml
-
Configure the Docker Compose file:
- Uncomment and edit the media path volume mounts for both Squishy and your media server (Jellyfin or Plex)
- Uncomment the appropriate GPU/hardware acceleration settings if needed
- Choose either Jellyfin or Plex (comment out the one you don't use)
-
Start the containers:
docker compose up --build
-
Access Squishy:
- Open your browser and navigate to
http://your-host:5101
- Follow the onboarding wizard to complete setup
- Open your browser and navigate to
Hardware Acceleration Setup
Squishy currently supports VA-API for hardware accelerated transcoding. Support for other acceleration methods could be added if there is a strong demand from users.
Configuring VA-API in Docker
The provided Docker setup includes VA-API configuration with these key components:
-
Required packages in the Dockerfile:
libva-dev
- Main VA-API implementationva-driver-all
- All available VA-API driversmesa-va-drivers
- Mesa VA-API driversintel-media-va-driver
- Intel Media Driver for VAAPI (iHD)i965-va-driver
- Intel i965 driver for older GPUs
-
Device mappings in docker-compose.yml:
devices: - /dev/dri/renderD128:/dev/dri/renderD128 - /dev/dri/card0:/dev/dri/card0
-
Environment variables:
environment: - LIBVA_DRIVER_NAME=iHD - LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
-
Group permissions for GPU access:
group_add: - video - "105" # Render group GID (may vary by system)
Hardware Acceleration Troubleshooting
If you're having issues with hardware acceleration:
-
Check if your GPU is accessible inside the container:
docker exec -it squishy ls -la /dev/dri
-
Verify VA-API is working:
docker exec -it squishy vainfo --display drm --device /dev/dri/renderD128
-
Check the driver being used:
- For Intel GPUs, try both
i965
andiHD
drivers by modifying theLIBVA_DRIVER_NAME
environment variable - For modern Intel GPUs (10th gen+),
iHD
is recommended - For older Intel GPUs,
i965
might work better
- For Intel GPUs, try both
-
Examine Squishy logs for hardware acceleration detection:
docker logs squishy | grep -i "hardware"
-
Adjust permissions and group IDs if necessary:
- The render device group ID might differ on your system (typically 105 or 109)
- Ensure the user in the container has access to the required groups
Advanced Configuration
For advanced hardware acceleration setup, you may need to modify the entrypoint.sh script which automatically configures hardware acceleration on container startup:
- The script detects available DRI devices
- It adjusts group permissions for proper GPU access
- It tests both iHD and i965 drivers to determine compatibility
- It configures the appropriate environment variables for your hardware
These configurations can be further customized in your environment depending on your specific hardware setup.