What could be your dreamed lamp module for NS8

It is an open bar thinktank, if you could have a LAMP module solution for NS8 what it could be for a sysadmin

put your developer hat down and put up your sysadmin hat

1 Like

I am. Abit lost with this question.
, could you kindly be more elaborate on this.
Are you asking about a LAMP stack module for sys admin?

Or is it a general LAMP Stack module

what a LAMP module could do to ease the life of a sysadmin

1 Like

Make fresh sysadmin coffee!

:slight_smile:

It can also be the strong stuff some coders prefer!

3 Likes

Something between ns8-webserver (too much features, difficult to maintain and update) and ns8-kickstart (too generic, for coders only).

A ns8-lamp instance should be good for web hosting of a single PHP website, a tool for sysadmins. And still a good base to derive and build a new PHP NS8 application, if some code skills are available.

LAMP: Linux Apache/Nginx MySQL/Mariadb/postgresql PHP (many versions are available out there).

So one container one task inside a pod

Nginx with one vhost for one usage
One database
One php version
Ssh server to migrate an existing website (rsync,scp)
Web admin for the database
Git to clone project
Wget

At the end we could suffer a lot of space for only one website

True, but it is a common issue with containers: it can be addressed separately.

1 Like

As often in life, it’s a compromise somewhere in the middle.

For example: two Zabbix instances on a NS8 cluster…
True, both will need to fulfill the requirements, libraries etc. needed.
But that will be, once in use, a very small part of the application / cntainer.
The database - no matter if MariaDB or PostgreSQL - will grow and grow with time and retainment of historical data.

The same would also be valid say for two NextCloud instances…
The common stuff is much less than the database and data.

On the other hand, a typical LAMP website, no matter if WP, Joomla or Typo3, the code is often larger than the data…

That’s where this comes in…

A GUI choosable option to use a common database module instead of the default local database module might be a good idea for such containers…

Another good idea maybe a GUI option to include in system backup…

My 2 cents
Andy

1 Like

Yep backup available

1 Like

then a low human cost development could be to integrate a database inside webserver

I am a bit against the idea of a webmodule per-se, just for the maintainability of the service.

I’ve got few ideas on how to do it, however to keep it easier it would require building the image directly in the module.
This is to keep image size at minimum and for security reasons related to the plethora PHP modules that your application may or may not need (xdebug in a production server is a VERY BAD IDEA, but some might need it to debug the work in progress application)

NGINX too, to fully customize the service you might need to take a route that makes the module un maintainable…

Might give it a shot in the near future. Will see.

2 Likes

So one container with every services inside. Certainty alpine for the small footprint

One container will limit you with the versions available, I’d rather manage X different builds but way easier to manage on the long run

Alpine is good with space, but not with compilation (generally) you might save 200mbs of space for having greater headaches later on (some tools generally handle alpine very well, such as GitHub - mlocati/docker-php-extension-installer: Easily install PHP extensions in Docker containers for installing php extensions)

2 Likes

alittle bit a bythe way, is the intention to implement something similer to Easypanel - Modern Server Control Panel within Ns8 environment for general LAMP based hosting with support for multiple php extensions, with additional things like mbstring, ioncube and etc?

There is a certain Docker image i saw some weeks back that could acheive this, and had configurable options for adding removing, setting to enable and disable multiple componets in regards to acheiving this.

it could be a wonderful starting point since a huge amount of work has already been done.

LEt me see if i can remember where i saw it, i really wish i had starred the project.

anyways, here is an old project which kinda has some of the bells and whistles
cytopia/devilbox: A modern Docker LAMP stack and MEAN stack for local development (github.com)

I shared with a developer (good friend of mine close my home) some time ago, relative to architecture of container and they do use a one container task approach, arguing that is the way that containers run.

I must admit that he is a software engineer and not a sysadmin engineer, it could matter a lot when you have to get something simply up and workable.

I understand that we could have a really lower footprint for hardware size but we could have some issues to understand what service makes the container down, except if we are lucky and we could have log lines before the container refuses to start or stop itself.

IIUC your proposal, building a derived image “on-the-fly”, at module install/update time could be a valid approach.

PHP extension requirements are difficult to manage and I guess we cannot pack-them-all inside an image!

One drawback of the “on-the-fly” build is we cannot check the resulting image for CVEs present in PHP extensions: it is something left in the Sysadmin’s hands.

The tool I’ve listed before (and using in all PHP projects I’ve deployed for Nethesis), resolves all the dependencies and configuration by itself, just give it the name (or list) of the required module and voilà :open_hands:

Since we build the image, we might as well provide a SBOM if needed (very very very futuristic feature, we ain’t have a module yet :grimacing:)

1 Like

I could suggest you are all so yesterday wanting databases and web servers :slight_smile:

More just CMS related in case you haven’t seen Grav before: https://getgrav.org/

It’s extremely good and well worth playing with. We use it for creating Web interfaces to a number of admin tasks. You will note it only requires PHP as it even has its own web server built in if you want to go down that path (we don’t and use nginx). Definitely a great sysadmin tool as well as for web development.

1 Like

hello @KdB youve just opened a can of worms.

there seems to be a lot of flat file CMS in the market at the moment, questions is. would or should they be Apps in ns8, or just hosted by the built in webserver module

I’m just imagining what it means for me as a WordPress operator and what possibilities or restrictions would result from it.
At first glance, I can see that the following requirements will exist:

  1. PHP versions must be updateable/selectable up to the latest version and preferably configurable via GUI under NS7,
  2. typical PHP modules such as PHP Imagic/Imagemagic; php-xml; php-gd; php-mbstring; php-curl; php-json; php-zip, php-mysql; mod_rewrite etc. must be available.
  3. WordPress internal backup plugins must be able to address various online storages, which must be supported by the LAMP stack
    FTP, SCP/SFTP, Amazon-S3, S3-generic, Dropbox, Azure, pCloud, Rackspace CloudFiles, OpenStack (SWIFT), Google Cloud, DreamObjects, Google Drive, Backblaze, MS Onedrive, WebDav, Email
  4. HTTP headers must be customisable.
  5. cron jobs must be possible
  6. DB management via web GUI
  7. persistent object cache must be usable