I got it up and running. Here is what I put together:
Graywolf + Digirig Lite Setup Guide
To pass a Digirig Lite through to a Docker container running Graywolf (typically on Linux/Raspberry Pi), you need to map both the ALSA sound card and the correct HID device for PTT (since the Digirig Lite uses a C-Media CM108 chip which controls PTT via HID GPIO).
The main issue when passing /dev/hidraw0 is that Linux dynamically assigns hidraw numbers (hidraw0, hidraw1, etc.) based on connection order, meaning hardcoding /dev/hidraw0 often breaks or targets the wrong device after a reboot.
Phase 1: Create a permanent shortcut name for your Digirig
Every time your Pi turns on, it picks a random name for your Digirig (like hidraw0 or hidraw1). We are going to lock in a single name—/dev/digirig-hid—that never changes.
1. Get your Digirig’s ID code
Plug in your Digirig, open your Pi’s terminal screen, and run:
Bash
lsusb
Look for a line that mentions C-Media. You will see an ID code with a colon in the middle, like 0d8c:013c.
- First part (0d8c) = Vendor ID
- Second part (013c) = Product ID
(Write your numbers down if they are different!)
2. Make the rule file
Run this command in your terminal:
Bash
sudo nano /etc/udev/rules.d/99-digirig.rules
Paste this exact line into the blank editor screen:
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="013c", SYMLINK+="digirig-hid", MODE="0666"
(If your numbers from Step 1 were different, swap 0d8c and 013c with yours).
· KERNEL=="hidraw*" & SUBSYSTEM=="hidraw": Ensures this rule targets hidraw interfaces.
· ATTRS{idVendor} & ATTRS{idProduct}: Matches your specific hardware.
· SYMLINK+="digirig-hid": Tells Linux to create a static path /dev/digirig-hid.
· MODE="0666": Grants read/write permissions so Docker/non-root users can access it without permission errors.
Save and exit:
- Press Ctrl + O, then press Enter (saves file).
- Press Ctrl + X (exits back to terminal).
3. Activate your new shortcut
Run these two commands:
Bash
sudo udevadm control --reload-rules
sudo udevadm trigger
Now unplug your Digirig from the USB port, wait 3 seconds, and plug it back in.
To test if it worked, run:
Bash
ls -l /dev/digirig-hid
Example Output:
lrwxrwxrwx 1 root root 7 Jul 23 22:30 /dev/digirig-hid → hidraw0
If you see text pop up, success! Your permanent shortcut is ready.
Phase 2: Create the Docker Compose File
Now we will build the setup file that tells Docker how to run Graywolf and talk to your radio’s sound and PTT switch.
1. Open a new file editor
Run this command in your terminal:
Bash
sudo nano docker-compose.yml
2. Paste this exact configuration:
services:
graywolf:
image: ghcr.io/chrissnell/graywolf:latest
container_name: graywolf
restart: unless-stopped
privileged: true
group_add:
- audio
- plugdev
devices:
- /dev/snd:/dev/snd
- /dev/digirig-hid:/dev/digirig-hid
ports:
- "8080:8080/tcp"
volumes:
- graywolf-data:/data
command: ["-config", "/data/graywolf.db", "-http", "0.0.0.0:8080"]
volumes:
graywolf-data:
Save and exit: Press Ctrl + O, Enter, then Ctrl + X.
Phase 3: Start Graywolf
In your terminal, run this single command to start the container:
Bash
docker compose up -d
Docker will download Graywolf and start it up in the background!
Phase 4: Configure Graywolf in your web browser
- Open a browser on your phone, PC, or Pi and go to: http://:8080
- Head into Graywolf’s Settings / Configuration
That’s it! Your audio and PTT will stay connected even if you restart your Pi or unplug the Digirig.