5 Any knowledge of how to work with mouse and icons is not required.
7 ---------------------------
8 Install all needed packages
9 ---------------------------
12 <a href="REQUIREMENTS.html"> REQUIREMENTS </a>
14 for a list of required software. You don't need everything listed there. In
15 particular, mp3, ogg vorbis and aac support are all optional. Autoconf will
16 detect what is installed on your system and will only try to build those
17 executables that can be built with your setup.
19 Note that no special library (not even the mp3 decoding library libmad)
20 is needed for para_server if you only want to stream mp3 files.
21 Also, it's fine to use para_server on a box without sound card as
22 para_server only sends the audio stream to connected clients.
24 -------------------------
25 Install server and client
26 -------------------------
28 Install the package on all machines, you'd like this software to run on:
30 (./configure && make) > /dev/null
32 There should be no errors but probably some warnings about missing
33 software packages which usually implies that not all audio formats will
34 be supported. If headers or libs are installed at unusual locations
35 you might need to tell the configure script to find them. Try
39 to see a list of options. If the paraslash package was compiled
40 successfully, execute as root,
44 -----------------------------------
45 Setup user list and create rsa keys
46 -----------------------------------
48 If you already have your rsa keys, skip this step. If you are new
49 to paraslash, you have to generate an rsa key pair for each user you
50 want to allow to connect. You need at least one user.
52 Let's assume that you'd like to run the server on host server_host
53 as user foo, and that you want to connect from client_host as user bar.
55 As foo@server_host, create ~/.paraslash/server.users by typing the
59 target=~/.paraslash/server.users
60 key=~/.paraslash/key.pub.$user
61 perms=AFS_READ,AFS_WRITE,VSS_READ,VSS_WRITE
63 echo "user $user $key $perms" >> $target
65 This gives "bar" the full privileges.
67 Change to the bar account on client_host and generate the key-pair
70 key=~/.paraslash/key.$LOGNAME
72 (umask 077 && openssl genrsa -out $key)
74 Next, extract its public part:
76 pubkey=~/.paraslash/key.pub.$LOGNAME
77 openssl rsa -in $key -pubout -out $pubkey
79 and copy the public key just created to server_host (you may
80 skip this step for a single-user setup, i.e. if foo=bar and
81 server_host=client_host):
83 scp $pubkey foo@server_host:.paraslash/
85 Finally, tell para_client to connect to server_host:
87 conf=~/.paraslash/client.conf
88 echo 'hostname server_host' > $conf
94 Before starting the server make sure you have write permissions to
95 the directory /var/paraslash.
97 sudo chown $user /var/paraslash
99 Alternatively, use the --afs_socket Option to specify a different
100 location for the afs command socket.
102 For this first try, we'll use the info loglevel to make the output
103 of para_server more verbose.
107 Now you can use para_client to connect to the server and issue
108 commands. Open a new shell (as "bar" on "client_host" in the above
114 to retrieve the list of available commands and some server info.
115 Don't proceed if this doesn't work.
123 This creates some empty tables under ~/.paraslash/afs_database.
124 You normally don't need to look at these tables, but it's good
125 to know that you can start from scratch with
127 rm -rf ~/.paraslash/afs_database
129 in case something went wrong.
131 Next, you need to fill the audio file table of that database with
132 contents so that para_server knows about your audio files. Choose an
133 absolute path to a directory containing some audio files and add them
134 to the audio file table:
136 para_client add /my/mp3/dir
138 This might take a while, so it is a good idea to start with a directory
139 containing not too many audio files. Note that the table only contains
140 data about the audio files found, not the files themselves.
142 Print a list of all audio files found with
146 ------------------------
147 Start streaming manually
148 ------------------------
153 This starts streaming and dumps some information about the current
154 audio file to stdout.
156 You should now be able to receive the stream and listen to it. If
157 you have mpg123 or xmms handy, execute on client_host
159 mpg123 http://server_host:8000/
161 xmms http://server_host:8000/
163 Paraslash comes with its own receiving and playing software, which
164 will be described next. Try the following on client_host (assuming
165 Linux/ALSA and an mp3 stream):
167 para_recv -l info -r 'http -i server_host' > file.mp3
168 # (interrupt with CTRL+C after a few seconds)
169 ls -l file.mp3 # should not be empty
170 para_filter -f mp3dec -f wav < file.mp3 > file.wav
171 ls -l file.wav # should be much bigger than file.mp3
172 para_write -w alsa < file.wav
174 If this works, proceed. Otherwise double check what is logged by
175 para_server and use the --loglevel option of para_recv, para_filter
176 and para_write to increase verbosity.
178 Next, put the pieces together:
180 para_recv -r 'http -i server_host' \
181 | para_filter -f mp3dec -f wav \
184 ---------------------
185 Configure para_audiod
186 ---------------------
188 In order to automatically start the right decoder at the right time
189 and to offer to the clients some information on the current audio
190 stream and on paraslash's internal state, you should run the local
191 audio daemon, para_audiod, on every machine in your network which is
192 supposed to play the audio stream. Try
196 for help. Usually you have to specify only server_host as the receiver
197 specifier for each supported audio format, like this:
199 para_audiod -l info -r 'mp3:http -i server_host'
201 The preferred way to use para_audiod is to run it once at system start
202 as an unprivileged user. para_audiod needs to create a "well-known"
203 socket for the clients to connect to. The default path for this
206 /var/paraslash/audiod_socket.$HOSTNAME
208 so the /var/paraslash directory should be writable for the user who
211 If you want to change the location of the socket, use the -s option
212 for para_audiod or the config file ~/.paraslash/audiod.conf to change
213 the default. Note that in this case you'll also have to specify the
214 same value for para_audioc's -s option.
216 If para_server is playing, you should be able to listen to the audio
217 stream as soon as para_audiod is started. Once it is running, try
221 That should dump some information to stdout. Other commands include
233 para_gui reads the output of "para_audioc stat" and displays that
234 information in a curses window. It also allows you to bind keys to
235 arbitrary commands. There are several flavours of key-bindings:
237 - internal: These are the built-in commands that can not be
238 changed (help, quit, loglevel, version...).
239 - external: Shutdown curses before launching the given command.
240 Useful for starting other ncurses programs from within
241 para_gui, e.g. aumix or dialog scripts. Or, use the mbox
242 output format to write a mailbox containing one mail for each
243 (admissible) file the audio file selector knows about. Then
244 start mutt from within para_gui to browse your collection!
245 - display: Launch the command and display its stdout in
246 para_gui's bottom window.
247 - para: Like display, but start "para_client <specified
248 command>" instead of "<specified command>".
250 This concludes the installation notes. Next thing you might to have a look
251 at is how to use paraslash's audio file selector. See
253 <a href="README.afs.html"> README.afs</a>