Hello,

I am still very new to Guix and Guix System. But in the long term, I
would like to package some web applications. And I wonder how it would
be the best way to integrate them with Guix System.


From my experience, a web app:

* Can run with one or multiple processes

* Can impose one database software or let sys admins choose between
  multiple

* Can be behind a reverse proxy

* Can need other software: A cache, a task queues, etc


This let the admin sys have one or multiple web app in the same host.
Sometimes, multiple instances of the same web app, each with their own
domain name.


What would be, for you, the best way to integrate a web app in Guix
System ?


The first step would be to define a Guix package.

But what about a PHP web app that ask you to remove an `install.php'
file from its source directory after the first run and who store the
data as files in a sub-folder of their source code ? I remember a forum
written like that (can't remember the name, it was an hold school forum
and a free software).

The next step is the writing of a new system service type, that would
run an instance of the web app and configure it. Like a
peertupe-service-type for Peertube, or gotosocial-service-type for
Gotosocial (both free software).

But what about the integration with the database or other softwares ?
Does the new web app service type need to extend the service type of the
database ? Or do we use the web app service configuration to tell which
database to use and how to connect to it ? Same questions for the
reverse proxy, the cache software, etc.

The extension of other service types for the database, the cache, etc,
is the most easy to use for the admin sys. But it will not permit to
have the web app on one host, the database on another, etc.

And what about when the web app ask to run a script on first run, or to
manually create a database: What would be the best way to integrate it
in Guix System ?

For running the web app instance, the best way is to create a Shepherd
service ? But what about running multiple instances on the same
machine ? Do the new web app service type need to manage it itself ? Or
do we ask admin sys to run one instance per system and use system
containers to have multiple instances in the same machine ?

Do I forgot something ?

Thank you for your time and have a nice day.

Attachment: signature.asc
Description: PGP signature

Reply via email to