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.
signature.asc
Description: PGP signature
