University
Sign in

Lesson 3 9 min read

Install Broadcast

Install Broadcast on a fresh Ubuntu server with the one-command installer, point your domain at it, and finish the first-run setup in the dashboard.

With your server ready, you now install Broadcast. By the end of this lesson you have the dashboard running on your own domain over HTTPS, with an admin account and a first channel. The whole route takes about 30 minutes, and most of it is waiting.

Before you start

Have these three things ready:

  1. A fresh Ubuntu 24.04 or 26.04 server that you can reach as root over SSH.
  2. A domain name for the dashboard. A subdomain such as broadcast.example.com is best, so your root domain stays free for your website.
  3. Your license key, from your account dashboard. It looks like XXXXX-XXXXX-XXXXX-XXXXX-XXXXX. Keys issued before October 2026 are shorter, and they still work.

Some providers create an ubuntu user and block root logins. The installation guide shows how to switch to root, because the ubuntu user’s IDs conflict with the application’s file permissions.

Step 1: Point the domain at the server

Do this first. At your DNS provider, add an A record for your dashboard domain with the server’s IP address.

The order matters. Broadcast requests its TLS certificate for that name as soon as it starts. If the name does not resolve to the server yet, the certificate request fails. DNS changes can take up to 24 hours to spread. On Cloudflare they usually take a few minutes.

  1. 1. Add the A record Dashboard domain to server IP
  2. 2. Run the installer Asks for your domain and license key
  3. 3. Certificate Requested for that domain as Broadcast starts
  4. 4. Open the dashboard Create the admin account and first channel
Do these in order. The TLS certificate needs the A record to exist first.

Step 2: Run the installer

Log in to the server and run one command:

curl -fsSL https://sendbroadcast.net/install.sh | sudo bash

The script is public in the broadcast-script repository on GitHub, so you can read it before you run it.

Note where sudo goes. It goes before bash, not before curl. sudo curl ... | bash runs the download as root and the installer as your user, and the installer stops with the installer must run as root.

Step 3: Answer two questions

The installer asks for your primary domain name and your license key. It checks the key with the license server before it changes anything. Then it asks you to confirm, and reminds you to point your domain at the server. If you skipped step 1, do it now, before you press Enter.

The install takes 5 to 10 minutes. The installer sets up the software, provisions the SSL certificate, hardens the server and turns on automatic operating system updates. When it is done, the server restarts after one minute.

If you install with an AI agent or a script, pass the answers as environment variables and the installer asks nothing:

curl -fsSL https://sendbroadcast.net/install.sh | sudo BROADCAST_DOMAIN=broadcast.example.com BROADCAST_LICENSE=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX bash

The installer writes its log to /var/log/broadcast-install.log.

Step 4: Create your admin account and first channel

Open https:// plus your domain in a browser. The onboarding page asks for three things in order:

  1. Your name, email address and password, for the admin account.
  2. A name for your first channel, such as “Newsletter”. A channel is what other tools call a list.
  3. A confirmation of your domain. Broadcast detects it. Check that it matches the address in your browser.
Create your admin account form with first name, last name, email address and password fields
The first screen you see at your new domain.

You land on the dashboard. A card in the bottom-right corner counts the setup steps still missing before you can send. Click it to see the checklist. The next two lessons work through that list: your sending domain and your email server.

The dashboard with the Setup Required card open in the bottom-right corner, listing Sender Email, Sender Name, Email Footer and Email Server
The setup card lists what is still missing. Click it to open the checklist.

When something goes wrong

Every installer error starts with Error:. Unless the message says otherwise, the installer stopped before it changed anything, so you can fix the cause and run the same command again. Three errors are the most common:

  • Ports 80 and 443 must be free. Another web server is running. Stop it, or use a fresh server.
  • Broadcast is already installed on this server. The installer never changes an existing install. To upgrade, run ./broadcast.sh upgrade from /opt/broadcast. To finish an install that stopped part way, run sudo /opt/broadcast/broadcast.sh install.
  • The domain in step 3 is wrong. Point the correct domain at the server, then run ./broadcast.sh change_installation_domain from /opt/broadcast. It updates the configuration and requests a new certificate.

The installation guide lists every error with its fix, and Setup covers the first-run screens. The commands that broadcast.sh accepts are in the CLI reference.

Where things live

Everything Broadcast installs is under /opt/broadcast. The app settings are in /opt/broadcast/app/.env, including the domain (TLS_DOMAIN) and the license key (LICENSE_KEY). You run broadcast.sh commands from /opt/broadcast. You come back to this folder for upgrades, backups and restores in lesson 7.

What you learned

  • Point an A record at the server before the installer finishes, because Broadcast requests its TLS certificate at start.
  • One command installs Broadcast. It asks for your domain and your license key.
  • The installer never changes an existing install. Upgrades use ./broadcast.sh upgrade.
  • The first visit creates the admin account, the first channel, and confirms the domain.

Check what you learned

Answer all 3 questions correctly to complete this lesson.

1. What does the installer ask you for?
2. When must the A record for your primary domain point at the server?
3. You run the installer on a server that already has Broadcast. What happens?