You are here

Creating a simple "service" web page on your mesh node, any errors here?

10 posts / 0 new
Last post
wa2ise
wa2ise's picture
Creating a simple "service" web page on your mesh node, any errors here?

Wanting to place this on my node as an advertised service web page, but before I eat up the flash memory on my node, would like to know if there are any errors below, TIA.  This is for newbies not familiar with computer work.  Like hardware weenies like me... smiley

If you want to give people visiting your mesh node access to one or a few simple http web pages, and don't want to go to the trouble of building a web server out of a PC, you can write them up and store them in the /www directory in the flash memory of your node. Do be aware that you can't change these files without flash memory waste (as a deleted file still ties up the memory space used to store it). A web page announcing club meetings that has changing information would be a poor choice (unless you can write the html code to refer to information stored elsewhere, like in RAM memory). But small web pages that never change will work fine. Things like how to build yet another Jpole, hints and mods, tables of coax data, pictures of your pets, and such. As flash memory is limited, you want to keep any image files as small as practical, without sacrificing clarity of information. See if the same image file is smaller but clear enough as a gif vs a jpg file, for example.

You should set up a folder on your PC where you do the writing and editing of the html file, along with the image files you intend to use in the web page. Test the html code with your Firefox or whatever browser while it's in that folder in your PC until you have it the way you want it, without misspelled words or html codong errors and such. If you did this in the node's flash memory, each edit and save wastes flash memory, as all the old versions tie up flash memory forever until you do a hardware node reset (which wipes the node of everything setting it back to default).

Once you have it fully polished, use a program like SmarTTY to SSH into your node. SmarTTY has a feature, SCP, that allows you to upload files right into the node's flash memory. Once you are logged in, do a

cd /www

(don't forget the / else it doesn't find the www directory). Then do a ls and you should see something like this:


To upload a file to this directory you mouse up to the SCP selection on the SmarTTY window's task bar up top.

Okay, now you should be able to see the new web page by entering for example http://192.168.1.251:8080/jpole.htm into the URL spot of your browser. In this example I set the WAN of my node to 192.168.1.251 as a static address. This is also where the above SmarTTY program found it. Assuming this works, then you need to go to the setup page of your node, and select the "Port Forwarding, DHCP, and Services" page.


In the "port forwarding" section, I set "interface" to both, "type" to both, "outside port" to 8080 (which is the http port), "LAN IP" to localnode, and "LAN port" to what I used for "outside port", 8080. (if you have deep understanding of this stuff, you could make better selections here). :-) Click "Add"

Under "advertised services" for "name" type in something you want your service to be called when someone does a "mesh status" on their node, and see your node and your service. Some short descriptive title. Check the link box, and type "http" in the box immediately to the box's right. The URL should show ://yournode'sname: and another box, where you write 8080 into. Then in the last box you write the name of the html file you wrote. Then click "Add" and then click "save changes" near the top of this page.

You may have to do a reboot of the node. After that, go to "mesh status" and you should see, at the top, under "Local hosts", your advertised service. You should be able to go to it when you click this link. And other hams on the mesh network you're a part of should see and be able to click it as well.

KG6JEI
Note, that modifying a node
Note, that modifying a node will move the device into an unsupported status.

Any support request or trouble tickets are likely to require one to reset the node to factory (15 second default) before they will be reviewed.

Best thing to do is to put the resources on a device off node.
wa2ise
wa2ise's picture
Maybe using a special node

Maybe using a special node not part of a critical network but "hanging off the side" for this and DtD linking it to a node in that network would be a good method.  I've done this myself using a Linksys WRT54G version that has a big flash memory.  Yes, you have to hack the linksys to enable the DtD function, and I did this and have had no problems with it.  If issues come up, just unplug the DtD cable and see if that makes a difference. 

K5DLQ
K5DLQ's picture
I understand where you are
I understand where you are going with this, but, if that device has OLSR installed on it, it WILL be a participant in the overall routing of the network.  I think that's what Conrad is warning about.  We have seem misconfigured OLSR instances cause major issues.

Why not just take the WRT54G and load DD-WRT (and plug it into the LAN of a mesh node) to host the web server files?  That way, it's *paid for*, doesn't have a critical routing function, and keeps the mesh fully supported 100% of the time?

Just my $0.02 worth....



Another inexpensive option (and with much more power/capability) would be a RPi.
wa2ise
wa2ise's picture
It took me some trial and
It took me some trial and error to figure out how to make using the WRT54G with openWRT (and plug it into the LAN of a mesh node) to host the web server files work.  Please realize that I'm a rank novice beginner newbie with this stuff.  smiley   But I got it to work and show up as a service on the mesh.  One thing you need to specify correctly is the port number, if the web page lived inside the mesh node, it would be 8080, but if it's inside the openWRT connected to the mesh node's LAN, it should be 80.  Also, you need to fill in a DHCP Address Reservation (you should see your openWRT box under "Current DHCP Leases") so copy the MAC address, select its IP address and give it a hostname.  Then add it.  Save changes.  After that you should be able to select this new hostname under the "Advertised Services" section in the URL boxes. 
K5DLQ
K5DLQ's picture
Nice work!  You did it
Nice work!  You did it perfectly!
We can change your rank now to:  Intermediate!   ;-)


 
wa2ise
wa2ise's picture
Thanks.  I loaded many of my

Thanks.  I loaded many of my html and image files onto the openWRT WRT54G (with 4M flash) using SmarTTY SSH.  I did a df command every so often to be sure I didn't run out of flash.  I figured it prudent to leave 10% of the WRT54G's flash unused.  I haven't cleaned out the mesh node's flash of these files (yet), as I (mis)understand it, these files would just sit there doing nothing (as the links to them no longer exist), thus not impacting the operation of the mesh node. 

I also have a couple DD-WRT WRT54Gs here, but I couldn't get the files to upload into its /www directory.  And I'm not at all sure if that directory is the one where I should put the html and image files. I used SSH via SmarTTY to access the OpenWRT routers, and used its SCP feature to upload the files into its /www directory.  But the DD-WRT router would fail to accept the uploaded files.  I looked but couldn't find any setting in DD-WRT I would need to set to permit this.  Anyone know where to find and set such a setting?

wa2ise
wa2ise's picture
It looks like there's an

It looks like there's an upper limit as to how many advertised services you can list.  About 17.  Beyond that, other nodes only see the IP address of the node in question when you do a mesh status.  Which kinda defeats the point of advertising the services.  sad  I had to back off to get it not stupid again...   As a workaround, I split the services between two of my nodes, and this split also exists in the form of separate OpenWRT routers as web servers for the html and image files.  I did a hardware reset of my Bullet, and had to do the settings over again.  Of course my attempt to save things like tunnel client parameters was goofed up, but I was able to find this stuff from emails and such, and recovered.  But this cleaned out the Bullet's flash of the old web files. 

KG6JEI
Not sure of a limit off hand.
Not sure of a limit off hand.

I will say the normal method is to only advertise major items,  So instead of advertising each page (as shown earlier) one would normally just advertise an INDEX page "John Doe Site" and that shows everything else on it.
wa2ise
wa2ise's picture
Incorporating the lessons

Incorporating the lessons above, I created a web page describing how to use an OpenWRT router as an AREDN "advertised services" server.  Instead of having the web page files inside the AREDN node. 
http://www.wa2ise.com/radios/webservaredn.html

Separately, I reduced the advertised service listings on my AREDN nodes by just having links to master web pages instead of listing each and every web page.  Less cliutter. 
 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer