[GH-ISSUE #17] Web based configuration script #15

Open
opened 2026-02-25 21:33:55 +03:00 by kerem · 21 comments
Owner

Originally created by @jasonmunro on GitHub (Aug 19, 2015).
Original GitHub issue: https://github.com/cypht-org/cypht/issues/17

Originally assigned to: @jasonmunro on GitHub.

Currently we have a set of CLI scripts to create the Cypht configuration and add/remove/modify user accounts (when using the DB authentication method). It would be great to have a web based version of these to make installation easier, especially for shared hosting environments.

Originally created by @jasonmunro on GitHub (Aug 19, 2015). Original GitHub issue: https://github.com/cypht-org/cypht/issues/17 Originally assigned to: @jasonmunro on GitHub. Currently we have a set of CLI scripts to create the Cypht configuration and add/remove/modify user accounts (when using the DB authentication method). It would be great to have a web based version of these to make installation easier, especially for shared hosting environments.
Author
Owner

@dumblob commented on GitHub (Aug 19, 2015):

In my opinion this is quite a minor issue. In fact, this is a thing of a system-specific configuration tools or principles. It might be some packaging system (rpm, deb, pkgbuild, ebuild, etc.), it might be some configuration system (ansible, chef, puppet, etc.), it might be some specific GUI application, it might be just a text editor (nvim, emacs, nano, etc.). The only solution which from my experience works is well-defined configuration file semantics with well-known structure (e.g. JSON) at a well-known location (e.g. /etc/).

<!-- gh-comment-id:132739238 --> @dumblob commented on GitHub (Aug 19, 2015): In my opinion this is quite a minor issue. In fact, this is a thing of a system-specific configuration tools or principles. It might be some packaging system (rpm, deb, pkgbuild, ebuild, etc.), it might be some configuration system (ansible, chef, puppet, etc.), it might be some specific GUI application, it might be just a text editor (nvim, emacs, nano, etc.). The only solution which from my experience works is well-defined configuration file semantics with well-known structure (e.g. JSON) at a well-known location (e.g. `/etc/`).
Author
Owner

@jasonmunro commented on GitHub (Aug 19, 2015):

I agree, but this is a big blocker to adoption, and if people can't try out the software it's hard to build momentum behind it. We include CLI helper scripts for a few things already, it's not too much of a stretch to "web-ify" them. My main concern with both the configuration arrangement we already have and a web based setup script is security.

<!-- gh-comment-id:132758245 --> @jasonmunro commented on GitHub (Aug 19, 2015): I agree, but this is a big blocker to adoption, and if people can't try out the software it's hard to build momentum behind it. We include CLI helper scripts for a few things already, it's not too much of a stretch to "web-ify" them. My main concern with both the configuration arrangement we already have and a web based setup script is security.
Author
Owner

@dumblob commented on GitHub (Aug 19, 2015):

Right, what I meant was "begin with a thoroughly defined configuration file (in terms of semantics and syntax)" as the core feature and "end with a simple web GUI operating upon this well-defined configuration file".

And it's true, that unification is the way to go. Not a set of different user-space scripts with varying interfaces.

Regarding security, do you mean the need to introduce authentication and at the same time providing bug-free web app being safe when reading/writing the configuration file(s)?

<!-- gh-comment-id:132764511 --> @dumblob commented on GitHub (Aug 19, 2015): Right, what I meant was _"begin with a thoroughly defined configuration file (in terms of semantics and syntax)"_ as the core feature and _"end with a simple web GUI operating upon this well-defined configuration file"_. And it's true, that unification is the way to go. Not a set of different user-space scripts with varying interfaces. Regarding security, do you mean the need to introduce authentication and at the same time providing bug-free web app being safe when reading/writing the configuration file(s)?
Author
Owner

@jasonmunro commented on GitHub (Aug 19, 2015):

thanks for the clarification. That is very much the approach I'm taking. The "defined" file is the hm3.ini file, the output is the rc file (serialized array). The web interface is just a way to manage both without a text editor and cli commands, but it ultimately will use the same code path.

WRT security, the issue is authentication. CLI commands have an implicit authentication associated with them (even that is not ideal), but providing a web interface to "bootstrap" an installation is worrisome, if for no other reason than it gives people an easy way to shoot themselves in the foot :)

<!-- gh-comment-id:132796120 --> @jasonmunro commented on GitHub (Aug 19, 2015): thanks for the clarification. That is very much the approach I'm taking. The "defined" file is the hm3.ini file, the output is the rc file (serialized array). The web interface is just a way to manage both without a text editor and cli commands, but it ultimately will use the same code path. WRT security, the issue is authentication. CLI commands have an implicit authentication associated with them (even that is not ideal), but providing a web interface to "bootstrap" an installation is worrisome, if for no other reason than it gives people an easy way to shoot themselves in the foot :)
Author
Owner

@Kroesss commented on GitHub (Oct 26, 2016):

Is there any news on this ticket yet? It would be great if it could be used on a shared hosting-environment.

<!-- gh-comment-id:256402325 --> @Kroesss commented on GitHub (Oct 26, 2016): Is there any news on this ticket yet? It would be great if it could be used on a shared hosting-environment.
Author
Owner

@jasonmunro commented on GitHub (Nov 1, 2016):

@Kroesss, Sorry, this is still pretty low on my priority list right now.

<!-- gh-comment-id:257693146 --> @jasonmunro commented on GitHub (Nov 1, 2016): @Kroesss, Sorry, this is still pretty low on my priority list right now.
Author
Owner

@jasonmunro commented on GitHub (Sep 24, 2018):

As of today I have disabled the half ass web based configuration builder we had in the scripts directory. I did this for a number of reasons as described in the commit:

  1. It does not work
  2. While only available in debug mode, it's not secure
  3. Even if I get it working, it's not going to be easy to use and hard to maintain.
  4. I'm seriously considering trashing the idea completely

As much as I understand why people want a web based installer, I just don't think it makes sense with the Cypht install process.

<!-- gh-comment-id:424158018 --> @jasonmunro commented on GitHub (Sep 24, 2018): As of today I have disabled the half ass web based configuration builder we had in the scripts directory. I did this for a number of reasons as described in the commit: 1. It does not work 2. While only available in debug mode, it's not secure 3. Even if I get it working, it's not going to be easy to use and hard to maintain. 4. I'm seriously considering trashing the idea completely As much as I understand why people want a web based installer, I just don't think it makes sense with the Cypht install process.
Author
Owner

@marclaporte commented on GitHub (Oct 30, 2020):

For folks that need this today: Cypht is bundled in Tiki, and Tiki is shared hosting friendly since 2002! As a bonus, you get CardDAV and CalDAV support (Beta).
https://info.tiki.org/Benefits
https://dev.tiki.org/Cypht-integration

<!-- gh-comment-id:719140963 --> @marclaporte commented on GitHub (Oct 30, 2020): For folks that need this today: Cypht is bundled in Tiki, and Tiki is shared hosting friendly since 2002! As a bonus, you get CardDAV and CalDAV support (Beta). https://info.tiki.org/Benefits https://dev.tiki.org/Cypht-integration
Author
Owner

@Yamakasi commented on GitHub (Nov 1, 2020):

For folks that need this today: Cypht is bundled in Tiki, and Tiki is shared hosting friendly since 2002! As a bonus, you get CardDAV and CalDAV support (Beta).
https://info.tiki.org/Benefits
https://dev.tiki.org/Cypht-integration

What kind of advertisement is this? Please stop that.

Thank you!

<!-- gh-comment-id:720011726 --> @Yamakasi commented on GitHub (Nov 1, 2020): > > > For folks that need this today: Cypht is bundled in Tiki, and Tiki is shared hosting friendly since 2002! As a bonus, you get CardDAV and CalDAV support (Beta). > https://info.tiki.org/Benefits > https://dev.tiki.org/Cypht-integration What kind of advertisement is this? Please stop that. Thank you!
Author
Owner

@marclaporte commented on GitHub (Nov 17, 2020):

Here is why this is relevant information:

The topic of this issue is to be able to install Cypht via a web installer like most PHP web apps. So the typical use case of a web control panel like Virtualmin, ISPconfig or the well-known proprietary alternatives.

  1. Create DB (via the web control panel)
  2. Get the source (ex.: via a .zip)
  3. Unzip the source in a web accessible folder and point a browser to it.
  4. You will then get a web installer. Answer the questions (ex.: the previously created database info)

The fact that this is missing is "a big blocker to adoption" as stated by Jason.

AFAIK, there is only one way today to get Cypht with a web-based installer, and it's via Tiki. Tiki has tons of features but they are all optional. So you can activate only Cypht. So basically, Cypht can use Tiki's installer. Cypht and Tiki share the same license and programming language, so it's even easy to move/copy code as appropriate.

We are "upstream first" as explained here:
https://www.redhat.com/en/blog/upstream-first-turning-openstack-nfv-platform
Every webmail enhancement Tiki makes is first proposed to be in Cypht. And if it's out of scope, it will go in Tiki only. Here are some discussions about scope:

We should make a Cypht Webmail profile to make it even easier: https://profiles.tiki.org/

And my goal is to get other PHP web apps to adopt Cypht in the same way. The first opens the way. The more projects do, the more eyeballs and developers we have. Cypht + Packagist is for Cypht, for Tiki and for all future projects that will embed Cypht:
https://github.com/jasonmunro/cypht/issues/311

In a nutshell:

  1. Cypht is awesome
  2. We'd like Cypht to be easier to install
  3. One great way is for Cypht to have a web-based installer.
  4. From Jason's last comment, it seems unlikely to happen
  5. My suggestion is a real world workaround available now
  6. It does not stop any effort to create a Cypht-specific web installer
  7. All webmail enhancements are done directly in Cypht when appropriate. So Cypht and Tiki have a win-win relationship. There is no downside or tradeoff.

Tiki has over 1 million downloads and it is promoting Cypht, so it makes perfect sense for Cypht to promote Tiki as well.

Best regards,

<!-- gh-comment-id:728687646 --> @marclaporte commented on GitHub (Nov 17, 2020): Here is why this is relevant information: The topic of this issue is to be able to install Cypht via a web installer like most PHP web apps. So the typical use case of a web control panel like Virtualmin, ISPconfig or the well-known proprietary alternatives. 1. Create DB (via the web control panel) 2. Get the source (ex.: via a .zip) 3. Unzip the source in a web accessible folder and point a browser to it. 4. You will then get a web installer. Answer the questions (ex.: the previously created database info) The fact that this is missing is "a big blocker to adoption" as stated by Jason. AFAIK, there is only one way today to get Cypht with a web-based installer, and it's via Tiki. Tiki has tons of features but they are all optional. So you can activate only Cypht. So basically, Cypht can use Tiki's installer. Cypht and Tiki share the same license and programming language, so it's even easy to move/copy code as appropriate. We are "upstream first" as explained here: https://www.redhat.com/en/blog/upstream-first-turning-openstack-nfv-platform Every webmail enhancement Tiki makes is first proposed to be in Cypht. And if it's out of scope, it will go in Tiki only. Here are some discussions about scope: - https://github.com/jasonmunro/cypht/issues/382 - https://github.com/jasonmunro/cypht/issues/115 We should make a Cypht Webmail profile to make it even easier: https://profiles.tiki.org/ And my goal is to get other PHP web apps to adopt Cypht in the same way. The first opens the way. The more projects do, the more eyeballs and developers we have. Cypht + Packagist is for Cypht, for Tiki and for all future projects that will embed Cypht: https://github.com/jasonmunro/cypht/issues/311 In a nutshell: 1. Cypht is awesome 2. We'd like Cypht to be easier to install 3. One great way is for Cypht to have a web-based installer. 4. From Jason's last comment, it seems unlikely to happen 5. My suggestion is a real world workaround available now 6. It does not stop any effort to create a Cypht-specific web installer 7. All webmail enhancements are done directly in Cypht when appropriate. So Cypht and Tiki have a win-win relationship. There is no downside or tradeoff. Tiki has over 1 million downloads and it is promoting Cypht, so it makes perfect sense for Cypht to promote Tiki as well. Best regards,
Author
Owner

@marclaporte commented on GitHub (Aug 14, 2022):

I was thinking about this yesterday. Beyond a standard installer, we should have something to set up tests:
https://github.com/jasonmunro/cypht/issues/596

Perhaps this could be done with Composer? Tiki already gets Cypht from Composer so this is well-tested: https://dev.tiki.org/How-to-upgrade-Cypht-within-Tiki-via-Composer

<!-- gh-comment-id:1214380038 --> @marclaporte commented on GitHub (Aug 14, 2022): I was thinking about this yesterday. Beyond a standard installer, we should have something to set up tests: https://github.com/jasonmunro/cypht/issues/596 Perhaps this could be done with Composer? Tiki already gets Cypht from Composer so this is well-tested: https://dev.tiki.org/How-to-upgrade-Cypht-within-Tiki-via-Composer
Author
Owner

@marclaporte commented on GitHub (Aug 16, 2022):

A few years back, we did some research for https://dev.tiki.org/Generic-PHP-app-deployment-tools-which-are-written-in-PHP
In the end, we opted to continue work on our Tiki-specific tool: https://doc.tiki.org/Manager (which started in 2008 or so)

When the time comes to work on this, let's see if we can reuse an existing project. Let's make it super easy for web hosting providers and control panels to provide and maintain Cypht.

<!-- gh-comment-id:1216074625 --> @marclaporte commented on GitHub (Aug 16, 2022): A few years back, we did some research for https://dev.tiki.org/Generic-PHP-app-deployment-tools-which-are-written-in-PHP In the end, we opted to continue work on our Tiki-specific tool: https://doc.tiki.org/Manager (which started in 2008 or so) When the time comes to work on this, let's see if we can reuse an existing project. Let's make it super easy for web hosting providers and control panels to provide and maintain Cypht.
Author
Owner

@marclaporte commented on GitHub (Aug 22, 2022):

Over 10 million installs: https://packagist.org/packages/deployer/deployer

Here are examples of recipes:

<!-- gh-comment-id:1221672564 --> @marclaporte commented on GitHub (Aug 22, 2022): Over 10 million installs: https://packagist.org/packages/deployer/deployer Here are examples of recipes: - https://github.com/deployphp/deployer/tree/master/recipe - https://github.com/deployphp/deployer/tree/master/contrib
Author
Owner

@marclaporte commented on GitHub (Dec 8, 2022):

Related: https://github.com/YunoHost-Apps/cypht_ynh

<!-- gh-comment-id:1342952481 --> @marclaporte commented on GitHub (Dec 8, 2022): Related: https://github.com/YunoHost-Apps/cypht_ynh
Author
Owner

@marclaporte commented on GitHub (Feb 22, 2023):

We'll work on improving the process to avoid this:
"I'm really totally lost with this, my best best would have been Cypht, but after days of trying to install it, I'm about to give up because I just can't get it to work (stuck at the login screen and doesn't go further although everything is setup and configured properly)." Source:
https://github.com/roundcube/roundcubemail/issues/4972#issuecomment-640747464

<!-- gh-comment-id:1440277446 --> @marclaporte commented on GitHub (Feb 22, 2023): We'll work on improving the process to avoid this: "I'm really totally lost with this, my best best would have been [Cypht](https://cypht.org/), but after days of trying to install it, I'm about to give up because I just can't get it to work (stuck at the login screen and doesn't go further although everything is setup and configured properly)." Source: https://github.com/roundcube/roundcubemail/issues/4972#issuecomment-640747464
Author
Owner

@marclaporte commented on GitHub (Oct 7, 2023):

I wonder: Should we invest our time in a web-based installer or improve our Docker package?

<!-- gh-comment-id:1751842002 --> @marclaporte commented on GitHub (Oct 7, 2023): I wonder: Should we invest our time in a web-based installer or improve our Docker package?
Author
Owner

@marclaporte commented on GitHub (Feb 12, 2024):

We are working on the docs here: https://github.com/cypht-org/cypht-website/pull/46

<!-- gh-comment-id:1938601560 --> @marclaporte commented on GitHub (Feb 12, 2024): We are working on the docs here: https://github.com/cypht-org/cypht-website/pull/46
Author
Owner

@marclaporte commented on GitHub (Dec 18, 2024):

mprove our Docker package

We have massively improved our Docker packaging: https://github.com/cypht-org/cypht-docker/issues/31

<!-- gh-comment-id:2550089698 --> @marclaporte commented on GitHub (Dec 18, 2024): > mprove our Docker package We have massively improved our Docker packaging: https://github.com/cypht-org/cypht-docker/issues/31
Author
Owner

@IrAlfred commented on GitHub (Sep 26, 2025):

Due to security concerns related to the web-based installation method for Cypht, which would require a thorough security analysis, and because this is a low-priority issue (as root access is needed regardless), we are closing this for now. The standard installation process for Cypht is already well-documented and simplified on the official website https://cypht.org/install, which covers various contexts including manual installation, Docker, Tiki, and YunoHost.

<!-- gh-comment-id:3338077165 --> @IrAlfred commented on GitHub (Sep 26, 2025): Due to security concerns related to the web-based installation method for Cypht, which would require a thorough security analysis, and because this is a low-priority issue (as root access is needed regardless), we are closing this for now. The standard installation process for Cypht is already well-documented and simplified on the official website [https://cypht.org/install](https://cypht.org/install), which covers various contexts including manual installation, Docker, Tiki, and YunoHost.
Author
Owner

@marclaporte commented on GitHub (Feb 25, 2026):

as root access is needed regardless

@IrAlfred Why is root access needed? Is there not a workaround?

<!-- gh-comment-id:3961010208 --> @marclaporte commented on GitHub (Feb 25, 2026): > as root access is needed regardless @IrAlfred Why is root access needed? Is there not a workaround?
Author
Owner

@marclaporte commented on GitHub (Feb 25, 2026):

A user wrote "What I'm getting from this is that, unfortunately, the idea of a lightweight, easy to deploy PHP webmail client is dead, with no like for like alternatives on the horizon?" Source: https://github.com/the-djmaze/snappymail/issues/1911#issuecomment-3960544535

What can we learn from Snappymail?
https://github.com/the-djmaze/snappymail/wiki/Installation-instructions

Looking at the options on https://wikisuite.org/Webmail-and-groupware-comparison, the other active, standalone (and thus that require an installer) and in PHP are Roundcube and Cypht.

Here is the doc for Roundcube, (the most popular PHP webmail):
https://github.com/roundcube/roundcubemail/blob/master/docs/INSTALL.md

Cypht is a great PHP webmail but it's not easy enough to install for traditional shared web hosting.
https://www.cypht.org/install/

I accept that this is low priority as we have better docs, along with Docker and Yunohost installs. But eventually, we should have an easier shared hosting option. So I am re-opening this issue.

<!-- gh-comment-id:3961018275 --> @marclaporte commented on GitHub (Feb 25, 2026): A user wrote "What I'm getting from this is that, unfortunately, the idea of a lightweight, easy to deploy PHP webmail client is dead, with no like for like alternatives on the horizon?" Source: https://github.com/the-djmaze/snappymail/issues/1911#issuecomment-3960544535 What can we learn from Snappymail? https://github.com/the-djmaze/snappymail/wiki/Installation-instructions Looking at the options on https://wikisuite.org/Webmail-and-groupware-comparison, the other active, standalone (and thus that require an installer) and in PHP are Roundcube and Cypht. Here is the doc for Roundcube, (the most popular PHP webmail): https://github.com/roundcube/roundcubemail/blob/master/docs/INSTALL.md Cypht is a great PHP webmail but it's not easy enough to install for traditional shared web hosting. https://www.cypht.org/install/ I accept that this is low priority as we have better docs, along with Docker and Yunohost installs. But eventually, we should have an easier shared hosting option. So I am re-opening this issue.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/cypht#15
No description provided.