This repo contains everything needed to run a musicbrainz slave server with search and replication in docker. You will need a little over 50 gigs of free space to run this with replication.
- Current MB Branch: v-2018-01-24
- Current DB_SCHEMA_SEQUENCE: 24
- Postgres Version: 9.5
- Set the path where you want to store the downloaded data dumps in docker-compose.yml.
- If you already have data dumps in this path they can be loaded instead of downloading new dumps, see Create Database.
- Make sure you have installed docker and docker-compose then:
git clone this-repo
cd this-repo
sudo docker-compose up -d
- Set the token you got from musicbrainz (instructions for generating a token are here).
sudo docker exec musicbrainzdocker_musicbrainz_1 /set-token.sh <replication token>
Create the database, download the latest dumps and populate the database
sudo docker-compose run --rm musicbrainz /createdb.sh -fetch
Create the database, and populate the database with existing dumps
sudo docker-compose run --rm musicbrainz /createdb.sh
In order to use the search functions of the web site/API you will need to build search indexes.
sudo docker-compose run --rm indexer /home/search/index.sh
Replication is run as a cronjob, you can update the crons.conf file to change when replication will be run.
To view the replication log file you can run this command
sudo docker-compose exec musicbrainz /usr/bin/tail -f slave.log
you will need to enter the postgres password that you set in postgres.env.
sudo docker-compose run --rm musicbrainz /recreatedb.sh
or to recreate and fetch new data dumpssudo docker-compose run --rm musicbrainz /recreatedb.sh -fetch
When there is a schema change you will need to follow the directions posted by the musicbrainz team to update the schema.
- Ensure you’ve replicated up to the most recent replication packet available with the old schema. (if you’re not sure, run
sudo docker exec musicbrainzdocker_musicbrainz_1 /replication.sh
). - Switch to the new code with:
- Run bash in the container:
sudo docker exec -ti musicbrainzdocker_musicbrainz_1 bash
. - Checkout the new branch:
git fetch origin && git checkout NEW_SCHEMA_BRANCH
. - Run the upgrade script:
./upgrade.sh
. - Exit bash
exit
. - Set DB_SCHEMA_SEQUENCE to the NEW_SCHEMA_NUM in the DBDefs.pm file
sudo docker-compose stop musicbrainz
thensudo docker-compose build musicbrainz
thensudo docker-compose up -d --no-deps musicbrainz
If anything doesn't work create an issue and submit a pull request.