Chromebooks do not have any built-in capability to access local content (LAN) in its native mode because there is no access to the chromeOS filesystem to mount a network shared resource. I wish there was a “browse network” feature in the ChromeOS file management tool to access shared folders on the LAN.
The two current available options to manage content are:
1- Cloud storage, Google Drive (and other providers) but 5GB would be not enough and not mentioning the upload (to gDrive) AND download (to Chromebook), that is a lot of overhead.
2- Transfer the data to a USB storage and copy it back to the chromebook. It is still faster than the previous option, but still a lot of back and forth between the shared resources and the Chromebook.
I wanted to find other ways to access directly my local content, to stream videos, to play audio files or to read training materials, .PDF file, stored locally. The option I explored and came up with, is to simply use the web protocol the ChromeOS supports natively, HTTP. The solution is to install a web service on a computer within the same network as the Chromebook. Here are few screenshots of the end result.
IIS is a “Windows Features” and needs to be installed. Go to “Control Panel” > “Programs and Features”.
1- Click on “Turn Windows features on and off”.
2- Check all the red boxes.
3- Click “OK”.
Verify IIS works
Once the install is finished, open the IIS management console by either:
a/ Right Click “Computer” > “Manage” > “Services and Applications” > “Internet Information Services”
2- Click on “Browse *:80 (http)”. You should get the screenshot below.
Let’s disable the “default web site”. Follow the steps below to complete the process.
“Default Web Site” is bound to the default HTTP, port, 80. I want to unbind it, by mapping it to another unused port number. Randomly, I picked “8999”. This will allow me to reuse the port 80 later for my web site.
Follow the steps below to complete the process.
Create a new web site
Let’s create a new web site, right click “Sites” (1), “Add Web Site” (2).
Come up with a name for the web site, I named mine “My Local Content” (1). In (2), I browsed to the parent folder on my NAS via UNC path. Local drive or other shared folders would work as well. Port is left as default, port 80, since it is available. Click “OK” to complete the step.
Enable “Directory Browsing”
In (0), the sub folders are showing as part of the web site content. By default, “Directory Browsing” is disabled for security purposes. Only explicit file names with extension define in “Default Document” are readable, such as, index.htm, index.html, Default.htm, Default.asp and iisstart.htm.
Since I want to access all the files and folders under the root content of my web site, without explicitly add them as a “Default Document”. I need to enable the feature. Click on “Default Browsing” (1). See screenshot below.
Click “Enable” to allow “Directory Browsing” as shown below.
MIME media types
MIME is a standard that, for a given file, provides information to browser about how to deal with them based on the extension. Without knowing the MIME type, the browser would just download the file instead of playing or reading the file.
You may need to add more MIME types, if you do, here is how. Click on “MIME types”.
For instance, out of the box, .mp4 are not defined in IIS. Since I have some video files in .mp4 format, I need to add it as a MIME type.
Follow the steps below to add .MP4 MIME type.
At this point, the IIS setup is complete. To access my web server from the Chromebook, I need to know the server’s IP address. The easiest way is probably via command line.
“Start” > in “Search programs and files”, type “cmd” > hit the “Enter” key.
At the DOS prompt, type ipconfig > hit the “Enter” key.
Look for the value of IPv4 Address, as shown in the screenshot below.
From the Chromebook browser, type in 192.168.110.6 and hit the “Enter” key. You should get the screenshot below.
Browse your local content and you should be able to stream, play or simply access all the files shared on the LAN. It is also possible to save files to your Chromebook local storage by right clicking on a link and “Save link as…”. If the browser does not know how to handle the file type, it will be downloaded onto the Chromebook local storage.
It probably took me 15 mins to get the whole setup going and tested. Regarding video files format, I found that instead of dealing with video MIME type, it is just easier to convert them to .MP4 with Handbrake.
If there is a need to access “My Local Content” web site from the internet, I would use a VPN connection which I have with my current router.
Without VPN access, I would have to perform two things:
1- Rebind the default port 80 to something else to make it a bit less obvious because it would be exposed to the internet. I could also pass-protect the parent folder for added security.
2- Make a port forwarding rule on the router.
This is a good and easy way to add functionality to the Chromebook. If you are running into some issues with IIS, check the troubleshooting section below.
Troubleshooting: “Could not connect to…” error
If the page failed to display and returned a “…could not connect to…” error message below.
This is most likely caused by the firewall on the IIS web service host computer. On the web server, “Start” > “Control Panel” > “Windows Firewall”.
If the Firewall windows looks like something below, then Windows Firewall is ON and is blocking
Option #1: Turn Off Windows Firewall. My preferred option, there is no reason to use a firewall on a LAN. Firewall is configured on the public interface, at the router level for instance.
Option #2: If the user would rather not turn off Windows Firewall, then a “firewall hole” is needed to allow traffic on port 80, as shown below.
From to the Chromebook, refresh the page and it should work
Troubleshooting: “500 – Internal Server error”
If the page failed to display and returned a “500 – Internal Server error” as below:
HTTP error 500 is a generic message and in itself does not provide any useful hint as the source cause.
In this setup, the likely cause is access permission to the shared or web content folder.
From the computer hosting IIS, right click on the shared folder (1) > “Share with” (2) > “Specific people…” (3). See steps below.
In the File Sharing properties, click on the drop down button (1), select “Everyone” (2), click “Add” (3) and “Share” (4).
Click “Done” on the next windows. The content should now be accessible. I don’t foresee any other potential issues since this a very basic web site setup. I hope your Chromebook enjoys it!