NGS Server Setup

From MusicBrainz Wiki
Revision as of 07:19, 20 May 2011 by (talk) (MusicBrainz NGS Virtual Server Image)

Products > MusicBrainz Server > NGS Server Setup

Next Generation MusicBrainz Server

To set up a Next Generation Schema (NGS) MusicBrainz server, you can choose to download and setup a virtual machine image of NGS or you can install the server into your own Linux instance.

MusicBrainz NGS Virtual Server Image

Running an NGS virtual machine requires some Linux knowledge, but it vastly simpler than installing NGS from scratch. To use the virtual machine instance, follow these steps:

  1. Start downloading the latest virtual machine instance. Beware: This is a large (4Gb) download!
  2. Download and install Virtual Box on your machine.
  3. Start Virtual Box and choose Import Appliance from the File menu. Select the newly unzipped file that ends in the .ova extension.
  4. Once Virtual Box has imported the appliance, select the imported virtual machine from the list of virtual machines and click on Start.
  5. Once the instance has started up, log in on the console using the username musicbrainz and password musicbrainz. This account has sudo privileges -- if you would like to set a root passwd, you can do that via sudo.
  6. Run ifconfig and look at the inet addr for eth0. This is the IP address of your virtual machine. Note this IP address.
  7. Optional: The console for Virtual Box is very slow. I find it faster to SSH into the virtual box with a good terminal program.
  8. To start the NGS server, enter these commands:
musicbrainz@clear:~$ cd musicbrainz-server/script
musicbrainz@clear:~/musicbrainz-server/script$ ./ -r

Now you can reach the MusicBrainz server by pointing your browser to port 3000 of the IP address in step 7. If your IP address from step 7 was:, then point your browser to


If you update the code base in this version of the virtual server, you may encounter an error that complains about DEVELOPMENT_SERVER not being defined, please add this line to your lib/ file:


And then start the server.

Setting up MusicBrainz NGS from source code

(First note: your mileage may vary -- this is one way, that works for some people; it's especially good if your package manager doesn't have all the perl dependencies for musicbrainz-server. However, it's possible it won't work for you at all!)

  1. Install local::lib (See for details on local::lib and one way to install it ("The bootstrapping technique"))
  2. Install app::cpanminus as you see fit (either using regular CPAN, installing to the local::lib directories, or using your package manager)
  3. Get a copy of musicbrainz-server from git: git clone git:// musicbrainz-server
  4. cp lib/ lib/
  5. Edit lib/ to set proper values for MB_SERVER_ROOT, WEB_SERVER, DEVELOPMENT_SERVER, and REPLICATION_TYPE. (DEVELOPMENT_SERVER should probably be changed to be set to 1)
  6. Make sure the proper environment variables for local::lib are set (PERL5LIB, PERL_MM_OPT, MODULEBUILDRC, and PATH)
  7. Install OSSP::uuid separately using the packages at or using your package manager (Debian/Ubuntu instructions in INSTALL)
  8. Install Test::WWW::Mechanize separately, probably from a package manager
  9. cd musicbrainz-server
  10. cpanm .
  11. As of 2011-04-27, cpanm chokes on Method::Signature 0.67 -- use cpanm and restart cpanm . if this applies to you
  12. eventually this will move past installing dependencies, at which time it'll likely fail on you. As long as all the dependencies are installed, you're set to continue.
  13. follow the instructions in INSTALL on creating the database
  14. ./script/ -r

Note that you won't have a search server after running this, meaning all your searches from the top bar will fail; you can fix this by not using that bar and instead using the Search page, and hitting the "direct search" checkbox. Or you could try to install a search server, but that's beyond the scope of this document.