This repository contains an automated setup script to configure a Debian-based Linux host (like Ubuntu or Raspberry Pi OS) to securely run a self-hosted Core Cast server.
The setup.sh script is fully interactive and automates the following:
- Dependency Checks: Installs
nginx,certbot,docker,docker-compose, andcurlif they are missing. - DuckDNS Setup: Configures a
cronjob to automatically update your DuckDNS domain with your host's dynamic IP. - Docker Security: Modifies your existing
docker-compose.ymlto bind the Core Cast ports (50350, 50351, 8001, 8002) to127.0.0.1 (localhost), making them inaccessible from the public internet. - Nginx Configuration: Sets up Nginx as a reverse proxy using the provided template.
- SSL Setup: Uses Certbot (Let's Encrypt) to automatically obtain a free SSL certificate for your domain.
This process solves the "Mixed Content" browser error by serving your WebSocket (wss://) and API (https://) connections securely from the same domain.
- A Debian-based Linux host (Ubuntu, Debian, Raspberry Pi OS, etc.).
- A running Core Cast
sdr-controlcontainer managed by adocker-compose.ymlfile somewhere on the host. - A DuckDNS account with a domain and token.
- Your router/firewall must be configured to forward ports 80 and 443 to this host machine.
-
Clone this repository onto your host machine:
git clone [https://github.com/corecastsdr/corecast-server-setup.git](https://github.com/your-username/corecast-server-setup.git) cd corecast-server-setup -
Make the setup script executable:
chmod +x setup.sh
-
Run the script with
sudo:sudo ./setup.sh
-
Follow the interactive prompts. You will need to provide:
- Your DuckDNS domain (e.g.,
my-sdr.duckdns.org) - Your DuckDNS token
- Your email address (for SSL certificate registration)
- The full path to your
sdr-controldocker-compose.ymlfile.
- Your DuckDNS domain (e.g.,
The script will handle the rest. Once it's finished, your server is ready.
In your Core Cast website UI, when you register your "self-hosted" station, use your DuckDNS domain (e.g., my-sdr.duckdns.org) in the "Server IP" field. The sdr.tsx file is already coded to build the correct wss://.../audio paths from this domain.