Desktop browser for macOS, Windows, and Linux.
Follow @brave on Twitter for important news and announcements.
For other versions of our browser, please see:
- iPhone - brave/browser-ios
- Android - brave/browser-android
To download the latest release, see our releases page.
For a more user-friendly download page, please visit our website.
- See CONTRIBUTING.md for tips and guidelines about contributing.
- See docs/tests.md for information on testing, including how to run a subset of the tests.
- See docs/debugging.md for information on debugging.
You'll need certain packages installed before you can build and run Brave locally.
Please see the Building on Windows wiki entry
-
nodejs
>= 6.1
Install from your package manager or download from https://nodejs.org
-
node-gyp
3.3.1
sudo npm install -g node-gyp@3.3.1
apt-get install libgnome-keyring-dev build-essential
After installing the prerequisites:
-
Clone the git repository from GitHub:
# For beta testers: git clone --depth 1 https://github.com/brave/browser-laptop # For devs over HTTPS: git clone https://github.com/brave/browser-laptop # For devs over SSH: git clone git@github.com:brave/browser-laptop.git
-
Open the working directory:
cd browser-laptop
-
Install the Node (v5+) dependencies:
npm install
If this fails on Linux with an error related to abp-filter-parser-cpp
, try updating to Node 6.1 and node-gyp
3.3.1 (see discussion at brave#214)
Additional notes on troubleshooting installation issues are in the Troubleshooting page in the Wiki.
Some platforms are available as pre-configured VMs. See the readme for details.
You will also have to have two terminal tabs up to run Brave. One for Brave to watch for changes to the code, and one to run Brave.
To run a development version of the browser, run the following on the command line:
npm run watch
npm start
To run the tests:
npm run watch-test or npm run watch-all
npm test
Some errors related to brave/electron update can be fixed by doing a clean install:
rm -rf node_modules/
npm install
If this does not work, please clear out your ~/.electron first and try again.
Brave uses port 8080 to communicate between its client and server sides by default. If you are using port 8080 for something else (e.g. a web proxy) then you can set the node config to make it use a different one.
e.g. npm config set brave:port 9001
Additional notes on troubleshooting development issues are in the Troubleshooting page in the Wiki.
We are using a fork of Electron with some minor modifications. We try to upstream everything to electron/electron but forking allows us to take patches before upstreaming.
By default, we provide pre-built binaries when you npm install
with our own fork of electron-prebuilt.
If you want to modify the code to Electron itself, then you'll need to build it. An example of why you might do that would be exposing a new event to the webview from Electron.
Build instructions:
Once you're happy with the changes you've made in the electron fork, you can test the changes locally by building and then copying the output files over the node_modules/electron-prebuilt
for browser-laptop.
Assuming you have your directories in a structure such as this:
projects/
electron/
browser-laptop/
You can simply run an npm task to build and install your local electron instance:
npm run install
If your directory structure isn't side by side, you can run the following (altering the rsync as needed):
npm run build
rsync -avz --delete out/D/Brave.app {{path-to-browser-laptop}}/node_modules/electron-prebuilt/dist/
In order do run any build commands, you'll need an environment variable set for CHANNEL
(set to 'dev'
, 'beta'
, or 'stable'
).
For more information, see docs/buildingReleases.md which has a more detailed overview of our release process.
From within brave-browser you can create a .app file for distribution:
CHANNEL=dev npm run build-package
After the .app file is built you can create a dmg and update zip with:
IDENTIFIER=XYZ npm run build-installer
Where XYZ is your signing identifier.
You'll also need to set the CERT
and CERT_PASSWORD
environment variables with your authenticode signing cert and password if you want to build an installer.
To set these values, you can either set the environment on a per-session basis ($env:CHANNEL="dev"
) or update your system/user environment variables.
You must also have NSIS 3.0rc2 or later installed and makensis
's folder must be in your PATH.
To create a folder with the app .exe and all dependencies you can run:
CHANNEL=dev npm run build-package
After the above folder is created, you can create a setup (exe, msi, RELEASES file and update nupkg) with:
npm run build-installer
To create a package:
CHANNEL=dev npm run build-package
To create a dev package:
CHANNEL=dev npm run build-package