How to host Shockvoice
From ShockvoiceWiki
This article describes everything you need to know if you want to host your own Shockvoice server. It both covers information you need for a single community server or for dozens of commercially ran servers.
Contents |
Installation
What do you need
Before you start you should ask yourself what kind of system specs you need. We've developed the server for both Windows and Linux. A Mac version is possible but not planned right now since we don't expect a need in this area. Generally we recommend using the Linux version since it is easier to maintain. The Linux version for example can be spawned multiple times (if you have a commercial license), the Windows version however is a service and can only be run once. This does not mean you can only host one server though. Shockvoice can spawn as many virtual servers as you want inside one SV process (This is actually the recommended way of hosting multiple Shockvoice servers since it requires a LOT less system resources). An ideal setup would be to host multiple actual Shockvoice processes (as a rule of thumb, one per CPU core, although SV is a multithreaded software and can use all your cores anyway) and distribute your server instances evenly. This will increase reliability, should there be any problem with one of the processes.
A recommended system would run the latest Debian Linux, have at least a 1Ghz CPU and 512 MB of RAM and an internet connection above 2MBits. This is ideal for hosting a single instance for a couple of people. For bandwidth you have to calculate with 5kb/s for a single stream, which will add up quickly. As an example: one person talking in a channel of 11 people will cause 5kb/s downstream and 50kb/s upstream for the server because it will receive one stream and send out 10.
Download
TODO
Files
Many people come to us complaining that there are windows .dll files in the archive for Linux. This may seem confusing and looks like we're not packaging everything correctly. These files are not actually Windows .dll files. They are .NET assembly files which have the same extension as Windows dynamic link libraries. Don't let it confuse you. Apart from these, the server archive contains a set of important files and scripts, which will be explained here.
Plugin files
TODO
DB scripts
TODO
32bit/64bit binaries
The Linux version contains both 32 and 64bit binaries for all .so files. This allows for the same package to be deployed no matter what system you are using. The shell script "svswitch" will determine which platform you are on and create symlinks to the correct files. In case where the determination of the platform fails (or you want to create a smaller package), you can create these symlinks manually or rename the .so files and remove the unnecessary ones.
Scripts
The Shockvoice Linux package contains several shell scripts which are explained here:
- svstart - TODO
- svstop - TODO
- svtest - TODO
- svconsole - TODO
- svswitch - TODO
SQLite database
- shockvoice.s3db - TODO
Files that will be created
- sv.lock - TODO
- stderr.log - TODO
- stderr.last.log - TODO
- /log/*.log - TODO
Use your token
Tokens are files, which authorize your Shockvoice server as a commercial version and will remove the limitations. For information how you use them read the article Tokens
Configuration
How to edit your config.xml - TODO
Database
Shockvoice requires a Database to store information about users, groups, servers, etc. For this you have the choice of either using SQLite (an embedded database, that comes bundled with SV), MySQL, PostgreSQL or MSSQL Server. We recommend using MySQL Server for 2 simple reasons:
- MySQL is the system we personally run almost all our test systems with, so it is the most stable and well tested database code within Shockvoice.
- While SQLite is almost equally well tested by us, it has the disadvantage of beeing more painful to administrate, especially if you need to upgrade your database for a new SV version.
If you choose to use anything except SQLite, you need to install the database script that comes with Shockvoice. The dbscripts subfolder contains all scripts for all database types and also update scripts. Connect to your DBMS (for example MySQL) with your favorite administration tool, create a database "shockvoice" (or anything else you like. You will need to enter the database name in the configuration later), optionally create a user/password for use with that database and execute the DB script on that database.
Setting up the first instance
What to do to set up the first instance - TODO
Starting the server
How to start and stop. What problems can occur. - TODO
Administration
How to administrate the server. - TODO
Using the client
Administration details when using the client - TODO
Using the SOAP interface
In many cases (especially if you are a professional hoster) you will not want to manage your servers by hand using the client. For this, we have created a SOAP interface. SOAP is an industry standard that allows to remotely call procedures of a software over the HTTP protocol. What this means it, you can directly call a function to create a shockvoice server in your software, this will be translated into an XML message, transferred over HTTP to shockvoice which will interpret and execute your command and then send an XML message back to you. The nice thing is that of all that HTTP and XML you will not have to do anything, a SOAP framework will do the work for you. For all major programming languages there exists such a framework so you don't have to write much code yourself. For more information what you can do using our SOAP interface, read the article SOAP Interface
Third party web interfaces
For those who do not want to develop their own management software using SOAP, there are packages available from third party vendors.
MyWebinterface
MyWebinterface is a commercial software that has full support for Shockvoice and is beeing actively developed in cooperation with us. They have optimal support for all of our features.
TCAdmin
TCAdmin support is currently in progress and planned for their version 2 release.
Supervising your server
There are 2 interfaces to use, if you want to query information from SV from outside. Theoretically you can do that using SOAP, but for typical information queries this is too heavy and also requires valid credentials. If you want to allow to publicly query the server for status information, you can do this either through the HLSW plugin or through our query interface.
Using HLSW
TODO
Using query interface
TODO
