Products > Server > ServerDevelopment > ServerCodebase
MusicBrainz Server Codebase
This document aims to give a brief overview how the mb_server codebase is structured. You can
browse the codebase directly using the Subversion browser.
admin
Various scripts relating to such tasks as database import and export, regular database maintenance, and so on.
ar
???
aws
???
cleanup
Ad-hoc scripts for cleaning, tidying and fixing the database.
cron
Scripts to be run via cron.
jsdeploy
???
replication
???
reports
The editing suggestion reports.
sql
SQL scripts used to create a new MusicBrainz database (and destroy it again).
updates
SQL scripts (and a few programs to run from the shell) for upgrading between specific releases. These are only necessary if you have got a database at one release and you want to upgrade it to the next release.
statistics
Used to produce the statistics page.
bin
???
cgi-bin
Perl modules (".pm" files) which implement most of the server's functionality. Also some ".pl" scripts which are the interface to the web services.
MusicBrainz
Older modules, which were not yet added to the Server directory.
Server
More Perl modules for the server. Older modules were put in "cgi-bin"; new ones go here instead.
Handlers
???
Moderation
Handlers for each of the different edit types, each in its own file. See also
/htdocs/comp/moderation.
htdocs
The web "document root". New pages should go in subdirectories; however many miscellaneous older pages are placed directly in this one.
bare
???
cdi
("cdi" stands for "CDIndex", MusicBrainz' previous incarnation). Pages relating to the adding of new releases.
comp
Many miscellaneous Mason components which are called from other pages. The web server refuses direct requests for these files. New components should be implemented as ".inc" files elsewhere, in a nice structured way if you can think of one (the web server also refuses direct requests for any ".inc" files).
ar
???
browse
???
form
???
js
???
layout
???
moderation
"Display" handlers for each of the edit types, one file per type. See also
/cgi-bin/MusicBrainz/Server/Moderation.
relationship
???
release
???
release_editor
???
search
???
user
???
css
Style sheets
dev
???
docs
Generated documentation (e.g. APIs). All other documentations should be added to the wiki and, if needed, transcluded using WikiDocs for showing on the main server.
edit
All the editing functionality (e.g. edit artist, edit release name, edit track, move disc ID etc.), grouped by entity types.
freedb
Pages relating to manually importing from FreeDB.
generated
Generated content, such as the graphs on the stats page.
google
???
images
Static images, grouped by functionality.
misc
???
MM
???
mod
Functionality (mostly voting-related) of the editing sub-system.
search
The "edits search" pages.
news
News articles and server change logs.
pressreleases
???
products
Download and information pages for the main parts of MusicBrainz: the client and the server. Logically the tagger belongs here too, but actually it's got its own section (htdocs/tagger). Superseded by the WikiDocs page Products
client
The "home" of pages relating to the MusicBrainz client "product" - downloads, documentation, help etc. Superseded by the WikiDocs page libmusicbrainz
server
The "home" of pages relating to the MusicBrainz server "product" - downloads, documentation, help etc. Superseded by the WikiDocs page Server
reports
The editing suggestion reports. The "source" of the reports is in admin/reports, the generated reports are in htdocs/reports/generated. This directory itself only contains a few shared files.
generated
Pages and data generated by the scripts at admin/reports.
scripts
Compressed Javascript edit suite, other JS utilities.
search
???
plugins
Firefox search engine plugins.
show
View information about the entities (e.g. Artists, Releases, Tracks etc.)
store
???
tagger
Things relating to the Tagger - downloads, help, FAQs, etc.
user
Things relating to MusicBrainz users - view user information, edit it, change your password and so on.
CategoryServer CategoryDevelopment







