Application scaffolding

The ns8-kickstart is for module developers.

We should aim to sysadmins too, as Martin clarified here:

It requires some time, but I’m sure the result will be good!

1 Like

will be looking forward to this.

and PS for the developers of NS8, i think we are lacking significantly in the admin manuals on the aspect of deployment of solutions onto NS8, this significantly lowers how much non developer testers can be able to really dig into the new platform. could you kindly work on this one,

1 Like

Relative to New module tutorial | NS8 dev manual, what is not clear and can be improved?

based on the submitted documentation, does it mean that all solutions to be deployed into NS8 must be first built or created as modules before someone can now go ahead to deploy? install it onto the server?

there are generally 2 classes of users

  1. Sysadmins with Developer experience
  2. Sys admins with no dev experience

similar to ns8, a number of slightly complex solutions can be just installed and configured to work, without necessarily building them into modules, but for the complex ones with multi step processes, the community has been kind enough to provide the Community Modules

It is my view that the success of NS8 will largely depend on first things first.

  1. the ability to easily deploy Self hostable solutions onto NS8

  2. readily available on stock single deployments (like the solutions already available in ns8 or ns7)

  3. community spearheaded deployments, similar to the ones we have on NS7.

Now for most of the community members (me included) would love the availability, capability or capacity to deploy at least the solutions already on the community repo and modules

Edit:

a good example, how do i achieve something like this onto NS8

Howto install MeshCentral on NethServer - Howto - NethServer Community

or

Howto install Zabbix 3.4 - Howto - NethServer Community

is there a general install instruction
must all installations be docker based, or standard linux solutions can be installed similar to the above example

similar to how we got modules onto NS7, there was first installing them, then using the install instruction to get them to become module.

i hope i am understandable

1 Like

I think I understood the need of installing some software without packaging a full module, as I already wrote here

I agree the docs are lacking instructions to achieve it. It can be improved.

In NS8 additional software must run in containers. To fully answer your question I need more time, maybe the video meeting can be a good starting point.

having this available sooner will really help in better testing the platform, and presentation of ideas for improvements earlier on than later in the build/ development process.

Duly Noted,
and to be curious, am i able to install docker compose base instructions for solutions as those seem to be in plenty.

Also, for the development team, something i think might be of interest to you guys, check out this: it could present an idea onto simpler methods for offering ability to deploy softwares into NS8 either on the single cluster, or multi cluster.

While i dont think a CI/CD deployment solution is one of the components the dev team is aiming for in NS8, its current implementation and since its something new being built, some uniqure considering (i think) could be made to make the platform a wonderful tool for easier deployment of internal built tools or even a config and deployment manager for docker based, images, compose files etc

i know your focus is on podman, but hey lets face it there are still alot more docker based solutions for deployment available, am not sure if the deal will be to convert them to podman based, or deploy as is, or some other things, IT STILL CONFUSES ME and am sure many in this community as well coming from NS7

1 Like

A general-purpose interface to run any application is beyond the project goals, it is a completely different product. With NS8 the sysadmin installs applications from the Software Center with a click; configurations and integrations are mostly automatic.

However I agree on the fact that sysadmins may require some software that is (still) not available from the Software Center. Helping them to reach their broader goals is the first step to potentially develop new modules and make them available to everyone.

Rather than an UI like Coolify, I’d establish a procedure and develop tools to make reaching those goals as simple as possible.

I’m thinking about one or more commands that from a list of image URLs and maybe other parameters prepare the module groundwork to run them. The result should be a locally-available application instance, that can be further developed to become a public module.

Podman has been designed to look like Docker, but has a different architecture. When the basic knowledge of running apps in containers is gained it is not difficult to jump from one to the other.

There is a project, podman-compose that can read a Docker-compose file and execute it. A Docker-compose file is the specification of how to run a set of containers that constitute an application. I often look at such files to understand how to run it on NS8 – together with the official app documentation.

NS8 runs containers under Systemd supervision. Service units start and supervise the application components (as opposed to the Compose-style). This approach has been pushed further by Quadlet develpers, and somebody thinks its even better than the Compose style.

Yes that’s the deal. Do not fear it. It’s not that hard for a sysadmin with some CLI skills.

Just to clarify for me:

Any third part application must run in a container to possibly interact with NS8? In other words, an application which right now is not as docker or container available, must first be packed as a container? What about ports which are already occupied and might interfere?

Only software available from the NS8 software center is able to interact out of the box with software installed or offered from the NS8 software center?

Thank’s for clarification.

1 Like

Yes, of course. A NS8 node runs applications in containers and nothing else. Only few processes are in the host space: namely systemd units and agents.

Yes

Well, software center lists public working modules (hopefully…). They correctly integrate with the NS8 core (Backup, Users and Groups, service supervision and monitoring, ports allocation and protection, SMTP smarthost settings, Certificates for TLS, HTTP routes, …). In some cases (e.g. WebTop / Mail) modules can integrate also with other modules, if they are designed to do it.

However, I’m not sure to understand the question, can you make an example?

1 Like

A NS8 module can obtain one or more free TCP/UDP ports from the core. If the application wants to bind a fixed port number, also <1024 a port conflict can raise. This kind of applications are limited to one instance for each node. A notable example is Samba DC, or Mail which bind standard port numbers.

1 Like

I remember the great online session a few years ago that teaches the community the basics of the console.
I think you would create a lot of multipliers if you offered such a course for the basics of NS8/Docker.

You better offer this sooner than too late, as it could partially or temporarily replace the missing user doc (not the developer doc).

Sincerely, Marko

2 Likes

i totally agree with you on this one, those kind of videos/tutorials or whatever you call them, will definitely come in handy for a lot of users who are still trying to wrap around the new architecture.

By now we should have began to see communitybased HOWTO installations for NS8 or even, those who built community modules could have began porting, migrating or writing modules for NS8, but honestly as put, there are quite a fe(lot) missing in the admin usage side of loading apps.

BAsed on above notes, on my laymans perspectives of understanding.

for all softwares/applications we want to run on NS8 we would need to first create a SYSTEMD kind of file called a BUTANE which has instructions somewhat similar to a standard INI file, with configs for the container that look like a docker compose YAML file. and this file, is going to look something like this

now how is that different from this below

[Unit]
Description=Wordpress Quadlet

[Container]
Image=docker.io/library/wordpress:fpm
ContainerName=wordpress
AutoUpdate=registry
EnvironmentFile=/home/core/.config/containers/containers-environment
Volume=wordpress.volume:/var/www/html
Network=wordpress.network

[Service]
Restart=always
TimeoutStartSec=900

[Install]
WantedBy=caddy.service multi-user.target default.target

NOw since an application must first be packed into a container to first be run on NS8, how do we deal with applications not packaged as docker. say a simple index.php file as an example of application to be deployed

or a sinmple insert.php program that is a web form which stores data into a mysql database.

1 Like

Hi @oneitonitram

I personally do not think most of the above is needed at all before RC!

Normally, a “layman” will not install applications that are not there.

And it does seem you’re kind of focussed on programs / apps most users here will NEVER need, use or even heard about…

Please tell me real life examples of “simple” index.php or insert.php programs a SME type of company might need?
I think if a “layman” doesn’t know how to handle a simple task like stated above, it’s NOT something we should waste time here on!

→ Why not contribute by actually creating the HowTos you request for these obscure stuff?

There are ample examples out there, even on YouTube about how to repackage stuff if it’s needed and the basic coding skills are available…

I think most of the above post is just delaying the approach to RC!

My opinion & my 2 cents!
Andy

No, you’re going out of track! Butane is a CoreOS thing.

I might say that at the beginning we evaluated also CoreOS as NS8 base OS, but the leap was too big for everybody :slight_smile:

A PHP application, like a JAVA application and so on just needs the right stack to run on. Steph already released the Webserver module that, together with the MariaDB one, provide a LAMP stack to run your PHP applications.

But if we talk of PHP applications like NextCloud or Wordpress, I prefer a real module fully intgrated with the core features (listed in my previous comment).

:joy: Yes I spend some time to write replies in this forum. I hope they are valuable for the community as the code commits!

2 Likes

Respectfully Andy, i am only trying to understand the inner workings of deploying apps onto nethserver8 and i hope my questions help other noobs out here, i will abit, when i first came accross Nethserver, i did not know much abotu Linux server administration, the knowledge i have was gathered here through responses from community, trying and breaking, alot of stuff.

Actually there is alot of sense to my madness and the way i posed the questions, and based on this here

this here answers perfectly my question, and i am sure other members of the community will benefit too as well.

this is not to say an SME or anyone in particular would want or use such an application, but it was a mere example to define the simples applications an organisation might have need and use for that actually makes sense and has use for. instead of giving an example of a complex software or app like say Odoo /yourls matomo or even more complicated and complex like zabbix or zammad, i chose to give an example that everyone would relate with to understand the scope of my query and follow through, i know for a fact that you use zabbix @Andy_Wismer but there are people who do not know what zabbix is.

the reason i sued those example was so that my question reasonated with everybody instead as you put it, of asking about a solution that other users do not have need for it.

anyway, that has been answered and i am happy with the response gieven by @davidep regarding simple hostable solutions.

Now getting to more complex situations
as with this response:

then it would suffice to say, sure a module might be a more proper way to implement and deploy such a system, but as Andy mentioned, not all tools and solutions are used by everyone, i might have a softwrae use case that is only for me, and probably only a one time install, unitll its needed again, in that cae, building a module might not really be the best case, but a probable one.

Meanwhile i will attempt to deploy some solutions with the provided webserver module for the not so complex tools, you have mentioned php and java, i hope python and Nodejs could be possible as well. (ps: i wont be sure about .net)

For me to contribute to HOWTO as you frame, i first need to understand what i am doing myself, how to do it properly, then i can begin experimenting, and deploying. otherwise, i can not do anything, ill be stuck with no sense of direction, and if thats the case, i would not be able to create a HOWTO which might in future benefit alot of the community members.

i knew zabbix through this forum
i knew meshcentral through this forum

I also created HOWTOS for solutions other members did not know about, and might have benefited from.

3 Likes

Hi @oneitonitram

That’s all fine, but at the moment I really do have the impression, if NS8 were a house being built, that you’re choosing (bickering) about the color of the bathroom carpet, before any walls have been built!

And everyone else is waiting for your bathroom carpet color choice - no, they’re all waiting for RC or better: RELEASE !!!

I do fully agree that MUCH more docs etc are needed for NS8!

My 2 cents
Andy

A lot of so called “Pros” have no idea or need for monitoring (Which is what Zabbix does) on their IT.
But on their car, if the speedometer is off, or the fuel meter is off guage, they’ll scream!

:slight_smile:

SOme of these discussions now make alot more sense, that i have been attempting the installation of softwares, as well as building modules.

i must admit i was floating alot even reading those blog posts and information about butane, quadlets etc but now it all makes sense

Hi community. I realize I am coming (too?) late to the party. The last few days I did some catching up on the developments of NS8.
I admit, I am confused… a lot…
I do understand the ease of getting all those modules that already are available installed and running. But my fear is those applications that I currently have running on NS7 and that are not an NS8 module. Applications like Xerte online toolkits, Diaspora and several other applications that have no module (yet).
Also, how do I get my current VPS with NS7 migrated to NS8? Is an in-place migration possible, or do I need another VPS to be able to migrate my server?
These are just a few of my many questions…

@robb

Hi Rob

AFAIK, an in place is planned for a coming 8.1, maybe even earlier.

from here:


At the moment you would need another server to migrate (If you’re not using AD).
With AD, that may make things a little difficult, but still possible.

Any Apps you have running at the moment on NS7 CAN run in some form under NS8.
But NS7 can still run alongside NS8 and benefit from the Account Provider on NS8 - to continue hosting your NS7 installed apps, until they are ready for migration.

Diaspora, as an example, can run in one or several (Docker) Containers, managed by NS8.

This is just one of several possible answers, and possible “motivators” to keep current and watch, migrate, implement, document, whatever!

:slight_smile:

As part of our long term community building efforts - and from one NethServer Forum Ambassador to another!

My 2 cents
Andy