Simple Mode

In order to use WebZerver you first need a 802.11g WiFi network with an internet connection. Once you have downloaded WebZerver and completed the End User OpenZDK Getting Started Guide, connect your ZuneHD device to your computer and ensure your Zune software is closed and extract the download to your computer. Then run DeployKit.exe and follow the on-screen directions. Then DISCONNECT YOUR ZUNE DEVICE FROM YOUR COMPUTER. Once your Zune returns to the menu screen, find and start WebZerver under applications. You should get a pop-up with a list of nearby WiFi networks, select yours and enter your WEP/WPA key as neccesary. From there you should see the main screen. Look for "Current Location: http://your_ip:80" and enter the location it gives into your browser's URL bar. If nothing goes wrong you should now see a page like this! If you wish to customize your webpage, see the sections below entitled "Custom Webpage," "Custom MIME," and "Custom Console Background."

Complex Mode

This section assumes you have completed the Developer's OpenZDK Getting Started Guide. If you have not done so, either do so or see Simple Mode. Make sure you download the source version of WebZerver. Open Webzerver.sln and go into Constants.h. In there are several different constants that can be manipulated to control the functionality of WebZerver, especially of note is WEB_ROOT which is the absolute location of the root of your website. By default it points to the public_html that is deployed into gametitle. Commented out are the settings for the default deploy location using the Client For Debugging. If you wish to debug, change the configuration to Debug and set nativeapp as the default location as well as entering the IP for your device. The output location is defaulted to /flash2/webzerver

If you are deploying through VS in Release mode, ensure your website is in exploiter/Content and that all files are set to None In Build Action and Copy Always. Content placed inside nativeapp should have Content set to true. If you are debugging I suggest you deploy your html files seperately through the Remote File Viewer.


At this time, WebZerver only handles static content. This means it is not able to serve PHP, ASP, shtml, or any other dynamic content forms. Currently WebZerver does not have directory indices. If you wish to use this to serve your Zune's multimedia content, keep in mind that the Zune stores the files in non-friendly numbered format. WebZerver doesn't have any form of permissions and will return any files inside your web root. Be cautious as some files do contain information you might not want public such as your WiFi network's key (which is stored in plain text in your Zune's file system).

The worst limitation of WebZerver are those of current OpenZDK development, specifically the automatic timeout of any WiFi connection every 10 minutes when not run through Visual Studio debugging. This will be fixed in Version 2, however for now if you wish to have your server run for extended periods of time you must use the "Complex Mode" and run the program through Visual Studio in Release mode. If run in this way, the device can run indefinitely.

Custom Webpage

Webpages can consist of any static content you wish, such as html, javascript, and CSS. To replace the default website first prepare your replacement website, then delete the contents of data/Content/public_html with your webpage. If you wish to use a custom 404 page, replace data/404.html with your html page.

After placing your webpage in the directory, ensure you delete WebZerver from your Zune device before redeploying.

Custom MIME

To customize the MIME extensions of WebZerver, open data/Content/mime.txt in a text editor and add your entry to the bottom of the file. Make sure you carefully follow the format of extension, space, then MIME type. Each entry should have a newline between it and its neighbors. Ensure there is exactly one space and exactly one newline. If you do not follow the format, only entries before the violation will be parsed.

Custom Console Background

The background can be replaced by replacing data/Content/background.png with your desired background. The location, name, and color of the background can be customized in "Complex Mode" through Constants.h.


I cannot access Zune in my web browser

Ensure your Zune is not connected to your PC. Try restarting WebZerver to ensure it didn't time out (see Limitations). Make sure you're on the same WiFi network as your Zune device. Look at WebZerver and make sure there's no errors on its screen.

I receive an invalid MIME error on Zune device

Ensure the requested url's suffix is in MIME.txt. If not, add it to mime.txt (see Custom MIME). If it is in there, ensure that the format of mime.txt is correct; check for double spaces, double newlines, invalid characters, etc.

My friend in China says it's slow for him

The ability for someone outside your home network to receive pages from WebZerver is limited by your upload speed, which in standard broadband is very slow.

My problem isn't listed here

You have a few possible actions. You can figure it out yourself, post a thread at Zuneboards, come onto #zbdf on, or email me at where X=nurta.

This product and all content is licensed under the Do What The Fuck You Want To Public License (WTFPL).