From 6b3aa15859a4a9dcd922dfcef56e0ce44622d8cb Mon Sep 17 00:00:00 2001 From: Paul Philippov Date: Wed, 6 Jul 2022 05:37:19 -0400 Subject: [PATCH 1/3] Update help-webui.md --- en/help-webui.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/en/help-webui.md b/en/help-webui.md index a3efb8e..ee50b55 100644 --- a/en/help-webui.md +++ b/en/help-webui.md @@ -11,3 +11,39 @@ try to update Web UI once more, overriding version checking for the second updat This may be required because of some changes we have possibly made to the updating routine, thus you shall retrieve the updating routine code with the first update, and then use it for the consecutive update. + +### Web UI Development + +If you want to help us with developing of the web interface for our +firmware, here is what you need to know beforehands. Cameras are very +limited in terms of space and performance. The only available option +we have now in the firmware which is more or less suitable for dynamic +generating of HTML pages is `haserl`, a fancy cousin of `ash` bent for +serving as a CGI wrapper. Did I say `ash`? Right, because we don't have +`bash', `tcsh`, `zsh` in our Linux. Ash it is. As in A shell, full name +Almquist shell. Tiny, lightweight, and kinda limited. System is limited, +too -- in most parts it is `busybox`. So, if you still feel comfortable +tonmake your hands dirty with a very 80s style of web development then +welcome aboard. + +Recent interface is built around [Bootstrap](https://getbootstrap.com/) +CSS framework which is a little overkill for the purpouse but allowed us +to fasttrack from the original microbe web to what we have now. We would +like to slim down the original Bootstrap bundle and create a custom pack +with only the features we use. If you posses such a skill, come and work +with us. + +Also, we're considering the possibility of switching to a client-side +web interface builder, leaving only data-tossing to the server. Vue.js +or similar. Have something to add here? Spill it out. + +Any other ideas? We would like to listen them, too. + +### Running a deleloper's version of code. + +To start improving the web interface, clone its GitHub repo locally and +set up an NFS mount on your camera to the root directory of the local copy +``` +mkdir -p /tmp/dev +mount -t nfs -o nolock myserverip:/home/username/path/to/web /tmp/dev +``` From e559e2b901f11c1cb0f9ccf74a4be2169afd15d2 Mon Sep 17 00:00:00 2001 From: Paul Philippov Date: Wed, 13 Jul 2022 00:55:45 -0400 Subject: [PATCH 2/3] Update help-webui.md --- en/help-webui.md | 71 ++++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 26 deletions(-) diff --git a/en/help-webui.md b/en/help-webui.md index ee50b55..f096e64 100644 --- a/en/help-webui.md +++ b/en/help-webui.md @@ -4,46 +4,65 @@ Help: Web UI ------------ -### Updating Web UI from Web UI +### Updating Web UI from Web UI. In some cases, especially if you think that something does not work as it should, -try to update Web UI once more, overriding version checking for the second update. -This may be required because of some changes we have possibly made to the updating -routine, thus you shall retrieve the updating routine code with the first update, -and then use it for the consecutive update. + try to update Web UI once more, overriding version checking for the second update. + This may be required because of some changes we have possibly made to the updating + routine, thus you shall retrieve the updating routine code with the first update, + and then use it for the consecutive update. -### Web UI Development +### Web UI Development. If you want to help us with developing of the web interface for our -firmware, here is what you need to know beforehands. Cameras are very -limited in terms of space and performance. The only available option -we have now in the firmware which is more or less suitable for dynamic -generating of HTML pages is `haserl`, a fancy cousin of `ash` bent for -serving as a CGI wrapper. Did I say `ash`? Right, because we don't have -`bash', `tcsh`, `zsh` in our Linux. Ash it is. As in A shell, full name -Almquist shell. Tiny, lightweight, and kinda limited. System is limited, -too -- in most parts it is `busybox`. So, if you still feel comfortable -tonmake your hands dirty with a very 80s style of web development then -welcome aboard. + firmware, here is what you need to know beforehands. Cameras are very + limited in terms of space and performance. The only available option + we have now in the firmware which is more or less suitable for dynamic + generating of HTML pages is `haserl`, a fancy cousin of `ash` bent for + serving as a CGI wrapper. Did I say `ash`? Right, because we don't have + `bash', `tcsh`, `zsh` in our Linux. Ash it is. As in A shell, full name + Almquist shell. Tiny, lightweight, and kinda limited. System is limited, + too -- in most parts it is `busybox`. So, if you still feel comfortable + tonmake your hands dirty with a very 80s style of web development then + welcome aboard. Recent interface is built around [Bootstrap](https://getbootstrap.com/) -CSS framework which is a little overkill for the purpouse but allowed us -to fasttrack from the original microbe web to what we have now. We would -like to slim down the original Bootstrap bundle and create a custom pack -with only the features we use. If you posses such a skill, come and work -with us. + CSS framework which is a little overkill for the purpouse but allowed us + to fasttrack from the original microbe web to what we have now. We would + like to slim down the original Bootstrap bundle and create a custom pack + with only the features we use. If you posses such a skill, come and work + with us. Also, we're considering the possibility of switching to a client-side -web interface builder, leaving only data-tossing to the server. Vue.js -or similar. Have something to add here? Spill it out. + web interface builder, leaving only data-tossing to the server. Vue.js + or similar. Have something to add here? Spill it out. Any other ideas? We would like to listen them, too. -### Running a deleloper's version of code. +### Running a development version of Web UI. To start improving the web interface, clone its GitHub repo locally and -set up an NFS mount on your camera to the root directory of the local copy + set up an NFS mount on your camera to the root directory of the local copy: + ``` mkdir -p /tmp/dev -mount -t nfs -o nolock myserverip:/home/username/path/to/web /tmp/dev +mount -t nfs -o nolock,tcp 192.168.1.123:/full/path/to/web/files /tmp/dev ``` +_(replace 192.168.1.123 and /full/path/to/web/files with your own IP and path)_ + +Then start another instance of httpd daemon to serve your version of Web UI + on another port of the camera, say port 86: + +``` +httpd -p 86 -h "/tmp/dev/var/www" -c /dev/null +``` + +Now you can work on Web UI source code in your favorite IDE or a text editor + on your workstation, and immediately test the changes with a web browser + pointed to port 86 on the camera. _(E.g. http://192.168.1.10:86/)_ + +Remember that you substitute only web server contents, but there are also + supporting scripts residing outside web directory. These scripts might require + updating on camera in case you make changes to them, as well. To update a + script on camera, open ssh session to the camera and copy updated version of + the script from `/tmp/dev/usr/sbin/` to `/usr/sbin/`. From 774db6231f34c06178a722c59c4f2b67f3511fb8 Mon Sep 17 00:00:00 2001 From: Paul Philippov Date: Wed, 13 Jul 2022 00:57:02 -0400 Subject: [PATCH 3/3] typo --- en/help-webui.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/help-webui.md b/en/help-webui.md index f096e64..663f7d5 100644 --- a/en/help-webui.md +++ b/en/help-webui.md @@ -20,7 +20,7 @@ If you want to help us with developing of the web interface for our we have now in the firmware which is more or less suitable for dynamic generating of HTML pages is `haserl`, a fancy cousin of `ash` bent for serving as a CGI wrapper. Did I say `ash`? Right, because we don't have - `bash', `tcsh`, `zsh` in our Linux. Ash it is. As in A shell, full name + `bash`, `tcsh`, `zsh` in our Linux. Ash it is. As in A shell, full name Almquist shell. Tiny, lightweight, and kinda limited. System is limited, too -- in most parts it is `busybox`. So, if you still feel comfortable tonmake your hands dirty with a very 80s style of web development then