Skip to content

cliquesoft/web.de

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[PREAMBLE]

Thanks for taking interest in web.de! This project is a graphical user
interface (GUI) desktop environment. To provide the complete package,
the addition of our fxWM window manager will be necessary (patches for
additional window managers will be accepted). As the name suggests, it
is an entirely web-based interface that can use any web browser as its
rendering agent, however, we also suggest the use of our lightweight,
web-as-an-app project, web.ui.

	TODO
	- Expand to use on Microsoft Windows devices
	- Patch to work with Linux distros other than just XiniX
	- Migrate the code to cli.de to maintain a single codebase
	- Update to the latest web.libs
	- Incorporate dittodata as the backup (Device>Settings>Backup)
	- Build web-based apps to replace current Device>Settings apps
	- Remove the necessity of a root-run instace of a web server

[FOR THE IMPATIENT]

To Install:
	1. mkdir /var/www/web.de
	2. cd /path/to/web.de
	3. mv * .* /var/www/web.de

To Use:
	# Serving with our "paged" web server
	1. paged -u root -p 8181 -nos -c '**.sh' -h 127.0.0.1 -d /var/www/web.de
	2. Open a web browser to "http://127.0.0.1:8181"
	3. Login with your account credentials

Notes:
	1. The web server must NOT restrict system access or chroot

[DESIGN GOALS]

Currently this project is a self contained software, but in an effort
to expand our UI to the command line, we have started another project
named cli.de. Both of these projects will utilize the same format, so
it makes sense to combine the codebase to prevent duplication of code
and bugs. This will cause a reliance on cli.de, but only with shared
libraries, while providing the device with another (emergency) user
interface.

The current version of this software has two requirements of the web
server in order to work properly. The first is that it does not chroot
or restrict access to the entire file system. This may seem like a
security risk, but is necessary in order to perform tasks like user
authentication, loading applications, traversing the file system from
the file manager, and more. Without this access, there is very little
utility that this software could provide to the end user. To quickly
get this up and running, our "paged" web server is strongly recommended
and it outlined above.

The other requirement is one that we DO want to change. As it stands,
the initial web server has to be executed with root priviledges in
order to perform certain tasks such as user authentication. There is
simply no way around having a binary run as root in order to provide
some of the necessary functionality. That being said, it is criticial
to choose a binary that has the smallest footprint possible in order to
minimize the attack vector. While the "paged" web server is only 100KB,
we can reduce this by a further 75% by simply moving over to an inotify
setup (which is only 22KB). Something like:

inotifywait -qq -d -e close /tmp/web.de/ && /var/www/web.de/code/inotify.sh

would prevent the need for a window manager from being loaded initially,
while allowing the local instance of web.ui to be run as "nobody". After
a successful login, the window manager can be started as the user with
the web.ui continuing to run as is.

[FEATURES]

Here's a short list of features that are available by using web.de:

	- Small footprint UI (slightly over 3MB) [web.de]
	- Small footprint WM (approximately 2.6KB) [fxWM]
	- Small footprint Supervisor (20MB) [web.ui]
	- Provides local and remote GUI
	- Any device can control any other device
	- Has a remote control for media operation
	- Can be themed for other familiar interfaces (e.g. Windows)
	- Has an innovative file manager

[FUTURE DEV TIMELINE]

Since we are working with several many projects (13 on github alone),
we are going to provide an anticipated timeline of releases using
internal staff. Obviously outside contribution will advance these
forecasted dates.

2025 Oct - completion of ModuleMaker for webWorks
2025 Dec - migration of existing webWorks modules using ModuleMaker
2026 Jan - migration of Tracker into webWorks and deprecation of
           of standalone project
2026 Feb - update paged to 2018 code base from ACME
         - update pax to work with (TC) TinyCore Linux
         - apply any patches for bug fixes to existing projects
2026 Mar - update web.libs for dittodata and web.de
2026 Jul - move code from web.de into cli.de and update the former
           to use the latter via XML communication
2026     - rest of 2026 tbd