Hackathon Gunther Daemon :: Opensource Multi-User Jukebox
ISC License
HGD is a music system suitable for hackathons, internet cafes, LAN parties etc. Music is played on one set of speakers and clients queue up media from their own machines over the network. Because we use MPlayer to play media, you can send anything MPlayer understands, including video.
HGD was inspired by the LPD hack -- a music system used at OpenBSD hackathons. We plan to implement similar functionality and extend it.
To build, you will need:
And optionally:
If you checked out from git, you will also need:
On ubuntu (and debian?) you can do something like: sudo apt-get install libbsd0 libbsd-dev mplayer python2.7 python2.7-dev libtagc0 libtagc0-dev libconfig8 libconfig8-dev libsqlite3-0 libsqlite3-dev libssl-dev libssl0.9.8 build-essential
and for git checkouts, additionally: sudo apt-get install libtool automake
If you checked out from git, first run: ./autogen.sh
Configure the build: ./configure
If you don't want to pollute /usr/local, pass a --prefix=/some/path argument.
Examine the output and install anything missing. Don't forget linux packages headers and libraries separately.
Build and install:
NOTES:
HGD will happily run out of it's build directory, so the 'make install' step is optional.
On MacOS X, you may have to jump through hoops. Others have succeeded using macports for libconfig and sqlite3 dependencies. You may need to set the include path and library path to /opt/include and /opt/lib respectively (good luck).
This is how to configure a HGD server an client:
If you upgraded from a previous version of HGD, i would recommend removing your state directory and starting afresh, as the database structure does change from time to time.
If you need a custom state path (ie. not /var/hgd), you can either pass -d to all server components (make sure they are the same of course), or make a hgd.rc config file (see the FILES sections in manual pages).
First create the sqlite3 database:
% hgd-admin db-init
Now you should make user accounts:
% hgd-admin user-add
You will be asked to type a password twice. Do this for all users.
Then you can run the hgd daemons:
% /absolute/path/to/hgd-netd % /absolute/path/to/hgd-playd
Check the daemons came up properly:
% hgd-admin status
If either daemons did not come up, then examine the system's 'daemon' log (usually /avr/log/daemon) and look for errors. For debugging, you can run the daemons in the foreground -B and turn up debugging with -x (0-3).
Then you can queue tracks:
% hgdc q
Each command has a manual page for detailed usage instructions. Also, each command has a '-h' option for quick help.
If you do not want to show the video of media files, 'unset DISPLAY' before running hgd-playd.
For information on SSL (TLSv1) crypto, see the manual page for hgd-netd(1).
Please note that SSL support in HGD is only partially implemented at this time. You may use it for encrypting traffic, but not for server identity.
(Only functional changes are shown)
https://github.com/vext01/hgd/issues/milestones
Inevitable. Please report bugs on github: https://github.com/vext01/hgd/issues/
We thank the following people:
Go to #hgd on freenode. If you liked and use hgd, please buy us a beer.