| File | Date | Author | Commit |
|---|---|---|---|
| src | 2026-01-18 |
|
[b0143a] Initial commit |
| .gitignore | 2026-01-18 |
|
[b0143a] Initial commit |
| LICENSE.txt | 2026-01-18 |
|
[b0143a] Initial commit |
| README.md | 2026-01-18 |
|
[15757f] Adds a warning about modifying the data in Kara... |
| build.gradle.kts | 2026-01-18 |
|
[1adc27] Prepares the use of a few JakartaEE 11 dependen... |
| gradle.properties | 2026-01-18 |
|
[b0143a] Initial commit |
| settings.gradle.kts | 2026-01-18 |
|
[b0143a] Initial commit |
This is a free and open-source karaoke software suite created in November 2024 as a very partial replacement of the online catalog provided by Kara Jukebox. It's still in very early alpha development stage, it's neither feature complete nor stable enough to be used in production.
N.B.: Despite aesthetical similarities, LibreKaraoke was written from scratch and does NOT use any source code of Kara Jukebox, both are based on completely different software stacks.
A modern up-to-date web browser is necessary to use LibreKaraoke
N.B.: Microsoft Internet Explorer and Microsoft Edge Legacy are not supported.
To build the latest source code from the Git repository, you will need a few tools, namely
Enter git clone git://git.code.sf.net/p/librekaraoke/code librekaraoke to get the source code of the project.
Enter gradle war to create the WAR file that you can further deploy in a Java web server (Jetty, Glassfish, Wildfly, etc).
N.B.: The directory created by Git is then called LibreKaraoke's home, you shouldn't modify it manually except if you want to contribute to the project. This is the installation directory, keeping it clean helps to upgrade and downgrade. LibreKaraoke's base is the location for your configurations and customizations, it's a distinct directory of your choice set with the environment variable named LIBREKARAOKE_BASE, it mimics the structure of LibreKaraoke's home. This separation allows you to adapt LibreKaraoke to your needs while benefiting of the fixes and improvements brought by the upgrades most of the time.
It can be useful for development purposes, but be aware that the behaviour of the suite can be subtly different with and without web server.
security.fileuri.strict_origin_policy to falseindex.html in src/main/webappYou can obtain the WAR file either by building it from the source code or by downloading a released binary.
You simply need to copy the WAR file into $JETTY_BASE/webapps. You can include a context XML file in WEB-INF/jetty-web.xml within the WAR if needed in order to customize the deployment.
Kara Jukebox uses a Microsoft Access database to store its data into a file named KAR.MDB, you need to convert this file into a file named KAR.MDB.json to reuse the same data in LibreKaraoke.
KAR.MDB in order to avoid accidental changes before going any furtherKAR.MDB into CSV with MDBOpenerKAR.MDB.jsonKAR.MDB.json within the WAR fileUnfortunately, the above method may fail when the file is very big (> 25 MB), the command line utility mdb-tools comes to the rescue:
mdb-ver KAR.MDB prints JET4mdb-tables KAR.MDB prints Karwhich is the name of the only database table used by Kara Jukeboxmdb-count KAR.MDB Kar prints the number of lines in the table named Karmdb-import -d ';' KAR.MDB Kar KAR.MDB.csv imports the data from the CSV file into the database tablemdb-json KAR.MDB Kar exports the data from the database table to JSON (actually newline-separated JSON)mdb-prop KAR.MDB Kar prints the properties of the database tablemdb-sql KAR.MDB allows to run SQL queries on the database, don't forget to enter the go command to send your SQL queries to the parsermdb-export -d ';' KAR.MDB Kar exports the database table to CSVAs LibreKaraoke requires a JSON array instead of newline-separated JSON objects, you'll need to add the missing commas as array element delimiters and the square brackets at the beginning and at the end of the file.
N.B.: Modifying your data both in Kara Jukebox and in LibreKaraoke is strongly disadvised because the former supports fewer alphabets than the latter and the former has a coarser data model than the latter.
This step is cumbersome for non technical users. A more user-friendly solution will be provided when the suite becomes much more mature and when it's possible to replace Kara Jukebox entirely by LibreKaraoke. However, this task is absolutely not trivial and will require years of work.
LibreKaraoke has currently an extremely limited set of features, the following list gives you an idea of this project's future
KAR.MDBPlaying music in certain situations (typically in public places) may require a license. Moreover, you may have to pay fees to collective rights management organizations (SACEM, SABAM, GEMA, etc) to use protected musical works. LibreKaraoke's contributors are NOT liable for your use of this program, it's up to you to ensure that you respect the laws.
Any PostGreSQL file system level backup given by LibreKaraoke's contributors is provided exclusively for local testing purposes, LibreKaraoke's contributors are still NOT liable for your use of this program when you use such a backup for another purpose.