= Running webserver = Barrelfish webserver runs by fetching files over NFS share and serving them to users requesting the files. Currently it assumes that all files are in a flat directory without any subdirectories. = Modules needed = The webserver depends all the modules needed to get [[Networking|networking]] working, and on top of that it needs webserver module. Following is a webserver relevant part of the `menu.lst` {{{ # For networking module /x86_64/sbin/e1000n module /x86_64/sbin/NGD_mng cardname=e1000 module /x86_64/sbin/netd cardname=e1000 # For webserver module /x86_64/sbin/webserver e1000 10.110.4.4 /local/nfs/website/barrelfish }}} The webserver takes following commandline arguments: .* cardname: Used to find the network services (This value is currently hardcoded to be "e1000" and hence ignored) .* IP address of NFS server: Used to mount the NFS location to get the files .* Path on NFS server: Where the files to serve on webserver are stored Please refer to [[Networking|networking]] page for details about modules related to networking. = Making sure webserver works = If everything goes fine, then you should see an output where you will see the webserver successfully downloading all the files from the given path on NFS share. Once the server is done with downloading all the files, you can point your browser to the IP address of the barrelfish machine, or try and download one of the file with `wget`. If you don't see such an output, then look into the output log to see what IP address barrelfish server got from DHCP (assuming you are using dhcp setup) and try to ping that IP-address. If you don't see any IP address reported, or if you can't ping it, then there is a network setup issue. = Troubleshooting webserver = Typical problem in running webserver is problems in network setup. Following are the few problems that can happen, and [[Networking|networking]] may have hints about how to deal with them. .* Not all the modules needed for network are started. In this case the system just keeps waiting for one of the service to appear. .* Network setup does not support DHCP protocol, and hence netd will never get an IP address. In this case, you may want to setup the static IP address by passing arguments to netd (refer [[Networking|networking]]) .* The barrelfish machine is not reachable/pingable. .* NFS share IP or path is wrong, or does not have open read-only access. .* You can enable the debug flag in `WEBSERVER_DEBUG` in `barrelfish/usr/webserver/webserver_debug.h` to get more output.