Target Hardware: 2012 Mac mini Intel Core i7 (Debian 13 Bookworm x86_64)
Host Working Directory: /home/mw/radioscope
Host Access Port: 3030 (http://<YOUR_MAC_MINI_IP>:3030)
When using Portainer's Web editor, Portainer runs inside its own isolated container and does not have direct access to /home/mw/radioscope to build files on the fly.
Here are the two simplest ways to deploy:
-
On your Mac mini terminal (via SSH):
cd /home/mw/radioscope docker build -t radioscope-app:latest .
(This builds the Docker image named
radioscope-app:lateston your Mac mini). -
In Portainer Web UI:
- Go to Stacks -> + Add stack.
- Name:
radioscope - Select Web editor and paste the Compose configuration below (it uses
image: radioscope-app:latestdirectly without needing a build context):
version: '3.8'
services:
radioscope:
container_name: radioscope-0-60mhz
image: radioscope-app:latest
restart: unless-stopped
ports:
- "3030:3000"
environment:
- NODE_ENV=production
- PORT=3000
- GEMINI_API_KEY=${GEMINI_API_KEY:-}
healthcheck:
test: ["CMD", "wget", "-q", "-O", "-", "http://localhost:3000/api/health"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"- Click Deploy the stack. It will start instantly without any build context errors!
Alternatively, you can build and start the stack directly from your terminal in /home/mw/radioscope:
cd /home/mw/radioscope
# 1. Build and start in one command
docker compose up -d --build
# 2. Check running status
docker compose psNote: Portainer will automatically detect this container and let you monitor logs, CPU/RAM usage, and restart it from the Portainer dashboard.
Open your browser from any device on your local network:
http://<YOUR_MAC_MINI_IP>:3030
(For example: http://192.168.1.50:3030)
If you connect a physical USB receiver (RTL-SDR v4, Nooelec NESDR, HackRF, Airspy HF+) to the Mac mini:
-
Blacklist the Linux DVB TV kernel drivers so they don't block the receiver:
sudo bash -c 'echo -e "blacklist dvb_usb_rtl28xxu\nblacklist rtl2832\nblacklist rtl2830" > /etc/modprobe.d/nortl.conf' sudo update-initramfs -u -
Add device passthrough to your stack (or run
rtl_tcpserver):devices: - /dev/bus/usb:/dev/bus/usb privileged: true