From b623b5857cc4488f331689da13d6afea72065b79 Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Sat, 4 May 2024 23:12:38 +0200 Subject: [PATCH 01/11] [DOC]contribute.html: Updating documentation by considering Cypht versions 1.4.x and 2.0.x --- contribute.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contribute.html b/contribute.html index 255a263..d68d52d 100644 --- a/contribute.html +++ b/contribute.html @@ -62,14 +62,14 @@

Want to contribute?

First of all, thank you for interest to cypht! The goal of this page is to provide everything you need to know in order to contribute to cypht-website and its different integrations.

-

Cypht project has been designed with standalone PHP, no framework required.

Development Workflow

-

The project has been designed with plain html css, no need for extra features, or framework.

+

The project, particularly version 1.4.x, has been designed with plain HTML and CSS, focusing on front-end and back-end development without the use of extra features or frameworks.

+

However, it's worth noting that in version 2.0.x, while there's no PHP back-end framework utilized for its back-end, Bootstrap is adopted as the front-end framework, enhancing the project's user interface and experience.

Requirements

    From 3de2ce68e5a55d21ef744a5bfe378b70ffc9ae2e Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Sun, 5 May 2024 23:18:09 +0200 Subject: [PATCH 02/11] [DOC]install-2x.html: Updating documentation for Cypht version2 --- install-2x.html | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/install-2x.html b/install-2x.html index b42d813..2e5582a 100644 --- a/install-2x.html +++ b/install-2x.html @@ -69,7 +69,7 @@

    Installation

    1. Manual installation

    Requirements

    -

    Cypht requires at least PHP 5.6 for version 1.4.x, the upcoming Cypht 2.0 will require PHP 7.4,Composer 2, and at minimum the Cypht requires at least PHP 5.6 for version 1.4.x, the Cypht 2.0 will require PHP 7.4,Composer 2, and at minimum the OpenSSL, mbstring and cURL extensions. Cypht can also leverage several other @@ -112,25 +112,34 @@

    2. Download and prepare the code

    mkdir cypht-temp cd cypht-temp -# grab latest code -wget https://github.com/cypht-org/cypht/archive/master.zip +# Fetch latest release information +$latest_release = Invoke-RestMethod -Uri "https://api.github.com/repos/cypht-org/cypht/releases/latest" + +# Extract tag name of the latest release +$latest_tag = $latest_release.tag_name + +# Construct download URL for the latest release within the 2.x series +$download_url = "https://github.com/cypht-org/cypht/archive/refs/tags/$latest_tag.zip" + +# Download the latest release +Invoke-WebRequest -Uri $download_url -OutFile "latest_cypht_release.zip" # unpack the archive -unzip master.zip +unzip latest_cypht_release.zip # run composer -cd cypht-master && composer install && cd .. +cd latest_cypht_release && composer install && cd .. # create a .env file -cp cypht-master/.env.example cypht-master/.env +cp latest_cypht_release/.env.example latest_cypht_release/.env # fix permissions and ownership -find cypht-master -type d -print | xargs chmod 755 -find cypht-master -type f -print | xargs chmod 644 -sudo chown -R root:root cypht-master +find latest_cypht_release -type d -print | xargs chmod 755 +find latest_cypht_release -type f -print | xargs chmod 644 +sudo chown -R root:root latest_cypht_release # copy to destination folder -sudo mv cypht-master/* $DESTINATION +sudo mv latest_cypht_release/* $DESTINATION # remove working directory cd .. @@ -141,7 +150,7 @@

    3. Configure the program

    To configure Cypht for your environment, make adjustments to the .env file according to your preferences. The .env file serves as the primary configuration file.

    First edit the .env file to configure Cypht for your environment. If you choose to leverage a database for authentication, sessions, or user settings, ensure to complete the relevant sections within the .env file based on the information provided in the config/app.php file.

    - +

    The necessary SQL commands for creating tables can be found in the config/app.php file, specifically starting from line 617 in the "DB Sessions" section.

    Cypht needs read, and read-write access to a few directories on the server. For security reasons these should NOT be inside the web-server document root. A good place for these is under the /var/lib/ sub-directory. Here are the commands To create the required directories per the default values in the ini file (assuming your web-server software runs as the "www-data" user).

    @@ -162,7 +171,7 @@

    4. Generate Dynamic Run-Time Configuration

    sudo php ./scripts/config_gen.php

    Recent updates have streamlined the process, and running the command above will now specifically generate the config/dynamic.php file. This file incorporates dynamic configurations, including 'handler_modules,' 'output_modules,' and 'input_filters.' Furthermore, the command continues to optimize the configuration and combine/minimize page assets, ensuring efficient runtime operation.

    - +

    Additionally, executing this command will create a sub-directory called 'site' that contains the code and page assets required within the document root. If you ever relocate the source location, you'll need to re-run the config_gen script to update the program.

    @@ -244,7 +253,7 @@

    3. Install Cypht on a YunoHost server

    YunoHost is an operating system that aims to simplify server administration as much as possible to democratize self-hosting while remaining reliable, secure, ethical and lightweight. It is a free software project owned exclusively by volunteers. Technically, it can be seen as a distribution based on Debian GNU/Linux and can be installed on many types of hardware.
    - To learn more about YunoHost, visit https://yunohost.org/fr/whatsyunohost + To learn more about YunoHost, visit https://yunohost.org/en/overview/what_is_yunohost

    To install Cypht on YunoHost, please follow these steps:

      @@ -266,7 +275,7 @@

      4. Install Cypht within Tiki

      Please follow the following link for a complete guide of how to install and use cypht within Tiki.
      https://doc.tiki.org/Webmail


      - +

      Having problems?

      I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason [at] cypht [dot] org and I will get back to you as soon as I can. From dcdee496eeb30c6e7eb1d58621b8c2271a50dc45 Mon Sep 17 00:00:00 2001 From: Esaie Muhasa Date: Tue, 7 May 2024 07:09:46 +0200 Subject: [PATCH 03/11] checking links. all links are now in English --- install-1x.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install-1x.html b/install-1x.html index 88de29f..31de968 100644 --- a/install-1x.html +++ b/install-1x.html @@ -285,7 +285,7 @@

      3. Install Cypht on a YunoHost server

      YunoHost is an operating system that aims to simplify server administration as much as possible to democratize self-hosting while remaining reliable, secure, ethical and lightweight. It is a free software project owned exclusively by volunteers. Technically, it can be seen as a distribution based on Debian GNU/Linux and can be installed on many types of hardware.
      - To learn more about YunoHost, visit https://yunohost.org/fr/whatsyunohost + To learn more about YunoHost, visit https://yunohost.org/en/whatsyunohost

      To install Cypht on YunoHost, please follow these steps:

        From 3e88501239ca07272070974e2b5bc792b8b3b5eb Mon Sep 17 00:00:00 2001 From: Bienvenumoringa Date: Sun, 5 May 2024 19:49:43 +0200 Subject: [PATCH 04/11] [UX]documentation.html: Make the page responsive to different screens --- documentation.html | 88 +++++++++++++++++++++++----------------------- site.css | 52 ++++++++++++++++++++------- 2 files changed, 83 insertions(+), 57 deletions(-) diff --git a/documentation.html b/documentation.html index 88f5b8c..c40350e 100644 --- a/documentation.html +++ b/documentation.html @@ -60,11 +60,11 @@
        -
        -
        - login +
        +
        + login
        -
        +

        Welcome to Cypht

        Once installation is in place, the users can login @@ -75,63 +75,63 @@

        Welcome to Cypht

        -
        +
        -
        +

        After successfully logging in the webmail, the users will be redirected to the following home page of the webmail where the interactive interface allows user to perform multiple actions,

        -
        - login +
        + login
        -
        -
        - add +
        +
        + add
        -
        +

        The users can Add an E-mail Account of any service provider to be able to access multiple inboxes from Cypht.

        -
        +
        -
        +

        Enhanced customization capabilities allow user to setup, configure, and manage IMAP, SMTP and JMAP servers and setup the ATOM/RSS Feed

        -
        - login +
        + login
        -
        +
        -
        +

        Combined Inbox

        The advanced and most efficient service of the Cypht enables users to access multiple email accounts at the same time. The users can view inboxes of different email providers and can send, receive, and manage email messages from the interactive webmail. Also, the webmail allows provides the functionality to search, sort, and filter emails.

        -
        - login +
        + login
        -
        +
        -
        - Contact +
        + Contact
        -
        +

        Contact Book

        One-click Contact Book allows users to efficiently add people to your contacts. Contacts can be added via clicking the Contacts button from the main menu,

        @@ -140,37 +140,37 @@

        Contact Book

        -
        -
        +
        +

        Or simply by clicking on the “two-person” icon in the message you receive.

        -
        - Twoperson +
        + Twoperson
        -
        +
        -
        +

        Calendar

        The calendar feature allows user to create different events by clicking the “+” icon on top-right corner. The created reminders and events will be shown in the calendar making it easier for user to keep track of the special events.

        -
        - Calendar +
        + Calendar
        -
        +
        -
        - Compose +
        + Compose
        -
        +

        Compose Email

        The webmail offers simple and interactive interface to compose and send an email message from any of the added email accounts along with the functionalities to access draft emails by clicking the “document” icon on top-right corner, add signatures, attachments, etc.

        @@ -179,24 +179,24 @@

        Compose Email

        -
        +
        -
        +

        User Profiles

        From webmail settings options, the user can access the feature to add numerous profiles in the webmail allowing users to combine IMAP accounts with SMTP accounts and setup signatures and reply-to details.

        -
        - profile +
        + profile
        -
        -
        - developer +
        +
        + developer
        -
        +

        Developer Options

        Another interesting feature of the open-source platform is its provision of the developer documentation and links to the source code. Thereby enabling the developer community of the webmail to actively contribute to making the platform more efficient, advanced, and reliable.

        diff --git a/site.css b/site.css index 124af65..bd0c238 100644 --- a/site.css +++ b/site.css @@ -376,7 +376,20 @@ pre code { margin-right: -15px; margin-left: -15px } - +.line { + display: flex; + padding: 15px; + max-width: 100%; +} +.item { + width: 49%; + margin-left: 0.5%; + margin-right: 0.5%; +} +.item img{ + width: 100%; + height: auto; +} .col-lg-4, .col-md-2, .col-md-3, @@ -1227,13 +1240,13 @@ h3 { .content-section { background: #f4f4f4; position: relative; - min-height: 100vh; + min-height: 100vh; padding: 130px 50px 100px 50px; } -.content-section-doc { +.content-section-doc { background: #E7F2D1; - position: relative; + position: relative; padding: 0px 50px 00px 50px; margin-top: 50px; margin-bottom: 50px; @@ -1243,7 +1256,7 @@ h3 { padding: 20px; } -.content-section-doc h1{ +.content-section-doc h1{ padding-left: 20px; padding-right: 20px; font-size: 2em; @@ -1294,12 +1307,12 @@ html,body{ cursor: pointer; min-width: 160px; } - + .dropdown { position: relative; display: inline-block; } - + .dropdown-content { position: absolute; background-color: #f9f9f9; @@ -1311,7 +1324,7 @@ html,body{ overflow: hidden; margin-left: 11px; } - + .dropdown-content a { color: black; background-color: #f9f9f9; @@ -1319,22 +1332,35 @@ html,body{ text-decoration: none; display: block; } - + .dropdown-content a:hover { background-color: #e2e2e2; } - + .dropdown:hover .dropdown-content { max-height: 500px; min-width: 160px; transition: max-height 0.25s ease-in; } - + .dropdown:hover .install-btn { transition: max-height 0.25s ease-in; } - - +@media (max-width: 850px){ + body{ + padding: 0; + } + .container{ + width: 100%; + } + .line{ + display: block; + } + .item{ + width: 100%; + } +} + @media screen and (max-width: 576px) { .hero{ height: 50vh; From 573dd1d2d216ddd6f4b9a2bdbc45a5e77ac2a49e Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Sun, 26 May 2024 21:39:10 +0200 Subject: [PATCH 05/11] [DOC]install.html, install-1x.html, install-2x.html: reworking installation files --- index.html | 8 +- install-1x.html | 534 +++++++++++++++++++++++++++--------------------- install-2x.html | 532 +++++++++++++++++++++++++++-------------------- install.html | 385 ++++++++++++++++++++++++++++++++++ site.css | 51 +---- 5 files changed, 1007 insertions(+), 503 deletions(-) create mode 100644 install.html diff --git a/index.html b/index.html index cab2e13..9d98b65 100644 --- a/index.html +++ b/index.html @@ -68,13 +68,7 @@

        All your E-mail, from all your accounts, in one place

        father's webmail. Cypht (pronounced "sift") is like a news reader, but for E-mail. Cypht does not replace your existing accounts - it combines them into one. And it's also a news reader.

        - + Install
        diff --git a/install-1x.html b/install-1x.html index 31de968..57c098b 100644 --- a/install-1x.html +++ b/install-1x.html @@ -1,5 +1,6 @@ + @@ -9,74 +10,89 @@ + -
        - -
        + +
        -

        Installation

        +

        Install Cypht v1.4.x

        +

        You can install specific versions of Cypht:

        +

        + + + + + + + + Cypht v2.0.x + +

        Cypht has four differents installation ways:

          -
        • Manual installation
        • -
        • Installation within Tiki
        • -
        • install using Docker (use cypht docker image)
        • -
        • Install cypht on a YunoHost server
        • +
        • Manual installation
        • +
        • Installation within Tiki
        • +
        • install using Docker (use cypht docker image)
        • +
        • Install cypht on a YunoHost server

        Please read the bellow explanations about each way and pick one of your choice.


        1. Manual installation

        Requirements

        -

        Cypht requires at least PHP 5.6 for version 1.4.x, the upcoming Cypht 2.0 will require PHP 7.4,Composer 2, and at minimum the OpenSSL, Cypht 1.4.x requires at least PHP 5.6, Composer 2, and at minimum the + OpenSSL, mbstring and cURL extensions. Cypht can also leverage several other - extensions as defined in composer.json. - Testing is done on Debian and Ubuntu + extensions as defined in composer.json. + Testing is done on Debian and Ubuntu platforms with Nginx and Apache.

        Before proceeding please make sure your system meets minimal requirements

        @@ -94,18 +110,22 @@

        1. Check minimum requirements

        # List installed PHP extensions. at least OpenSSL, mbstring and cURL should be in the list php -m -

        -

        2. Download and prepare the code

        -

        It's important to consider where you put the Cypht source. The web-server will need read-only access to it, and - moving it from one place to another requires re-running the configuration script. Do NOT put the source in the - document root as this could create a security risk. On Debian, it's common to use the /usr/local/share/ - sub-directory for a situation like this. Here is short bash script that will download the latest code, setup the - correct permissions and ownership, put the source in /usr/local/share/cypht, and create a default hm3.ini file. - It requires sudo access: - - -

        -
        +        

        +

        2. Download and prepare the code

        +

        It's important to consider where you put the Cypht source. The web-server will need read-only access to it, + and + moving it from one place to another requires re-running the configuration script. Do NOT put the source in + the + document root as this could create a security risk. On Debian, it's common to use the /usr/local/share/ + sub-directory for a situation like this. Here is short bash script that will download the latest code, setup + the + correct permissions and ownership, put the source in /usr/local/share/cypht, and create a default hm3.ini + file. + It requires sudo access: + + +

        +
         #!/bin/bash
         
         # this is where Cypht will be installed
        @@ -144,174 +164,230 @@ 

        2. Download and prepare the code

        # remove working directory cd .. sudo rm -rf cypht-temp
        -

        3. Configure the program

        -

        To configure Cypht for your environment, you must first edit the hm3.ini file to your liking, then - run the config_gen.php script to generate the optimized configuration file and assets used at run-time.

        - -

        First edit the hm3.ini file to configure Cypht for your environment. If you choose to use a database for any of - the 3 available purposes (authentication, sessions, or user settings), you will need to complete the "DB - support" section and create the required tables. SQL to do so can be found in the hm3.sample.ini file. The ini - file has lots of comments explaining what each option does.

        - -

        Cypht needs read, and read-write access to a few directories on the server. For security reasons these should NOT - be inside the web-server document root. A good place for these is under the /var/lib/ sub-directory. Here are - the commands To create the required directories per the default values in the ini file (assuming your web-server - software runs as the "www-data" user).

        - -
        sudo mkdir /var/lib/hm3
        +        

        3. Configure the program

        +

        To configure Cypht for your environment, you must first edit the hm3.ini file to your liking, + then + run the config_gen.php script to generate the optimized configuration file and assets used at run-time.

        + +

        First edit the hm3.ini file to configure Cypht for your environment. If you choose to use a database for any + of + the 3 available purposes (authentication, sessions, or user settings), you will need to complete the "DB + support" section and create the required tables. SQL to do so can be found in the hm3.sample.ini file. The + ini + file has lots of comments explaining what each option does.

        + +

        Cypht needs read, and read-write access to a few directories on the server. For security reasons these should + NOT + be inside the web-server document root. A good place for these is under the /var/lib/ sub-directory. Here + are + the commands To create the required directories per the default values in the ini file (assuming your + web-server + software runs as the "www-data" user).

        + +
        sudo mkdir /var/lib/hm3
         sudo mkdir /var/lib/hm3/attachments
         sudo mkdir /var/lib/hm3/users
         sudo mkdir /var/lib/hm3/app_data
         sudo chown -R www-data /var/lib/hm3/
        -

        The "/var/lib/hm3/users" directory is only required if you are using the file-system and not a database to store - user settings (user_config_type = file in the hm3.ini). You can put these directories anywhere, just make sure - the values in the ini file point to the right place. -

        -

        4. Generate the run-time configuration

        -

        Cypht uses a build process to create an optimized configuration, and to combine and minimize page assets. Once - you have edited your hm3.ini file, generate the configuration with:

        - -
        cd /usr/local/share/cypht  (or wherever you put the code in section 1)
        +        

        The "/var/lib/hm3/users" directory is only required if you are using the file-system and not a database to + store + user settings (user_config_type = file in the hm3.ini). You can put these directories anywhere, just make + sure + the values in the ini file point to the right place. +

        +

        4. Generate the run-time configuration

        +

        Cypht uses a build process to create an optimized configuration, and to combine and minimize page assets. + Once + you have edited your hm3.ini file, generate the configuration with:

        + +
        cd /usr/local/share/cypht  (or wherever you put the code in section 1)
         sudo php ./scripts/config_gen.php
        -

        This will create a sub-directory called site that contains the code and page assets that need to be inside the - document root, and it creates an optimized configuration file called hm3.rc in the current directory. Anytime - you change the ini file settings, or move the source location, you will need to re-run the config_gen script to - update the program.

        - - -

        5. Enable the program in your web-server

        -

        The easiest way to serve Cypht is to symlink it to the web-server document root. You can also copy the generated - files to your web-server location, but then you will need to re-copy them anytime the config_gen script is run. - If the source is located at /usr/local/share/cypht, and the web-server document root is at /var/www/html, the - following command will make Cypht available under the "mail" path of the - web-server:

        - -
        sudo ln -s /usr/local/share/cypht/site /var/www/html/mail
        - -

        Now going to https://your-server/mail/ should load the Cypht login page. Note that If you use a symlink, your - web-server must be configured to follow symlinks.

        -

        6. Users

        -

        Setting up users depends on what type of authentication you configure in the hm3.ini file. If you are using the - local database configuration for users, there are scripts in the scripts/ directory to help manage them: -

        -# create an account
        -php ./scripts/create_account.php username password
        -
        -# delete an account
        -php ./scripts/delete_account.php username
        -
        -# change an account password
        -php ./scripts/update_password.php username password
        -

        -

        7. Debug mode

        -

        Cypht has a debug or developer mode that can be used to troubleshoot problems or enable faster development of - modules. To enable the debug version of Cypht, just sym-link the entire source directory instead of the site - sub-directory:

        - -
        sudo ln -s /usr/local/share/cypht /var/www/html/mail-debug
        - -

        Debug mode is not as efficient as the normal version, and it is NOT designed to be secure. DO NOT RUN DEBUG MODE - IN PRODUCTION. You have been warned! Debug mode outputs lots of information to the PHP error log that can be - useful for trouble-shooting problems. The location of the error log varies based on your php.ini settings and - web-server software.

        -

        8. Other INI files

        -

        Some Cypht modules require additional ini files to be configured. These should NOT be inside the web-server - document root. Cypht will look for them in the location defined by "app_data_dir" in the hm3.ini file. A sample - ini file for each module set that requires one is included in the source for that module. To configure them you - must copy the sample ini file to the "app_data_dir" and edit it for your setup. Some of these require - configuring your service with a provider, specifically ones related to Oauth2 client setup (Github, WordPress, - Oauth2 over IMAP for Gmail and Outlook). Re-run the config_gen script after configuring an ini file and it will - be merged into the main configuration settings. -

        - -

        2. Install cypht using Docker

        -

        - Using Docker is one of the easiest way to install cypht as the cypht docker image comes with all the steps required in the manual instalation done for you. But the bad news is that this instllation way requires docker knowledge.
        - Here is the cypht docker repository: https://hub.docker.com/r/sailfrog/cypht-docker
        - To run containers required by cypht, please, first make sure you have docker and docker-compose installed on your system, then take a look on the section "exemple docker-compose" of repository overview, then do the following: -

        -
          -
        • Create a new directory on your system named as you want.
        • -
        • In the directory created previously, create a file named "docker-compose.yaml"
        • -
        • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command to run containers
          docker-compose up -d
        • -
        • After containers started, you can access cypht on port 80 of your host if you didn't change the port value in the docker-compose file.
        • -
        -

        - NOTE: Please change usernames and passwords before using the given docker-compose code in your production environment. -

        - -

        3. Install Cypht on a YunoHost server

        -

        This is an other easy way of installing and use Cypht.
        - YunoHost is an operating system that aims to simplify server administration as much as possible to democratize self-hosting while remaining reliable, - secure, ethical and lightweight. It is a free software project owned exclusively by volunteers. Technically, it can be seen as a distribution based on - Debian GNU/Linux and can be installed on many types of hardware.
        - To learn more about YunoHost, visit https://yunohost.org/en/whatsyunohost -

        -

        To install Cypht on YunoHost, please follow these steps:

        -
          -
        • If you don't have an installed YunoHost server, please consult the guide to learn how to install it. If you have it, please go directly to the next step.
        • -
        • If you just installed YunoHost or had it installed before, access your server and go to the admin dashboard, then click on "Applications"
        • -
        • In the next page, click on the "install" button
        • -
        • In the search area, enter "cypht"
        • -
        • In the search result, click on cypht app
        • -
        • Scroll down, then fill in the form according to your need or keep the default values, then clik on the "install" button. Note: Make sure the url value is not - used by another app on the server or in case you have another cypht instance previously installed you have to modify it instead of using the default valuue. -
        • -
        • Once clicked on the "install" button, wait for the installation to complete, it may take while.
        • -
        • Once the installation completed, you will be taking back to the dashboard.
        • -
        • To open the app, click on the app recently installed and then on the "open the app" button, then the application opens in a new tab.
        • -
        • Enter the username and admin password you've provided previously in the installation form and then click on the login button to enter cypht and start configuring your email accounts.
        • -
        -

        4. Install Cypht within Tiki

        -

        If you have tiki installed, you can use Cypht within tiki. This is an easy way of installing Cypht.
        - Please follow the following link for a complete guide of how to install and use cypht within Tiki.
        - https://doc.tiki.org/Webmail -


        -

        Having problems?

        - I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason@cypht.org and I will get back to you as soon as I can. -
        - - +

        This will create a sub-directory called site that contains the code and page assets that need to be inside + the + document root, and it creates an optimized configuration file called hm3.rc in the current directory. + Anytime + you change the ini file settings, or move the source location, you will need to re-run the config_gen script + to + update the program.

        + + +

        5. Enable the program in your web-server

        +

        The easiest way to serve Cypht is to symlink it to the web-server document root. You can also copy the + generated + files to your web-server location, but then you will need to re-copy them anytime the config_gen script is + run. + If the source is located at /usr/local/share/cypht, and the web-server document root is at /var/www/html, + the + following command will make Cypht available under the "mail" path of the + web-server:

        + +
        sudo ln -s /usr/local/share/cypht/site /var/www/html/mail
        + +

        Now going to https://your-server/mail/ should load the Cypht login page. Note that If you use a symlink, your + web-server must be configured to follow symlinks.

        +

        6. Users

        +

        Setting up users depends on what type of authentication you configure in the hm3.ini file. If you are using + the + local database configuration for users, there are scripts in the scripts/ directory to help manage them: +

        +            # create an account
        +            php ./scripts/create_account.php username password
        +
        +            # delete an account
        +            php ./scripts/delete_account.php username
        +
        +            # change an account password
        +            php ./scripts/update_password.php username password
        +        
        +

        +

        7. Debug mode

        +

        Cypht has a debug or developer mode that can be used to troubleshoot problems or enable faster development of + modules. To enable the debug version of Cypht, just sym-link the entire source directory instead of the site + sub-directory:

        + +
        sudo ln -s /usr/local/share/cypht /var/www/html/mail-debug
        + +

        Debug mode is not as efficient as the normal version, and it is NOT designed to be secure. DO NOT RUN DEBUG + MODE + IN PRODUCTION. You have been warned! Debug mode outputs lots of information to the PHP error log that can be + useful for trouble-shooting problems. The location of the error log varies based on your php.ini settings + and + web-server software.

        +

        8. Other INI files

        +

        Some Cypht modules require additional ini files to be configured. These should NOT be inside the web-server + document root. Cypht will look for them in the location defined by "app_data_dir" in the hm3.ini file. A + sample + ini file for each module set that requires one is included in the source for that module. To configure them + you + must copy the sample ini file to the "app_data_dir" and edit it for your setup. Some of these require + configuring your service with a provider, specifically ones related to Oauth2 client setup (Github, + WordPress, + Oauth2 over IMAP for Gmail and Outlook). Re-run the config_gen script after configuring an ini file and it + will + be merged into the main configuration settings. +

        + +

        2. Install cypht using Docker

        +

        + Using Docker is one of the easiest way to install cypht as the cypht docker image comes with all the steps + required in the manual instalation done for you. But the bad news is that this instllation way requires + docker knowledge.
        + Here is the cypht docker repository: https://hub.docker.com/r/sailfrog/cypht-docker
        + To run containers required by cypht, please, first make sure you have docker and docker-compose installed on + your system, then take a look on the section "exemple docker-compose" of repository overview, then do the + following: +

        +
          +
        • Create a new directory on your system named as you want.
        • +
        • In the directory created previously, create a file named "docker-compose.yaml"
        • +
        • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command + to run containers +
          docker-compose up -d
          +
        • +
        • After containers started, you can access cypht on port 80 of your host if you didn't change the port + value in the docker-compose file.
        • +
        +

        + NOTE: Please change usernames and passwords before using the given docker-compose code in your production + environment. +

        + +

        3. Install Cypht on a YunoHost server

        +

        This is an other easy way of installing and use Cypht.
        + YunoHost is an operating system that aims to simplify server administration as much as possible to + democratize self-hosting while remaining reliable, + secure, ethical and lightweight. It is a free software project owned exclusively by volunteers. Technically, + it can be seen as a distribution based on + Debian GNU/Linux and can be installed on many types of hardware.
        + To learn more about YunoHost, visit https://yunohost.org/en/whatsyunohost +

        +

        To install Cypht on YunoHost, please follow these steps:

        +
          +
        • If you don't have an installed YunoHost server, please consult the guide to learn how to install it. If you have it, + please go directly to the next step.
        • +
        • If you just installed YunoHost or had it installed before, access your server and go to the admin + dashboard, then click on "Applications"
        • +
        • In the next page, click on the "install" button
        • +
        • In the search area, enter "cypht"
        • +
        • In the search result, click on cypht app
        • +
        • Scroll down, then fill in the form according to your need or keep the default values, then clik on the + "install" button. Note: Make sure the url value is not + used by another app on the server or in case you have another cypht instance previously installed you + have to modify it instead of using the default valuue. +
        • +
        • Once clicked on the "install" button, wait for the installation to complete, it may take while.
        • +
        • Once the installation completed, you will be taking back to the dashboard.
        • +
        • To open the app, click on the app recently installed and then on the "open the app" button, then the + application opens in a new tab.
        • +
        • Enter the username and admin password you've provided previously in the installation form and then click + on the login button to enter cypht and start configuring your email accounts.
        • +
        +

        4. Install Cypht within Tiki

        +

        If you have tiki installed, you can use Cypht within tiki. This is an easy way of installing Cypht.
        + Please follow the following link for a complete guide of how to install and use cypht within Tiki.
        + https://doc.tiki.org/Webmail +


        +

        Having problems?

        + I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason@cypht.org and I will get back to you as soon as I can. +
        + + - + + \ No newline at end of file diff --git a/install-2x.html b/install-2x.html index 2e5582a..af4b490 100644 --- a/install-2x.html +++ b/install-2x.html @@ -1,102 +1,127 @@ - - - - Install - - - - - - -
        - -
        - -
        -

        Installation

        -

        Cypht has four differents installation ways:

        -
          -
        • Manual installation
        • -
        • Installation within Tiki
        • -
        • install using Docker (use cypht docker image)
        • -
        • Install cypht on a YunoHost server
        • -
        -

        Please read the bellow explanations about each way and pick one of your choice.

        -
        -

        1. Manual installation

        - -

        Requirements

        -

        Cypht requires at least PHP 5.6 for version 1.4.x, the Cypht 2.0 will require PHP 7.4,Composer 2, and at minimum the OpenSSL, mbstring and cURL extensions. Cypht can also leverage several other - extensions as defined in composer.json. - Testing is done on Debian and Ubuntu - platforms with Nginx and Apache. -

        -

        Before proceeding please make sure your system meets minimal requirements

        -

        Steps

        -

        1. Check minimum requirements

        -

        -

        +
        +
        +  
        +  
        +  Install
        +  
        +  
        +  
        +  
        +
        +
        +
        +  
        + +
        + +
        +

        Install Cypht v2.0.x

        +

        You can install specific versions of Cypht:

        +

        + + + + + + + + Cypht v2.0.x + +

        +

        Cypht has four differents installation ways:

        +
          +
        • Manual installation
        • +
        • Installation within Tiki
        • +
        • install using Docker (use cypht docker image)
        • +
        • Install cypht on a YunoHost server
        • +
        +

        Please read the bellow explanations about each way and pick one of your choice.

        +
        +

        1. Manual installation

        + +

        Requirements

        +

        Cypht 2.0.x requires at least PHP 7.4,Composer 2, and at minimum the OpenSSL, mbstring and cURL extensions. Cypht can also leverage several other + extensions as defined in composer.json. + Testing is done on Debian and Ubuntu + platforms with Nginx and Apache. +

        +

        Before proceeding please make sure your system meets minimal requirements

        +

        Steps

        +

        1. Check minimum requirements

        +

        +

         #!/bin/bash
         
        -# You need to check php version which should be >=5.6
        +# You need to check php version which should be >=7.4
         php --version
         
         # Next you need to check composer version which should be >=2.0.0
         composer --version
         
         # List installed PHP extensions. at least OpenSSL, mbstring and cURL should be in the list
        -php -m

        -

        2. Download and prepare the code

        -

        It's important to consider where you put the Cypht source. The web-server will need read-only access to it, and moving it from one place to another requires re-running the configuration script. Do NOT put the source in the document root as this could create a security risk. On Debian, it's common to use the /usr/local/share/ sub-directory for a situation like this. Here is short bash script that will download the latest code, setup the correct permissions and ownership, put the source in /usr/local/share/cypht, and create a default .env file. It requires sudo access: - - -

        +php -m
        +

        +

        2. Download and prepare the code

        +

        It's important to consider where you put the Cypht source. The web-server will need read-only access to it, and + moving it from one place to another requires re-running the configuration script. Do NOT put the source in the + document root as this could create a security risk. On Debian, it's common to use the /usr/local/share/ + sub-directory for a situation like this. Here is short bash script that will download the latest code, setup the + correct permissions and ownership, put the source in /usr/local/share/cypht, and create a default .env file. It + requires sudo access: + + +

        +
         #!/bin/bash
         
         # this is where Cypht will be installed
        @@ -146,140 +171,211 @@ 

        2. Download and prepare the code

        sudo rm -rf cypht-temp
        -

        3. Configure the program

        -

        To configure Cypht for your environment, make adjustments to the .env file according to your preferences. The .env file serves as the primary configuration file.

        - -

        First edit the .env file to configure Cypht for your environment. If you choose to leverage a database for authentication, sessions, or user settings, ensure to complete the relevant sections within the .env file based on the information provided in the config/app.php file.

        - -

        The necessary SQL commands for creating tables can be found in the config/app.php file, specifically starting from line 617 in the "DB Sessions" section.

        - -

        Cypht needs read, and read-write access to a few directories on the server. For security reasons these should NOT be inside the web-server document root. A good place for these is under the /var/lib/ sub-directory. Here are the commands To create the required directories per the default values in the ini file (assuming your web-server software runs as the "www-data" user).

        - -
        sudo mkdir /var/lib/hm3
        -sudo mkdir /var/lib/hm3/attachments
        -sudo mkdir /var/lib/hm3/users
        -sudo mkdir /var/lib/hm3/app_data
        -
        -sudo chown -R www-data /var/lib/hm3/
        +    

        3. Configure the program

        +

        To configure Cypht for your environment, make adjustments to the .env file according to your preferences. + The .env file serves as the primary configuration file.

        + +

        First edit the .env file to configure Cypht for your environment. If you choose to leverage a database for + authentication, sessions, or user settings, ensure to complete the relevant sections within the .env file based on + the information provided in the config/app.php file.

        + +

        The necessary SQL commands for creating tables can be found in the config/app.php file, specifically starting + from line 617 in the "DB Sessions" section.

        + +

        Cypht needs read, and read-write access to a few directories on the server. For security reasons these should NOT + be inside the web-server document root. A good place for these is under the /var/lib/ sub-directory. Here are the + commands To create the required directories per the default values in the ini file (assuming your web-server + software runs as the "www-data" user).

        + +
        +          sudo mkdir /var/lib/hm3
        +          sudo mkdir /var/lib/hm3/attachments
        +          sudo mkdir /var/lib/hm3/users
        +          sudo mkdir /var/lib/hm3/app_data
        +
        +          sudo chown -R www-data /var/lib/hm3/
               
        -

        The /var/lib/hm3/users directory is only required if you are using the file-system and not a database to store user settings (user_config_type = file in the .env). You can put these directories anywhere, just make sure the values in the ini file point to the right place. -

        -

        4. Generate Dynamic Run-Time Configuration

        -

        Cypht utilizes a build process to create an optimized configuration and to combine and minimize page assets. Previously, after editing the hm3.ini file, the configuration and asset minimization were generated using the following steps:

        - -
        cd /usr/local/share/cypht  (or wherever you put the code in section 1)
        +    

        The /var/lib/hm3/users directory is only required if you are using the file-system and not a database to store + user settings (user_config_type = file in the .env). You can put these directories anywhere, just make sure the + values in the ini file point to the right place. +

        +

        4. Generate Dynamic Run-Time Configuration

        +

        Cypht utilizes a build process to create an optimized configuration and to combine and minimize page assets. + Previously, after editing the hm3.ini file, the configuration and asset minimization were generated using the + following steps:

        + +
        cd /usr/local/share/cypht  (or wherever you put the code in section 1)
         sudo php ./scripts/config_gen.php
        -

        Recent updates have streamlined the process, and running the command above will now specifically generate the config/dynamic.php file. This file incorporates dynamic configurations, including 'handler_modules,' 'output_modules,' and 'input_filters.' Furthermore, the command continues to optimize the configuration and combine/minimize page assets, ensuring efficient runtime operation.

        +

        Recent updates have streamlined the process, and running the command above will now specifically generate the + config/dynamic.php file. This file incorporates dynamic configurations, including 'handler_modules,' + 'output_modules,' and 'input_filters.' Furthermore, the command continues to optimize the configuration and + combine/minimize page assets, ensuring efficient runtime operation.

        -

        Additionally, executing this command will create a sub-directory called 'site' that contains the code and page assets required within the document root. If you ever relocate the source location, you'll need to re-run the config_gen script to update the program.

        +

        Additionally, executing this command will create a sub-directory called 'site' that contains the code and page + assets required within the document root. If you ever relocate the source location, you'll need to re-run the + config_gen script to update the program.

        -

        5. Enable the program in your web-server

        -

        The easiest way to serve Cypht is to symlink it to the web-server document root. You can also copy the generated files to your web-server location, but then you will need to re-copy them anytime the config_gen script is run. If the source is located at /usr/local/share/cypht, and the web-server document root is at /var/www/html, the following command will make Cypht available under the "mail" path of the +

        5. Enable the program in your web-server

        +

        The easiest way to serve Cypht is to symlink it to the web-server document root. You can also copy the generated + files to your web-server location, but then you will need to re-copy them anytime the config_gen script is run. If + the source is located at /usr/local/share/cypht, and the web-server document root is at /var/www/html, the + following command will make Cypht available under the "mail" path of the web-server:

        -
        sudo ln -s /usr/local/share/cypht/site /var/www/html/mail
        - -

        Now going to https://your-server/mail/ should load the Cypht login page. Note that If you use a symlink, your web-server must be configured to follow symlinks.

        -

        6. Users

        -

        Setting up users depends on what type of authentication you configure in the config/app.php file. If you are using the local database configuration for users, there are scripts in the scripts/ directory to help manage them: -

        -# create an account
        -php ./scripts/create_account.php username password
        -
        -# delete an account
        -php ./scripts/delete_account.php username
        -
        -# change an account password
        -php ./scripts/update_password.php username password
        -

        -

        7. Debug mode

        -

        Cypht has a debug or developer mode that can be used to troubleshoot problems or enable faster development of modules. To enable the debug version of Cypht, just sym-link the entire source directory instead of the site sub-directory:

        - -
        sudo ln -s /usr/local/share/cypht /var/www/html/mail-debug
        - -

        Debug mode is not as efficient as the normal version, and it is NOT designed to be secure. DO NOT RUN DEBUG MODE IN PRODUCTION. You have been warned! Debug mode outputs lots of information to the PHP error log that can be useful for trouble-shooting problems. The location of the error log varies based on your php.ini settings and web-server software.

        -

        8. Other Configs files

        -

        Some Cypht modules necessitate additional configuration files for proper setup. It is crucial that these files are NOT located within the web-server document root. Certain modules may require configuration with a service provider, particularly those related to Oauth2 client setup (such as Github, WordPress, Oauth2 over IMAP for Gmail, and Outlook). After configuring related files, there is no need to rerun the config_gen script; the changes will be automatically merged into the main configuration settings.Alternatively, you can clear your app cache. -

        - -

        2. Install cypht using Docker

        -

        - Using Docker is one of the easiest way to install cypht as the cypht docker image comes with all the steps required in the manual instalation done for you. But the bad news is that this instllation way requires docker knowledge.
        - Here is the cypht docker repository: https://hub.docker.com/r/sailfrog/cypht-docker
        - To run containers required by cypht, please, first make sure you have docker and docker-compose installed on your system, then take a look on the section "exemple docker-compose" of repository overview, then do the following: -

        -
          -
        • Create a new directory on your system named as you want.
        • -
        • In the directory created previously, create a file named "docker-compose.yaml"
        • -
        • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command to run containers
          docker-compose up -d
        • -
        • After containers started, you can access cypht on port 80 of your host if you didn't change the port value in the docker-compose file.
        • -
        -

        - NOTE: Please change usernames and passwords before using the given docker-compose code in your production environment. -

        - -

        3. Install Cypht on a YunoHost server

        -

        This is an other easy way of installing and use Cypht.
        - YunoHost is an operating system that aims to simplify server administration as much as possible to democratize self-hosting while remaining reliable, - secure, ethical and lightweight. It is a free software project owned exclusively by volunteers. Technically, it can be seen as a distribution based on - Debian GNU/Linux and can be installed on many types of hardware.
        - To learn more about YunoHost, visit https://yunohost.org/en/overview/what_is_yunohost -

        -

        To install Cypht on YunoHost, please follow these steps:

        -
          -
        • If you don't have an installed YunoHost server, please consult the guide to learn how to install it. If you have it, please go directly to the next step.
        • -
        • If you just installed YunoHost or had it installed before, access your server and go to the admin dashboard, then click on "Applications"
        • -
        • In the next page, click on the "install" button
        • -
        • In the search area, enter "cypht"
        • -
        • In the search result, click on cypht app
        • -
        • Scroll down, then fill in the form according to your need or keep the default values, then clik on the "install" button. Note: Make sure the url value is not - used by another app on the server or in case you have another cypht instance previously installed you have to modify it instead of using the default valuue. -
        • -
        • Once clicked on the "install" button, wait for the installation to complete, it may take while.
        • -
        • Once the installation completed, you will be taking back to the dashboard.
        • -
        • To open the app, click on the app recently installed and then on the "open the app" button, then the application opens in a new tab.
        • -
        • Enter the username and admin password you've provided previously in the installation form and then click on the login button to enter cypht and start configuring your email accounts.
        • -
        -

        4. Install Cypht within Tiki

        -

        If you have tiki installed, you can use Cypht within tiki. This is an easy way of installing Cypht.
        - Please follow the following link for a complete guide of how to install and use cypht within Tiki.
        - https://doc.tiki.org/Webmail -


        - -

        Having problems?

        - I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason [at] cypht [dot] org and I will get back to you as soon as I can. -
        - - - - +
        sudo ln -s /usr/local/share/cypht/site /var/www/html/mail
        + +

        Now going to https://your-server/mail/ should load the Cypht login page. Note that If you use a symlink, your + web-server must be configured to follow symlinks.

        +

        6. Users

        +

        Setting up users depends on what type of authentication you configure in the config/app.php file. If you are + using the local database configuration for users, there are scripts in the scripts/ directory to help manage them: +

        +        # create an account
        +        php ./scripts/create_account.php username password
        +
        +        # delete an account
        +        php ./scripts/delete_account.php username
        +
        +        # change an account password
        +        php ./scripts/update_password.php username password
        +    
        +

        +

        7. Debug mode

        +

        Cypht has a debug or developer mode that can be used to troubleshoot problems or enable faster development of + modules. To enable the debug version of Cypht, just sym-link the entire source directory instead of the site + sub-directory:

        + +
        sudo ln -s /usr/local/share/cypht /var/www/html/mail-debug
        + +

        Debug mode is not as efficient as the normal version, and it is NOT designed to be secure. DO NOT RUN DEBUG MODE + IN PRODUCTION. You have been warned! Debug mode outputs lots of information to the PHP error log that can be + useful for trouble-shooting problems. The location of the error log varies based on your php.ini settings and + web-server software.

        +

        8. Other Configs files

        +

        Some Cypht modules necessitate additional configuration files for proper setup. It is crucial that these files + are NOT located within the web-server document root. Certain modules may require configuration with a service + provider, particularly those related to Oauth2 client setup (such as Github, WordPress, Oauth2 over IMAP for + Gmail, and Outlook). After configuring related files, there is no need to rerun the config_gen script; the changes + will be automatically merged into the main configuration settings.Alternatively, you can clear your app cache. +

        + +

        2. Install cypht using Docker

        +

        + Using Docker is one of the easiest way to install cypht as the cypht docker image comes with all the steps + required in the manual instalation done for you. But the bad news is that this instllation way requires docker + knowledge.
        + Here is the cypht docker repository: https://hub.docker.com/r/sailfrog/cypht-docker
        + To run containers required by cypht, please, first make sure you have docker and docker-compose installed on your + system, then take a look on the section "exemple docker-compose" of repository overview, then do the following: +

        +
          +
        • Create a new directory on your system named as you want.
        • +
        • In the directory created previously, create a file named "docker-compose.yaml"
        • +
        • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command to + run containers +
          docker-compose up -d
          +
        • +
        • After containers started, you can access cypht on port 80 of your host if you didn't change the port value in + the docker-compose file.
        • +
        +

        + NOTE: Please change usernames and passwords before using the given docker-compose code in your production + environment. +

        + +

        3. Install Cypht on a YunoHost server

        +

        This is an other easy way of installing and use Cypht.
        + YunoHost is an operating system that aims to simplify server administration as much as possible to democratize + self-hosting while remaining reliable, + secure, ethical and lightweight. It is a free software project owned exclusively by volunteers. Technically, it + can be seen as a distribution based on + Debian GNU/Linux and can be installed on many types of hardware.
        + To learn more about YunoHost, visit https://yunohost.org/en/overview/what_is_yunohost +

        +

        To install Cypht on YunoHost, please follow these steps:

        +
          +
        • If you don't have an installed YunoHost server, please consult the + guide to learn how to install it. If you have it, please go directly to the next step.
        • +
        • If you just installed YunoHost or had it installed before, access your server and go to the admin dashboard, + then click on "Applications"
        • +
        • In the next page, click on the "install" button
        • +
        • In the search area, enter "cypht"
        • +
        • In the search result, click on cypht app
        • +
        • Scroll down, then fill in the form according to your need or keep the default values, then clik on the + "install" button. Note: Make sure the url value is not + used by another app on the server or in case you have another cypht instance previously installed you have to + modify it instead of using the default valuue. +
        • +
        • Once clicked on the "install" button, wait for the installation to complete, it may take while.
        • +
        • Once the installation completed, you will be taking back to the dashboard.
        • +
        • To open the app, click on the app recently installed and then on the "open the app" button, then the + application opens in a new tab.
        • +
        • Enter the username and admin password you've provided previously in the installation form and then click on + the login button to enter cypht and start configuring your email accounts.
        • +
        +

        4. Install Cypht within Tiki

        +

        If you have tiki installed, you can use Cypht within tiki. This is an easy way of installing Cypht.
        + Please follow the following link for a complete guide of how to install and use cypht within Tiki.
        + https://doc.tiki.org/Webmail +


        + +

        Having problems?

        + I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason [at] cypht [dot] org and I will get back to you as soon as I can. +
        + + + + + \ No newline at end of file diff --git a/install.html b/install.html new file mode 100644 index 0000000..f7c8429 --- /dev/null +++ b/install.html @@ -0,0 +1,385 @@ + + + + + + + Install + + + + + + + +
        + +
        + +
        +

        Install Cypht master

        +

        You can install specific versions of Cypht:

        +

        + + + + + + + + Cypht v2.0.x + +

        +

        Cypht has four differents installation ways:

        +
          +
        • Manual installation
        • +
        • Installation within Tiki
        • +
        • install using Docker (use cypht docker image)
        • +
        • Install cypht on a YunoHost server
        • +
        +

        Please read the bellow explanations about each way and pick one of your choice.

        +
        +

        1. Manual installation

        +

        Requirements

        +

        Cypht master requires at least PHP 7.4, Composer 2, and at minimum the + OpenSSL, mbstring and cURL extensions. Cypht can also leverage several other + extensions as defined in composer.json. + Testing is done on Debian and Ubuntu + platforms with Nginx and Apache. +

        +

        Before proceeding please make sure your system meets minimal requirements

        +

        Steps

        +

        1. Check minimum requirements

        +

        +

        +            #!/bin/bash
        +
        +            # You need to check php version which should be >=7.4
        +            php --version
        +
        +            # Next you need to check composer version which should be >=2.0.0
        +            composer --version
        +
        +            # List installed PHP extensions. at least OpenSSL, mbstring and cURL should be in the list
        +            php -m
        +        
        +

        +

        2. Download and prepare the code

        +

        It's important to consider where you put the Cypht source. The web-server will need read-only access to it, + and + moving it from one place to another requires re-running the configuration script. Do NOT put the source in + the + document root as this could create a security risk. On Debian, it's common to use the /usr/local/share/ + sub-directory for a situation like this. Here is short bash script that will download the latest code, setup + the + correct permissions and ownership, put the source in /usr/local/share/cypht, and create a default .env file. + It requires sudo access: + + +

        +
        +#!/bin/bash
        +
        +# this is where Cypht will be installed
        +DESTINATION="/usr/local/share/cypht"
        +
        +# validate the destination directory
        +sudo test -r $DESTINATION -a -x $DESTINATION
        +if [ $? -ne 0 ]; then
        +    sudo mkdir $DESTINATION
        +fi
        +
        +# create working directory
        +mkdir cypht-temp
        +cd cypht-temp
        +
        +# grab latest code
        +wget https://github.com/cypht-org/cypht/archive/master.zip
        +
        +# unpack the archive
        +unzip master.zip
        +
        +# run composer
        +cd cypht-master && composer install && cd ..
        +
        +# create a vanilla ini file
        +cp cypht-master/.env.example.ini cypht-master/.env
        +
        +# fix permissions and ownership
        +find cypht-master -type d -print | xargs chmod 755
        +find cypht-master -type f -print | xargs chmod 644
        +sudo chown -R root:root cypht-master
        +
        +# copy to destination folder
        +sudo mv cypht-master/* $DESTINATION
        +
        +# remove working directory
        +cd ..
        +sudo rm -rf cypht-temp
        +

        3. Configure the program

        +

        To configure Cypht for your environment, make adjustments to the .env file according to your + preferences. The .env file serves as the primary configuration file.

        + +

        First edit the .env file to configure Cypht for your environment. If you choose to leverage a database for + authentication, sessions, or user settings, ensure to complete the relevant sections within the .env file + based on the information provided in the config/app.php file.

        + +

        The necessary SQL commands for creating tables can be found in the config/app.php file, specifically starting + from line 617 in the "DB Sessions" section.

        + +

        Cypht needs read, and read-write access to a few directories on the server. For security reasons these should + NOT be inside the web-server document root. A good place for these is under the /var/lib/ sub-directory. + Here are the commands To create the required directories per the default values in the ini file (assuming + your web-server software runs as the "www-data" user).

        + +
        sudo mkdir /var/lib/hm3
        +sudo mkdir /var/lib/hm3/attachments
        +sudo mkdir /var/lib/hm3/users
        +sudo mkdir /var/lib/hm3/app_data
        +sudo chown -R www-data /var/lib/hm3/
        +

        The "/var/lib/hm3/users" directory is only required if you are using the file-system and not a database to + store + user settings (user_config_type = file in the .env). You can put these directories anywhere, just make sure + the values in the ini file point to the right place. +

        +

        4. Generate the run-time configuration

        +

        Cypht uses a build process to create an optimized configuration, and to combine and minimize page assets. + Once + you have edited your .env file, generate the configuration with:

        + +
        cd /usr/local/share/cypht  (or wherever you put the code in section 1)
        +sudo php ./scripts/config_gen.php
        + +

        This will create a sub-directory called site that contains the code and page assets that need to be inside + the + document root, and it creates an optimized configuration file called hm3.rc in the current directory. + Anytime + you change the ini file settings, or move the source location, you will need to re-run the config_gen script + to + update the program.

        + + +

        5. Enable the program in your web-server

        +

        The easiest way to serve Cypht is to symlink it to the web-server document root. You can also copy the + generated + files to your web-server location, but then you will need to re-copy them anytime the config_gen script is + run. + If the source is located at /usr/local/share/cypht, and the web-server document root is at /var/www/html, + the + following command will make Cypht available under the "mail" path of the + web-server:

        + +
        sudo ln -s /usr/local/share/cypht/site /var/www/html/mail
        + +

        Now going to https://your-server/mail/ should load the Cypht login page. Note that If you use a symlink, your + web-server must be configured to follow symlinks.

        +

        6. Users

        +

        Setting up users depends on what type of authentication you configure in the .env file. If you are using the + local database configuration for users, there are scripts in the scripts/ directory to help manage them: +

        +# create an account
        +php ./scripts/create_account.php username password
        +
        +# delete an account
        +php ./scripts/delete_account.php username
        +
        +# change an account password
        +php ./scripts/update_password.php username password
        +

        +

        7. Debug mode

        +

        Cypht has a debug or developer mode that can be used to troubleshoot problems or enable faster development of + modules. To enable the debug version of Cypht, just sym-link the entire source directory instead of the site + sub-directory:

        + +
        sudo ln -s /usr/local/share/cypht /var/www/html/mail-debug
        + +

        Debug mode is not as efficient as the normal version, and it is NOT designed to be secure. DO NOT RUN DEBUG + MODE + IN PRODUCTION. You have been warned! Debug mode outputs lots of information to the PHP error log that can be + useful for trouble-shooting problems. The location of the error log varies based on your php.ini settings + and + web-server software.

        +

        8. Other INI files

        +

        Some Cypht modules require additional ini files to be configured. These should NOT be inside the web-server + document root. Cypht will look for them in the location defined by "app_data_dir" in the .env file. A sample + ini file for each module set that requires one is included in the source for that module. To configure them + you + must copy the sample ini file to the "app_data_dir" and edit it for your setup. Some of these require + configuring your service with a provider, specifically ones related to Oauth2 client setup (Github, + WordPress, + Oauth2 over IMAP for Gmail and Outlook). Re-run the config_gen script after configuring an ini file and it + will + be merged into the main configuration settings. +

        + +

        2. Install cypht using Docker

        +

        + Using Docker is one of the easiest way to install cypht as the cypht docker image comes with all the steps + required in the manual instalation done for you. But the bad news is that this instllation way requires + docker knowledge.
        + Here is the cypht docker repository: https://hub.docker.com/r/sailfrog/cypht-docker
        + To run containers required by cypht, please, first make sure you have docker and docker-compose installed on + your system, then take a look on the section "exemple docker-compose" of repository overview, then do the + following: +

        +
          +
        • Create a new directory on your system named as you want.
        • +
        • In the directory created previously, create a file named "docker-compose.yaml"
        • +
        • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command + to run containers +
          docker-compose up -d
          +
        • +
        • After containers started, you can access cypht on port 80 of your host if you didn't change the port + value in the docker-compose file.
        • +
        +

        + NOTE: Please change usernames and passwords before using the given docker-compose code in your production + environment. +

        + +

        3. Install Cypht on a YunoHost server

        +

        This is an other easy way of installing and use Cypht.
        + YunoHost is an operating system that aims to simplify server administration as much as possible to + democratize self-hosting while remaining reliable, + secure, ethical and lightweight. It is a free software project owned exclusively by volunteers. Technically, + it can be seen as a distribution based on + Debian GNU/Linux and can be installed on many types of hardware.
        + To learn more about YunoHost, visit https://yunohost.org/en/whatsyunohost +

        +

        To install Cypht on YunoHost, please follow these steps:

        +
          +
        • If you don't have an installed YunoHost server, please consult the guide to learn how to install it. If you have it, + please go directly to the next step.
        • +
        • If you just installed YunoHost or had it installed before, access your server and go to the admin + dashboard, then click on "Applications"
        • +
        • In the next page, click on the "install" button
        • +
        • In the search area, enter "cypht"
        • +
        • In the search result, click on cypht app
        • +
        • Scroll down, then fill in the form according to your need or keep the default values, then clik on the + "install" button. Note: Make sure the url value is not + used by another app on the server or in case you have another cypht instance previously installed you + have to modify it instead of using the default valuue. +
        • +
        • Once clicked on the "install" button, wait for the installation to complete, it may take while.
        • +
        • Once the installation completed, you will be taking back to the dashboard.
        • +
        • To open the app, click on the app recently installed and then on the "open the app" button, then the + application opens in a new tab.
        • +
        • Enter the username and admin password you've provided previously in the installation form and then click + on the login button to enter cypht and start configuring your email accounts.
        • +
        +

        4. Install Cypht within Tiki

        +

        If you have tiki installed, you can use Cypht within tiki. This is an easy way of installing Cypht.
        + Please follow the following link for a complete guide of how to install and use cypht within Tiki.
        + https://doc.tiki.org/Webmail +


        +

        Having problems?

        + I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason@cypht.org and I will get back to you as soon as I can. +
        + + + + + \ No newline at end of file diff --git a/site.css b/site.css index bd0c238..d7a8d27 100644 --- a/site.css +++ b/site.css @@ -1067,8 +1067,8 @@ header { } .example_d:hover { - color: #fff !important; - border: 2px solid #fff !important; + color: #eee !important; + border-color: #eee !important; border-radius: 50px; transition: all 0.3s ease 0s; } @@ -1299,53 +1299,6 @@ html,body{ z-index: 10000; } -.install-btn { - background-color: transparent; - padding: 16px; - font-size: 16px; - border: none; - cursor: pointer; - min-width: 160px; - } - - .dropdown { - position: relative; - display: inline-block; - } - - .dropdown-content { - position: absolute; - background-color: #f9f9f9; - box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); - z-index: 98; - max-height: 0; - min-width: 160px; - transition: max-height 0.15s ease-out; - overflow: hidden; - margin-left: 11px; - } - - .dropdown-content a { - color: black; - background-color: #f9f9f9; - padding: 12px 16px; - text-decoration: none; - display: block; - } - - .dropdown-content a:hover { - background-color: #e2e2e2; - } - - .dropdown:hover .dropdown-content { - max-height: 500px; - min-width: 160px; - transition: max-height 0.25s ease-in; - } - - .dropdown:hover .install-btn { - transition: max-height 0.25s ease-in; - } @media (max-width: 850px){ body{ padding: 0; From d4016f63aa65bb23f8b5ce37d20372078074f18c Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Mon, 27 May 2024 12:05:31 +0200 Subject: [PATCH 06/11] [UX]Buttons (with class btn-success): adding 0.3125rem argin to the top, right, bottom, and left sides --- site.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site.css b/site.css index d7a8d27..bf03641 100644 --- a/site.css +++ b/site.css @@ -494,7 +494,8 @@ a.btn.disabled { .btn-success { color: #fff; background-color: #28a745; - border-color: #28a745 + border-color: #28a745; + margin: 0.3125rem 0.3125rem 0.3125rem 0.3125rem; /* top, right, bottom, left */ } .btn-success:hover { From 47d69f56c7677b9e4bce596b36d2fb369ad8fcd6 Mon Sep 17 00:00:00 2001 From: Rodriguez Nyiringabo Date: Mon, 27 May 2024 20:02:27 +0200 Subject: [PATCH 07/11] [UPD] Update docker repository url to the new cypht official repository --- install-2x.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install-2x.html b/install-2x.html index af4b490..33fc722 100644 --- a/install-2x.html +++ b/install-2x.html @@ -314,13 +314,13 @@

        2. Install cypht using Docker

        required in the manual instalation done for you. But the bad news is that this instllation way requires docker knowledge.
        Here is the cypht docker repository: https://hub.docker.com/r/sailfrog/cypht-docker
        + href="https://hub.docker.com/r/cypht/cypht">https://hub.docker.com/r/cypht/cypht
        To run containers required by cypht, please, first make sure you have docker and docker-compose installed on your system, then take a look on the section "exemple docker-compose" of repository overview, then do the following:

        • Create a new directory on your system named as you want.
        • -
        • In the directory created previously, create a file named "docker-compose.yaml"
        • +
        • In the directory created previously, create a file named "docker-compose.yaml" then copy and paste the content of the example docker-compose file in the created file or just download the example dcoker-compose file in the previously created directory.
        • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command to run containers
          docker-compose up -d
          From 824447630f01431e54035782f777bac3363f7908 Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Thu, 30 May 2024 16:08:50 +0200 Subject: [PATCH 08/11] [DOC]Cypht: from a Jason project to a community project --- index.html | 15 ++++----------- install-1x.html | 3 +-- install-2x.html | 3 +-- install.html | 3 +-- security.html | 2 +- 5 files changed, 8 insertions(+), 18 deletions(-) diff --git a/index.html b/index.html index 9d98b65..db654ce 100644 --- a/index.html +++ b/index.html @@ -159,8 +159,7 @@

          Features

          Have a question about security?

          Found a flaw in Cypht?

          -

          We want to hear from you! Drop by the Cypht Gitter channel, or send me an E-mail at jason@cypht.org. We take security seriously. Cypht is an entirely +

          We want to hear from you! Drop by the Cypht Gitter channel. We take security seriously. Cypht is an entirely volunteer effort, so we can't afford a bounty program. We can however promise that any security issue reported to us before release will receive a quick response, a thorough review, a sincere thanks, and an honorable mention on this @@ -193,25 +192,19 @@

          Or maybe you want to throw huge wads of cash at us?

          diff --git a/install-2x.html b/install-2x.html index af4b490..92f0d68 100644 --- a/install-2x.html +++ b/install-2x.html @@ -371,8 +371,7 @@

          4. Install Cypht within Tiki


          Having problems?

          - I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason [at] cypht [dot] org and I will get back to you as soon as I can. + We are happy to help trouble-shoot any installation issues you run into. Chat with us at Gitter Cypht at Gitter and We'll get back to you as soon as we can.
        diff --git a/install.html b/install.html index f7c8429..f091e25 100644 --- a/install.html +++ b/install.html @@ -375,8 +375,7 @@

        4. Install Cypht within Tiki

        https://doc.tiki.org/Webmail


        Having problems?

        - I'm happy to help trouble-shoot any installation issues you run into. Send a message to jason@cypht.org and I will get back to you as soon as I can. + We are happy to help trouble-shoot any installation issues you run into. Chat with us at Gitter Cypht at Gitter and We'll get back to you as soon as we can. diff --git a/security.html b/security.html index 90c9cec..dce44a3 100644 --- a/security.html +++ b/security.html @@ -61,7 +61,7 @@

        Have a question about security?

        Found a flaw in Cypht? We want to hear from you!

        -

        Drop by the Cypht Gitter channel, or send me an E-mail at jason@cypht.org. +

        Drop by the Cypht Gitter channel. We take security seriously. Cypht is an entirely volunteer effort, so we can't afford a bounty program. We can however promise that any security issue reported to us before release will receive a quick response, a thorough review, a sincere thanks, and an honorable mention on this page

        From 496d51ee8c39c24d2ca0e59ca9fa8b58b36c13ad Mon Sep 17 00:00:00 2001 From: Yannick nsenga romeo Date: Fri, 14 Jun 2024 13:35:35 +0200 Subject: [PATCH 09/11] [DOC] Update installation instructions for docker-compose files (fix small typos) --- install-1x.html | 2 +- install-2x.html | 4 ++-- install.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/install-1x.html b/install-1x.html index ed8690f..5e2e405 100644 --- a/install-1x.html +++ b/install-1x.html @@ -333,7 +333,7 @@

        2. Install cypht using Docker

        • Create a new directory on your system named as you want.
        • In the directory created previously, create a file named "docker-compose.yaml"
        • -
        • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command +
        • Open your CLI/terminal and move to the directory containing the docker-compose file and run the command to run containers
          docker-compose up -d
        • diff --git a/install-2x.html b/install-2x.html index b7393e5..4d5af17 100644 --- a/install-2x.html +++ b/install-2x.html @@ -320,8 +320,8 @@

          2. Install cypht using Docker

          • Create a new directory on your system named as you want.
          • -
          • In the directory created previously, create a file named "docker-compose.yaml" then copy and paste the content of the example docker-compose file in the created file or just download the example dcoker-compose file in the previously created directory.
          • -
          • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command to +
          • In the directory created previously, create a file named "docker-compose.yaml" then copy and paste the content of the example docker-compose file in the created file or just download the example docker-compose file in the previously created directory.
          • +
          • Open your CLI/terminal and move to the directory containing the docker-compose file and run the command to run containers
            docker-compose up -d
          • diff --git a/install.html b/install.html index f091e25..2bd44db 100644 --- a/install.html +++ b/install.html @@ -325,7 +325,7 @@

            2. Install cypht using Docker

            • Create a new directory on your system named as you want.
            • In the directory created previously, create a file named "docker-compose.yaml"
            • -
            • Open your CLI/terminal and move to the directory containning the docker-compose file and run the command +
            • Open your CLI/terminal and move to the directory containing the docker-compose file and run the command to run containers
              docker-compose up -d
            • From 28825826f92f64ee956e441e2b934e7f46440c62 Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Tue, 18 Jun 2024 16:17:07 +0200 Subject: [PATCH 10/11] [UPD]install.html, install-1x.html, install-2x.html: An update for Cypht2.1 --- install-1x.html | 2 +- install-2x.html | 8 ++++---- install.html | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/install-1x.html b/install-1x.html index 5e2e405..69c2e96 100644 --- a/install-1x.html +++ b/install-1x.html @@ -71,7 +71,7 @@

              Install Cypht v1.4.x

              - Cypht v2.0.x + Cypht v2.1.x

              Cypht has four differents installation ways:

              diff --git a/install-2x.html b/install-2x.html index 4d5af17..a29a9a2 100644 --- a/install-2x.html +++ b/install-2x.html @@ -61,7 +61,7 @@
              -

              Install Cypht v2.0.x

              +

              Install Cypht v2.1.x

              You can install specific versions of Cypht:

              @@ -71,7 +71,7 @@

              Install Cypht v2.0.x

              - Cypht v2.0.x + Cypht v2.1.x

              Cypht has four differents installation ways:

              @@ -86,7 +86,7 @@

              Install Cypht v2.0.x

              1. Manual installation

              Requirements

              -

              Cypht 2.0.x requires at least PHP 7.4,Composer 2, and at minimum the Cypht 2.0.x requires at least PHP 8.1,Composer 2, and at minimum the OpenSSL, mbstring and cURL extensions. Cypht can also leverage several other @@ -102,7 +102,7 @@

              1. Check minimum requirements

               #!/bin/bash
               
              -# You need to check php version which should be >=7.4
              +# You need to check php version which should be >=8.1
               php --version
               
               # Next you need to check composer version which should be >=2.0.0
              diff --git a/install.html b/install.html
              index 2bd44db..728fe70 100644
              --- a/install.html
              +++ b/install.html
              @@ -71,7 +71,7 @@ 

              Install Cypht master

              - Cypht v2.0.x + Cypht v2.1.x

              Cypht has four differents installation ways:

              From 42e9ddacc49d217f3244155909882ac084a7e921 Mon Sep 17 00:00:00 2001 From: Baraka Kinywa Date: Tue, 18 Jun 2024 18:57:47 +0200 Subject: [PATCH 11/11] [UPD] Cypht 2.0.X to Cypht 2.1.x --- contribute.html | 2 +- install-2x.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contribute.html b/contribute.html index d68d52d..b6af478 100644 --- a/contribute.html +++ b/contribute.html @@ -69,7 +69,7 @@

              Want to contribute?

            Development Workflow

            The project, particularly version 1.4.x, has been designed with plain HTML and CSS, focusing on front-end and back-end development without the use of extra features or frameworks.

            -

            However, it's worth noting that in version 2.0.x, while there's no PHP back-end framework utilized for its back-end, Bootstrap is adopted as the front-end framework, enhancing the project's user interface and experience.

            +

            However, it's worth noting that in version 2.1.x, while there's no PHP back-end framework utilized for its back-end, Bootstrap is adopted as the front-end framework, enhancing the project's user interface and experience.

            Requirements

              diff --git a/install-2x.html b/install-2x.html index a29a9a2..eb8d96c 100644 --- a/install-2x.html +++ b/install-2x.html @@ -86,7 +86,7 @@

              Install Cypht v2.1.x

              1. Manual installation

              Requirements

              -

              Cypht 2.0.x requires at least PHP 8.1,Composer 2, and at minimum the Cypht 2.1.x requires at least PHP 8.1,Composer 2, and at minimum the OpenSSL, mbstring and cURL extensions. Cypht can also leverage several other