Bugsnag Enterprise

Install, maintain, and manage your on-premise version of Bugsnag.

About Enterprise

Bugsnag Enterprise is a self-hosted, on-premise version of Bugsnag for organizations that need or want to manage their own data. It can be run in your existing PCI or HIPAA compliant environments.

Bugsnag Enterprise has most of the features of SaaS Bugsnag and regular releases ensure you are kept up to date. All notifier libraries can easily be configured to send error reports to your Bugsnag Enterprise instance.

To find out more or discuss your requirements please contact enterprise@bugsnag.com.

Before installation

To get started with your Bugsnag installation, you’ll need the following things prepared in advance:

  • If this is your first time installing Bugsnag, you’ll need to contact us to schedule a guided installation. We’ll get you set up with a license key, and walk you through the installation process.
  • A server with Docker 1.10+ and Docker compose 1.7+ installed and running. See the Linux installation guides for Docker and Docker compose for more details.
  • A data volume, typically mounted as /data, with at least 200gb of space. Ext4 or XFS filesystems are preferred.
  • SMTP credentials are required for installation. These are used to invite collaborators and receive error notification emails.
  • DNS access to configure hostnames.

Installation

Confirm Docker is running

Confirm Docker is installed correctly and running on your machine. If successful, this command should report information about your running Docker instance.

$ sudo docker info

Download the installation script

Download the bugsnag installation and management script and install it into your PATH.

$ curl -L -O https://www.bugsnag.com/enterprise-v2/bugsnag
$ chmod +x bugsnag
$ sudo mv bugsnag /usr/bin

Install Bugsnag

Downloading and installing Bugsnag can take between 15-30 minutes.

$ sudo bugsnag install

During installation you’ll be prompted to select a data directory. This should be on a large volume (at least 200gb) with an Ext4 or XFS filesystem. This is the directory that will contain your Bugsnag data, and will need to be backed up.

Configuration

Bugsnag is configured by editing /etc/bugsnag/env.sh. Changes will be applied when Bugsnag is next restarted (by running sudo bugsnag restart).

Configure SMTP

In order to send notification emails when crashes occur, Bugsnag needs to have SMTP access configured.

You’ll need to edit the SMTP settings in /etc/bugsnag/env.sh:

# The hostname of your SMTP server
SMTP_ADDRESS=smtpserver.internal.example.com

# The port of your SMTP server (default: 25)
SMTP_PORT=25

# Specify a valid HELO domain (a valid, resolvable domain name)
# See http://bit.ly/1kbCMCo for details
SMTP_DOMAIN=example.com

# Specify a sender address for Bugsnag emails
SMTP_FROM=bugsnag@example.com

# If your mail server requires authentication, set the username here
SMTP_USERNAME=your-smtp-username

# If your mail server requires authentication, set the password here
SMTP_PASSWORD=your-smtp-password

# If your mail server requires authentication, you need to specify the
# authentication type here. This can be either plain, login or cram_md5.
SMTP_AUTHENTICATION=login

# This setting is only required for SMTP servers that require TLS only (e.g. Rackspace).
SMTP_TLS=true

Configure your hostname

Bugsnag Enterprise exposes various services, which you may wish to map to user-friendly hostnames and ports. See Services, hostnames & ports for more information.

Once you have chosen where you’ll expose the Bugsnag dashboard, you’ll need to let Bugsnag Enterprise know the hostname you’ve chosen by editing the BUGSNAG_WEBSITE_HOST setting in /etc/bugsnag/env.sh:

BUGSNAG_WEBSITE_HOST=http://bugsnag.internal.example.com

If you are using two-way issue tracker integrations, you’ll need to let Bugsnag Enterprise know the webhook hostname you’ve chosen by editing the WEBHOOK_HOST setting in /etc/bugsnag/env.sh:

WEBHOOK_HOST=http://bugsnag-hooks.internal.example.com

Other configuration

By default, the admin email address is available from the login page so that new users can request an account. If you don’t want this to be displayed, add the following setting to /etc/bugsnag/env.sh:

HIDE_LOGIN_PAGE_CONTACT_EMAIL=true

First boot

Now you’ve installed and configured Bugsnag, you’ll need to start the Bugsnag apps. This may take around 5 minutes the first time:

$ sudo bugsnag start

To check Bugsnag’s status as it boots, you can run the following command:

$ sudo bugsnag status

When all services are marked as up, your Bugsnag installation is complete.

Account & project creation

Now Bugsnag is running, you should be able to access the Bugsnag dashboard, where you’ll need to create your account and first project.

Visit your Bugsnag dashboard in a web browser (available by default at x.x.x.x:49080) to set up your account and create projects for each of the applications you wish to monitor.

Endpoint configuration

Error reporting libraries

By default, Bugsnag reporting libraries will send errors to notify.bugsnag.com, so you’ll need to configure your applications to send errors to your on-premise installation, at the hostname/port you configured for the Bugsnag Event Server endpoint above.

For example, in ruby apps:

Bugsnag.configure do |config|
  config.api_key = "your-api-key"
  config.endpoint = "notify.bugsnag.internal.example.com"
end

Check the documentation for your library for details.

Uploading iOS/macOS dSYM files

If you’re developing iOS/macOS applications, you’ll need to configure Xcode to send debug symbols to your on-premise installation, at the hostname/port you configured for the Bugsnag Upload Server endpoint above.

See the dSYM Upload API for how to configure this.

Uploading ProGuard mapping files

If you’re developing Android applications which are obfuscated using ProGuard, you’ll need to configure the Bugsnag Gradle Plugin to upload ProGuard mapping files to your on-premise installation, at the hostname/port you configured above for the Bugsnag Upload Server endpoint above.

See the custom endpoints for details.