Difference between revisions of "BuildingOpenBSD"

From Mumble Wiki
Jump to: navigation, search
(No longer need to checkout the after-1.2.4 branch to build on OpenBSD.)
m (OpenBSD 6.7 released, updated introduction information.)
(3 intermediate revisions by the same user not shown)
Line 2: Line 2:
  
 
== Introduction ==
 
== Introduction ==
At the end of this guide, you'll have Murmur running on OpenBSD. This guide is targeted at people who already have a working knowledge of ksh (or bash), but it should be reasonably easy to follow for people with very limited Linux/Unix experience.  OpenBSD maintains pretty thorough documentation at http://www.openbsd.org/faq/index.html.  Don't let the term FAQ fool you, it's way, way more than just a FAQ.  This guide does not (yet?) contain instructions for building the Mumble client, nor does it include instructions for getting ICE (for which there is no OpenBSD port) working with Mumble on OpenBSD.
+
This article will provide information on how to get, build, and configure a basic Murmur setup on OpenBSD. This guide assumes you have installed OpenBSD already, have root or privileged access on the system, and are familiar with the basics of using ksh and OpenBSD.
  
A server that'll work nicely for a handful of people (and probably many more) can be run on a VM with OpenBSD and as little as 64MB of memory and negligible cpu usage. You'll need a slightly more memory (a whopping 256MB is fine) to actually build murmur, but after it's built the memory allocated to the VM can be dropped.
+
{{Notice| message=Instructions provided in this article are for OpenBSD 6.7 (current) and OpenBSD 6.6 (previous). Older version of OpenBSD may not work with newer versions of Mumble or might require additional setup. }}
  
== Prerequisites ==
+
== OpenBSD Documentation ==
Very few. All you need a working OpenBSD install. If you don't have one (but have somewhere to install it, like VirtualBox), see [[#Installing OpenBSD|Installing OpenBSD]].
+
* https://www.openbsd.org/faq/
 +
* https://man.openbsd.org/
  
== The Dependencies ==
+
== Dependencies ==
Murmur depends heavily on qt4 and protobuf, and uses boost for it's build system.  We'll be using git to check out the latest sources.  So, to install all the necessary dependencies (as root):
+
=== 1.3.x ===
 +
Building Murmur 1.3.x on OpenBSD will require the following packages:
 +
* qt5
 +
* protobuf
 +
* boost
 +
* git
  
pkg_add -iv git qt4 protobuf boost
 
  
One of git's dependencies is rsync, which has two flavors.  Choose the one with iconv.
+
Install the required packages using pkg_add:
  
  Ambiguous: choose dependency for git-1.8.1.2:
+
  pkg_add qt5 protobuf boost git
  a      0: rsync-3.0.9p2
 
          1: rsync-3.0.9p2-iconv
 
Your choice: 1
 
  
== Getting and Building Murmur ==
+
== Create a user for Murmur ==
We'll get the source code for murmur from git:
+
Running Murmur as root is not recommended. To avoid this create a new user for Murmur with the “adduser” program:
  
  git clone git://github.com/mumble-voip/mumble.git mumble
+
  adduser
  
We'll be configuring murmur to not build in support for DBUS or ICE.  If you need these, remove the appropriate parts of the line below and install the appropriate packages.  To just get a quick server running, though, they're not necessary.  If you're using any sort of 3rd party management tool, you'll probably want them.
+
{{Notice| message=If you have not run adduser before you will be asked to create a new adduser configuration file. }}
  
cd mumble && qmake4 CONFIG+=no-client CONFIG+=no-dbus CONFIG+=no-ice -recursive main.pro
+
Fill out the information for the new user account. As an example:
  
<code>qmake</code> should print out a message about reading murmur.pro and return us back
+
Enter username []: murmur
to the bash prompt. We're finally at where we can build murmur.
+
Enter full name []: Mumble Server
 
+
Enter shell csh ksh nologin sh [ksh]: nologin
  make release
+
Uid [1000]:
 +
Login group is murmur [murmur]:
 +
Login group is ``murmur``. Invite murmur into other groups: guest no [no]:
 +
Login class authpf bgpd daemon default pbuild staff unbound [default]: daemon
 +
Enter password []:
 +
Disable password logins for user? (y/n) [n]: y
 +
 +
Name: murmur
 +
  Password: ****
 +
Fullname: Mumble Server
 +
Uid: 1000
 +
Gid: 1000 (murmur)
 +
Groups: murmur
 +
Login Class: daemon
 +
HOME: /home/murmur
 +
Shell: /sbin/nologin
 +
Ok? (y/n) [y]:
 +
  Add another user? (y/n) [y]: n
  
== Configuring the System ==
+
== Getting Murmur ==
 +
When using the default adduser configuration OpenBSD creates a home directory for new user accounts. To keep things organized change to the home directory of the newly created “murmur” user:
  
While it's building (you can wait untill it's finished if you really want), we can set up the rest of the system. We'll be using Avahi to announce the server on the local network.  To have it start at boot, add the following lines to /etc/rc.conf.local.  You'll need to be root.
+
  cd /home/murmur
  
pkg_scripts="dbus_daemon avahi_daemon"
+
Clone the Mumble repository using git:
dbus_daemon_flags=
 
avahi_daemon_flags=
 
  
If you want murmur to start at boot, you can add it to /etc/rc.local
+
git clone https://github.com/mumble-voip/mumble mumble
  
if [ -x /usr/local/sbin/murmurd ]; then
+
Once downloaded change into the new directory “mumble”:
        echo 'Starting murmurd'; /usr/local/sbin/murmurd -ini /etc/murmur.ini
 
fi
 
  
By now, hopefully murmur is done compiling. If it's finished, we can copy it (as root) to /usr/local/sbin.  If not, just wait.  As long as it gets copied before the VM is rebooted, it'll work just fine.
+
  cd mumble
  
cp ./release/murmurd /usr/local/sbin
+
The cloned repository contains the development build of Mumble. To build for a released version of Mumble use git to checkout the preferred release version. As an example:
chmod u+x /usr/local/sbin/murmurd
 
  
If you don't want to run murmur from /usr/local/sbin, you can put it anywhere you want as long as you modify /etc/rc.local accordingly.
+
git checkout 1.3.0
  
Now that we have murmur compiled and installed along with its dependencies, the last thing to do before we configure it is test and make sure it'll run.  As the (non-root, right?) user you compiled it with, we'll start it with default everything in debug mode.
+
{{Notice| message=Run 'git tag' for a list of releases you can checkout. }}
  
./release/murmurd -v -fg
+
== Building Murmur ==
 +
=== 1.3.x ===
 +
Configure Mumble using qmake-qt5 with the following options:
  
If all has gone well, we'll get a few messages saying the server is running and it'll give us the password for the "SuperUser" (read: server admin) account.  At this point, if there's a message saying there's not enough file descriptors, you can safely ignore it. Also look for a message about Bonjour.
+
  qmake-qt5 CONFIG+=no-client CONFIG+=no-ice -recursive main.pro
  
<W>2013-02-16 19:32:47.258 Initializing settings from /home/murmur/.murmurd/murmur.ini (basepath /home/murmur/.murmurd)
+
Run make to build Murmur in a new directory called “release”:  
<W>2013-02-16 19:32:47.290 OpenSSL: OpenSSL 1.0.1c 10 May 2012
 
<W>2013-02-16 19:32:47.402 ServerDB: Opened SQLite database /home/murmur/murmur.sqlite
 
<W>2013-02-16 19:32:47.412 Generating new tables...
 
<W>2013-02-16 19:32:47.421 Murmur 1.2.4 (Compiled Feb 16 2013 15:23:22) running on X11: OpenBSD 5.3: Booting servers
 
<W>2013-02-16 19:32:47.434 1 => Password for 'SuperUser' set to 'r4nd0mC|-|4ract3rS'
 
<W>2013-02-16 19:32:47.485 1 => Server listening on [::]:64738
 
<W>2013-02-16 19:32:47.489 1 => Server listening on 0.0.0.0:64738
 
<W>2013-02-16 19:32:47.493 1 => Server: Failed to set TOS for UDP Socket
 
<W>2013-02-16 19:32:47.497 1 => Generating new server certificate.
 
<W>2013-02-16 19:32:47.669 1 => Announcing server via bonjour
 
<W>2013-02-16 19:32:47.713 1 => Not registering server as public
 
  
When you're satisfied it's working, kill it. Next up, configuring your new server.
+
  make release
  
If there's a message about file descriptors like the one below, you may have problems if you run a particularly busy server.
+
== Configure System ==
 +
Building Murmur created a new directory which contains the executable. Change into the new directory “release”:
  
  <C>2013-02-16 19:32:47.713 Current booted servers require minimum 1030 file descriptors when all slots are full, but only 1024 file descriptors are allowed for this process. Your server will crash and burn; read the FAQ for details.
+
  cd release
  
The [[FAQ#I.27m_running_many_virtual_servers_or_have_many_users_connected.2C_and_the_server_becomes_unstable|FAQ has more details]].  To increase the number of file descriptors available to daemons, run the following perl one-liner as root to update <code>/etc/login.conf</code>.
+
Copy the Murmur executable to /usr/local/bin:
  
  perl -i -pe '$_.=("\x20"x8).":openfiles-max=1030:\\\n" if /^daemon:/' login.conf
+
  cp murmurd /usr/local/sbin
  
Note the spaces are there to keep everything in <code>/etc/login.conf</code> neatly aligned.
+
Copy the “murmur.ini” configuration file into /etc/:
  
 +
cp ../scripts/murmur.ini /etc/
  
== Configuring Murmur ==
+
Create a new directory in /var/db called “murmur”:
All that's left is to configure the server.  This takes the form of a config file located at <code>/etc/murmur.ini</code>.  You'll have to create it as root and change the owner to the user to which murmur will drop its privileges.
 
  
  touch /etc/murmur.ini
+
  mkdir /var/db/murmur
chown murmur:murmur /etc/murmur.ini
 
  
Below are some lines worth adding to murmur's config file. It's pretty minimal, but will get you up and running.  Have a look at [[Murmur.ini]] for more options.
+
Change the directory’s owner and group to murmur:
 +
 +
  chown murmur:murmur /var/db/murmur
  
serverpassword=
+
== Configuring Murmur ==
 +
Edit the “murmur.ini” configuration file in /etc/:
  
You can set a password here. If you're going to publicly list your server, there must be nothing after the =
+
vi /etc/murmur.ini
  
logdays=0
+
Find and change the following lines:
 +
* database=/var/db/murmur/murmur.sqlite
 +
* logfile=/var/log/murmur.log
 +
* uname=murmur
  
You don't have to set this, but if you set it to 0, logs kept in murmur's database will never be removed.
+
Make sure these lines are not commented out with a “;” before them.  
  
registerName=I Followed a HowTo
+
{{Notice| message=It is recommended you review the configuration file and make changes as needed. Refer to [[Murmur.ini]] for full documentation. }}
registerPassword=changeme
 
registerUrl=<nowiki>http://www.openbsd.org</nowiki>
 
registerHostname=changeme
 
  
The above four lines pertain to listing your server publicly.  registerName is how your server will show up in the server list.  registerPassword is used to uniquely identify your server behind the scenes.  Please don't leave it as changeme. registerURL isn't critical. It's presented to people browsing the list of servers when they right-click on a server.  registerHostname is needed if your server is behind a firewall or other NAT device.  It must resolve to your external IP address.  You may be able to leave this unset if OpenBSD is getting a routeable IP.  Failing all that, get a dynamic hostname from no-ip.org and use that.
+
== Managing Murmur ==
  
bonjour=True
+
=== Create a daemon control script ===
 +
This script will allow you to control Murmur using rcctl. The command rcctl allows you to enable, start, stop, and reload Murmur easily.
  
Use Bonjour (Avahi) to announce your server on the local network.
+
Ready a file in /etc/rc.d/ called “murmur”:
  
  sslCA=/etc/ssl/cert.pem
+
  vi /etc/rc.d/murmur
  
OpenBSD stores it's root certificate cache in a location that murmur won't look by default.  If this is not set, registration will fail.
+
Include the following and save the file:
  
  uname=murmur
+
  #!/bin/ksh
 
+
   
Drop privileges to murmur (the user) from root.  This is done so if some day an exploit is found for murmur, the damage will be less severe.  <code>adduser murmur</code> will add a new user named murmur.
+
  daemon="/usr/local/sbin/murmurd"
 
+
  daemon_flags="-ini /etc/murmur.ini"
certrequired=True
 
 
 
Require clients to have a certificate to join the server.  This isn't strictly necessary, but it'll make administration easier.
 
 
 
logfile=/var/log/murmurd.log
 
 
 
Where murmur logs. This will need to be writable by murmur, so you'll have to create it and give murmur write permissions.
 
 
 
  database=/var/db/murmur/murmur.sqlite
 
 
 
We'll put the database in <code>/var/db/murmur</code>, this directory doesn't exist, so we'll have to create it before you start murmur.
 
 
 
Here's the config all in one (copy/pastable) block:
 
  serverpassword=
 
logdays=0
 
registerName=I Followed a HowTo
 
registerPassword=changeme
 
registerUrl=http://www.openbsd.org
 
registerHostname=changeme
 
bonjour=True
 
sslCA=/etc/ssl/cert.pem
 
uname=murmur
 
certrequired=True
 
logfile=/var/log/murmurd.log
 
 
 
== Starting Murmur ==
 
Once you've looked at the above lines in /etc/murmur.ini and made any other changes you want it's time to set the server in motion.  To test it, first manually create a log file writeable by the user that murmur will run as and then start everything (as root, of course).
 
 
 
touch /var/log/murmurd.log
 
chown murmur:murmur /var/log/murmurd.log
 
chmod 600 /var/log/murmurd.log
 
 
   
 
   
  mkdir -p /var/db/murmur
+
  . /etc/rc.d/rc.subr
chown murmur:murmur /var/db/murmur
 
chmod 700 /var/db/murmur
 
 
   
 
   
  /etc/rc.d/dbus_daemon start
+
  rc_cmd $1
/etc/rc.d/avahi_daemon start
 
pkill murmurd
 
/usr/local/sbin/murmurd -ini /etc/murmur.ini
 
 
 
Give it a few seconds, and check if it's running.
 
 
 
ps ax
 
 
 
This lists running processes.  You should see something like
 
 
 
18227 ??  S      0:42.62 /usr/local/sbin/murmurd -ini /etc/murmur.ini
 
 
 
If it's there, so far so good.  Your SuperUser password should be in /var/log/murmur.log.  Grep for it, you'll probably want it later.
 
 
 
grep "Password for \'SuperUser\'" /var/log/murmurd.log
 
 
 
The final check to perform is to see if murmur is listening like we expect it to be.
 
 
 
fstat | grep murmurd | grep internet
 
 
 
This lists open files (and sockets).  You should see murmur listening
 
 
 
murmur  murmurd    18227  13* internet6 stream tcp 0xfffffe8002ce0d20 *:64700
 
murmur  murmurd    18227  14* internet stream tcp 0xfffffe80024c8008 *:64700
 
murmur  murmurd    18227  15* internet6 dgram udp *:64700
 
murmur  murmurd    18227  16* internet dgram udp *:64700
 
 
 
If all of the above looks good, your murmur server is up and running.  You can leave it up, but unless uptime in a concern to you, it's a good idea to shut it down and restart it to make sure it'll come up like you expect in case of a power failure or some other reason your server restarts.
 
 
 
shutdown -h now
 
 
 
Check if it's running and listening for new connections after you restart the machine.
 
 
 
ps ax
 
fstat | grep murmurd | grep internet
 
 
 
If everything went well, you'll see a line similar to the one above in ps's output, and a handful of listening sockets in the output of fstat.
 
 
 
Congratulations, you're the proud owner of the Internet's newest Murmur server.
 
 
 
== Installing OpenBSD ==
 
This section contains a guide to getting OpenBSD up and running.  It's not a comprehensive install guide by any means, but it should be enough to get you started.  You'll need somewhere to install OpenBSD, and an OpenBSD install CD.  You can get the latest install CD image from any [http://www.openbsd.org/ftp.html OpenBSD Mirror].  The images are usually named something along the lines of installXY.iso.  The latest release (as of 2012-03-28 for i386 is [http://mirrors.syringanetworks.net/pub/OpenBSD/5.3/i386/install53.iso install53.iso] ([http://mirrors.syringanetworks.net/pub/OpenBSD/5.3/amd64/install53.iso install53.iso] for amd64).  This section assumes you're installing OpenBSD to a VM, but you certainly don't have to.
 
 
 
Fire up your VM and boot off the OpenBSD install image.  The install will start and give you a few choices.  Most of the time, the default options are fine.  The ones that require attenion are below:
 
 
 
(I)nstall, (U)pgrade or (S)hell? i
 
 
 
You want to install, of course.
 
 
 
System hostname? (short form, e.g. 'foo') murmur-headless
 
 
 
You should replace <code>murmur-headless</code> with whatever you want your VM's hostname to be.  <code>mumble</code>, <code>murmur</code>, <code>mys00p3r1337s3rv3r</code>, and so on work just fine.
 
 
 
Available network interfaces are: vio0 vlan0
 
Which one do you wish to configure? (or 'done') [vio0]
 
 
 
Usually the default's fine here.  The interfaces you have will depend on what network card your VM is emulating.  Your interface may be <code>em0</code>, <code>re0</code>, or something totally different.  As long as you're not configuring <code>vlan0</code>, you're good.  In this howto we'll be using vio0.
 
 
 
IPv4 address for vio0? (or 'dhcp' or 'none') [dhcp]
 
 
 
If all the people who are going to be using the server are on the same network, DHCP is fine.  If you're going to have a public-facing murmur server, you may want to specify the IP address.  If you set an IP address and want to use DHCP later or choose DHCP and want to set a static address later, it's easy to change. 
 
 
 
IPv6 address for vio0? (or 'rtsol' or 'none') [none] rtsol
 
 
 
If your network supports IPv6, specify <code>rtsol</code> to have it configure itself automagically.  Even if it doesn't, you can still say rtsol here and it won't hurt anything.
 
 
 
Password for root account? (will not echo)
 
 
 
Choose a password here.  Make it a strong one.  Keep it somewhere secure.  You'll have to type it twice.  Note that nothing will appear when you type the password.  This is normal.  Type it and hit enter.
 
 
 
Start ntpd(8) by default? [no] yes
 
 
 
VMs often have lousy clocks.  This'll help that.  You can leave it off if you have a compelling reason to.
 
 
 
Do you expect to run the X Window System? [yes] no
 
 
 
This is for people who want a GUI for something.  No point for a headless server.
 
 
 
Setup a user? (enter a lower-case loginname, or 'no') [no] murmur
 
 
 
This is the user that'll run the murmur server.  Running as root isn't such a great idea.  Give him a password when prompted.  Don't reuse root's password.
 
 
 
What timezone are you in? ('?' for a list) [EST5EDT] ?
 
 
 
If you're not in the time zone displayed (in this case <code>EST5EDT</code>), hit <code>?</code> for a list.  Choose a time zone that looks right to you.  It probably won't matter too hugely much, but your logs will look funny.
 
 
 
Location of sets? (cd disk ftp http or 'done') [cd]
 
 
 
If you got the install CD today, especially if it's one of the stable releases (like install52.iso) use that for the install.  Sets are tarballs containing installation files.  You can change this to http, it'll just add an extra few minutes to your install and some network traffic for you and the server that you pull the sets from.  cd is a better choice.  Leave the next few options as their defaults.
 
 
 
At this point (assuming you've left everything else default), a list of sets should appear on your screen, along with progress bars, and timers.  When they're all done installing:
 
 
 
Location of sets? (cd disk ftp http or 'done') [done]
 
 
 
At this point, all the work you need to do to install OpenBSD is done.  Hit enter, wait for a few messages that the installer will give you, and read the nice Congratulations message.
 
 
 
# reboot
 
  
The OpenBSD prompt is slightly less exciting than most other OS's.  Once it reboots, you can either SSH in or use your VM's console.  The IP address can usually be seen in the messages OpenBSD prints when it starts up.  Look for something like
+
Make the file executable:
  
  bound to 192.168.11.100 -- renewal in 3600 seconds.
+
  chmod +x /etc/rc.d/murmur
  
if you used DHCP.  Alternatively, you can try using the hostname you set in the installer.  An added benefit of using SSH is the ability to multitask.
+
=== Start Murmur after system boot ===
 +
Enable Murmur using rcctl:
  
You now have a fresh OpenBSD install at your disposal. Before you can get to installing mumble (specifically, its dependencies), you'll have to tell OpenBSD where to look for installable packages. Fortunately, OpenBSD makes this very easy.  The first step is becoming root.
+
  rcctl enable murmur
  
su
+
=== Start Murmur manually ===
 +
Start Murmur using rcctl:
  
Use the root password, of course. Once root, add the PKG_PATH variable to root's .profile with the address of a mirror near you.  A list of OpenBSD mirrors can be found at http://www.openbsd.org/ftp.html.  Be sure you give the right path for the packages specific to the version of OpenBSD you installed.  The following line points to packages for the OpenBSD 5.3, i386 (32-bit):
+
  rcctl start murmur
  
echo 'export PKG_PATH=<nowiki>http://mirrors.syringanetworks.net/pub/OpenBSD/5.3/packages/i386/' >> ~/.profile</nowiki>
+
== SuperUser Password ==
 +
If Murmur has sucessfully started then it will have generated a SuperUser password.
  
and amd64 (64-bit):
+
=== Print generated password ===
 +
Print the password with grep:
  
  echo 'export PKG_PATH=<nowiki>http://mirrors.syringanetworks.net/pub/OpenBSD/5.3/packages/amd64/' >> ~/.profile</nowiki>
+
  grep 'SuperUser' /var/log/murmur.log
  
Add the appropriate line to root's .profile and load the changes.
+
=== Change password ===
 +
To change the password of the SuperUser run:
  
  . ~/.profile
+
  /usr/local/sbin/murmurd -ini /etc/murmur.ini -supw <password>
  
Congratulations, you now have a working OpenBSD install!  You can start installing [[#The Dependencies|The Dependencies]].
+
{{Notice| message=The SuperUser password can be changed even if the server is already running. }}
  
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 17:13, 19 May 2020

Building Guides

This page is one of a set of Building pages/guides for the different OSes with information on building Mumble/Murmur.

BuildingLinux BuildingFreeBSD BuildingOpenBSD BuildingMacOSX BuildingWindows


Introduction

This article will provide information on how to get, build, and configure a basic Murmur setup on OpenBSD. This guide assumes you have installed OpenBSD already, have root or privileged access on the system, and are familiar with the basics of using ksh and OpenBSD.

Icons oxygen 48x48 actions view-pim-notes.png
Note:
Instructions provided in this article are for OpenBSD 6.7 (current) and OpenBSD 6.6 (previous). Older version of OpenBSD may not work with newer versions of Mumble or might require additional setup.

OpenBSD Documentation

Dependencies

1.3.x

Building Murmur 1.3.x on OpenBSD will require the following packages:

  • qt5
  • protobuf
  • boost
  • git


Install the required packages using pkg_add:

pkg_add qt5 protobuf boost git

Create a user for Murmur

Running Murmur as root is not recommended. To avoid this create a new user for Murmur with the “adduser” program:

adduser
Icons oxygen 48x48 actions view-pim-notes.png
Note:
If you have not run adduser before you will be asked to create a new adduser configuration file.

Fill out the information for the new user account. As an example:

Enter username []: murmur
Enter full name []: Mumble Server
Enter shell csh ksh nologin sh [ksh]: nologin
Uid [1000]: 
Login group is murmur [murmur]:
Login group is ``murmur``. Invite murmur into other groups: guest no [no]:
Login class authpf bgpd daemon default pbuild staff unbound [default]: daemon
Enter password []:
Disable password logins for user? (y/n) [n]: y

Name: murmur
Password: ****
Fullname: Mumble Server
Uid: 1000
Gid: 1000 (murmur)
Groups: murmur
Login Class: daemon
HOME: /home/murmur
Shell: /sbin/nologin
Ok? (y/n) [y]:
Add another user? (y/n) [y]: n

Getting Murmur

When using the default adduser configuration OpenBSD creates a home directory for new user accounts. To keep things organized change to the home directory of the newly created “murmur” user:

cd /home/murmur

Clone the Mumble repository using git:

git clone https://github.com/mumble-voip/mumble mumble

Once downloaded change into the new directory “mumble”:

cd mumble

The cloned repository contains the development build of Mumble. To build for a released version of Mumble use git to checkout the preferred release version. As an example:

git checkout 1.3.0
Icons oxygen 48x48 actions view-pim-notes.png
Note:
Run 'git tag' for a list of releases you can checkout.

Building Murmur

1.3.x

Configure Mumble using qmake-qt5 with the following options:

qmake-qt5 CONFIG+=no-client CONFIG+=no-ice -recursive main.pro

Run make to build Murmur in a new directory called “release”:

make release

Configure System

Building Murmur created a new directory which contains the executable. Change into the new directory “release”:

cd release

Copy the Murmur executable to /usr/local/bin:

cp murmurd /usr/local/sbin 

Copy the “murmur.ini” configuration file into /etc/:

cp ../scripts/murmur.ini /etc/

Create a new directory in /var/db called “murmur”:

mkdir /var/db/murmur

Change the directory’s owner and group to murmur:

chown murmur:murmur /var/db/murmur

Configuring Murmur

Edit the “murmur.ini” configuration file in /etc/:

vi /etc/murmur.ini

Find and change the following lines:

  • database=/var/db/murmur/murmur.sqlite
  • logfile=/var/log/murmur.log
  • uname=murmur

Make sure these lines are not commented out with a “;” before them.

Icons oxygen 48x48 actions view-pim-notes.png
Note:
It is recommended you review the configuration file and make changes as needed. Refer to Murmur.ini for full documentation.

Managing Murmur

Create a daemon control script

This script will allow you to control Murmur using rcctl. The command rcctl allows you to enable, start, stop, and reload Murmur easily.

Ready a file in /etc/rc.d/ called “murmur”:

vi /etc/rc.d/murmur

Include the following and save the file:

#!/bin/ksh

daemon="/usr/local/sbin/murmurd"
daemon_flags="-ini /etc/murmur.ini"

. /etc/rc.d/rc.subr

rc_cmd $1

Make the file executable:

chmod +x /etc/rc.d/murmur

Start Murmur after system boot

Enable Murmur using rcctl:

rcctl enable murmur

Start Murmur manually

Start Murmur using rcctl:

rcctl start murmur

SuperUser Password

If Murmur has sucessfully started then it will have generated a SuperUser password.

Print generated password

Print the password with grep:

grep 'SuperUser' /var/log/murmur.log

Change password

To change the password of the SuperUser run:

/usr/local/sbin/murmurd -ini /etc/murmur.ini -supw <password>
Icons oxygen 48x48 actions view-pim-notes.png
Note:
The SuperUser password can be changed even if the server is already running.