# Installation Guide

> Install Broadcast email marketing software on your Ubuntu 24.04 server in minutes: choose the one-command automatic installer, Docker image, or manual setup.

Source: https://sendbroadcast.net/installation

After following this guide, you will have a fully functioning copy of Broadcast installed and running on your server.

Quick answer

Broadcast installs on a fresh **Ubuntu 24.04 or 26.04 server** in about 30 minutes. There are three routes: the **one-command automatic installer**, which is the recommended path and also configures the software, provisions an SSL certificate, hardens the server, and enables automatic OS updates; a **Docker image**, if you want to run it inside your own container setup; and a **manual install**, for full control over each component. You need a fresh server and a primary domain name pointed at it. Additional domains can be added per broadcast channel afterwards, so one installation can serve several properties.

Our installer will automatically handle the following:

* Installing the software
* Configuring the software
* Provisioning the SSL certificate
* Securing the server
* Handling automatic operating system updates

## Prerequisites

To install Broadcast, you will need to have a fresh server installed with Ubuntu 24.04 or Ubuntu 26.04 (server edition).

You will also need to have a **primary domain name** which will be used to host the software. After installation, you can add additional domains *per broadcast channel* so that you can manage multiple properties from a single installation.

The minimum system requirements are:

* 2 GB of RAM
* 1 CPU Core
* 40 GB of disk space

However, we recommend the following system requirements if possible:

* 4 GB of RAM
* 2 CPU Cores
* 60+ GB of disk space

For hosting providers, we recommend:

* Hetzner ([Get €⁠20 credit with this signup link at Hetzner](https://hetzner.cloud/?ref=34A7qImSbxCR))
* Digital Ocean ([Get $200 credit with this signup link at Digital Ocean](https://m.do.co/c/529cb7ef4d60))
* Linode ([Get $100 credit with this signup link at Linode](https://www.linode.com/lp/refer/?r=b0c5e2272637200569d359fb4fa7bb198fd25fa2))

For the rest of the installation guide, we will assume you are using one of the above recommended providers.

If you are using a different provider, the installation will be similar if not the same. However, if you have any questions, please reach out to us from within the dashboard.

## Installation

Installation is a straightforward process. It should take about 10 minutes to complete.

There are two parts to the installation:

1. Server setup
2. Domain name set up

### Step 1: Create the server

In your VPS provider's dashboard, create a new server.

NOTE: At the present moment, DO NOT USE an INTEL-based server (ie. a server with an Intel CPU). At the present moment, we have observed a problem where the Docker images used for the application does not run properly even though it is cross compiled to do so. A fix will be going out on October 21, 2024 and will be generally available October 22, 2024.

Choose Ubuntu 24.04 or Ubuntu 26.04 (server edition) as the operating system.

Make sure you can login as `root` or `ubuntu` user. At most providers, you will need to specify a local public SSH key during the creation of your VPS.

If you do not have a local public SSH key, [click here for instructions on generating one](https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent).

If you are new to SSH keys, keep your keys in a safe place. Without your keys, you will no longer be able to access your server if anything goes wrong.

To login to your system, type the following in your local terminal:

```bash
ssh root@your-server-ip
```

Replace `your-server-ip` with the IP address of your server.

On some Ubuntu systems, you will need to login as `ubuntu` user instead of `root`. Please see the next step for instructions on how to remove the `ubuntu` user and switch to the `root` user.

### Step 1b: Removing the `ubuntu` user

You can skip this section if you are using a server that does not have the `ubuntu` user.

If the default installation creates a `ubuntu` user in preference of the `root` user, we will need to remove the `ubuntu` user and switch to the `root` user.

The `ubuntu` user is not required, and its uid/gid number conflicts with that of the user permissions of the running application.

To remove the `ubuntu` user, you first need to login as the `ubuntu` user:

```bash
ssh ubuntu@your-server-ip
```

Once logged in, you need to type the following command to allow your `root` user to be able to login:

```bash
sudo su
nano /root/.ssh/authorized_keys
```

Within this file, you will see the following line:

```
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ubuntu\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCs+Q5+...
```

Remove everything **before** the `ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCs+Q5+...` so you can log back in as the `root` user.

Save the file and exit.

Keep your terminal open just in case you made an error in saving the file and lock yourself out of your server.

In a different terminal, try logging in as the `root` user:

```bash
ssh root@your-server-ip
```

If it works, you can proceed to the next step and close your previous terminal.

### Step 2: Install the software

After you are logged into your server, run the installer:

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

The installer is a script in our [broadcast-script](https://github.com/send-broadcast/broadcast-script/blob/main/install.sh) repository. Read it before you run it if you like.

The installer never changes an existing installation. If Broadcast is already installed on the server, it stops and changes nothing. To update an existing server, use `./broadcast.sh upgrade` from `/opt/broadcast` instead.

### Step 3: Answer the installer's questions

The installer asks for two things:

1. Your primary domain name
2. Your license key

The license key can be found in your account dashboard and it is in the format XXXXX-XXXXX-XXXXX-XX. It contains lower case letters and numbers, and dashes.

The installer checks the key with our license server before it changes anything on the server. Then it asks you to confirm, and reminds you to point your domain to the server (step 4). Do that before you press Enter.

The installation takes about 5-10 minutes, depending on your server's performance and internet connection speed. When it is done, the server restarts after one minute.

#### Install with an AI agent, or without prompts

Give the answers as environment variables and the installer asks nothing. This is how Claude Code or another agent can install Broadcast over SSH:

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

To skip the restart at the end, set `BROADCAST_NO_REBOOT=1` as well. The installer writes a log to `/var/log/broadcast-install.log`.

### Step 4: Configure your domain name

Before the installer continues, configure your domain name to point to the IP address of your server. Broadcast requests its TLS certificate for that name as soon as it starts.

You will need to add an A record to your domain name to point to the IP address of your server.

In general, we recommend that you use a subdomain as the primary domain name for your installation.

For example, let's say you own the domain name `example.com`, you can use `broadcast.example.com` as the primary domain name for the installation. This way, you can leave the "root" domain name of `example.com` for your website.

Once you add the A record, it may take up to 24 hours for the DNS records to propagate through the internet. If you are using Cloudflare, it will only take a few minutes.

### Step 5: Verify the installation

Once the installation is complete, you can access your dashboard at `https://[your primary domain]`.

When you access your dashboard for the first time, you will be prompte to create an admin user account and your first "broadcast channel".

You can think of a broadcast channel as a "list" you want to maintain. Within a channel, you can transmit broadcasts (email blasts), create automation sequences, manage subscribers, and send transactional emails.

You will need to configure an SMTP server to transmit emails from Broadcast. You will need at least one SMTP server. However, Broadcast supports (and recommends) using multiple SMTP servers to improve deliverability of the type of emails you are sending. Please refer to our documentation guide for more information about this feature.

## Conclusion

You have now successfully installed Broadcast on your server.

If you have any questions, please reach out to us from within the dashboard and we will be happy to help.

---

## Related Resources

[Where to Host Compare hosting providers for running Broadcast](https://sendbroadcast.net/hosting) [Email Providers Choose the right email service provider for sending](https://sendbroadcast.net/email-providers) [Why Self-Host? Learn the benefits of self-hosting your email marketing](https://sendbroadcast.net/self-host) [Documentation Browse the full Broadcast documentation](https://sendbroadcast.net/docs) [Money-Back Guarantee Try Broadcast risk-free with our 30-day guarantee](https://sendbroadcast.net/guarantee)
