diff --git a/README.md b/README.md index f601b4b..bb313c2 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Aidé par Claude AI -![Version](https://img.shields.io/badge/Roundcube-1.6.x-blue) +![Version](https://img.shields.io/badge/Roundcube-1.7.x-blue) ![License](https://img.shields.io/badge/license-MIT-green) ![Skin base](https://img.shields.io/badge/base-elastic-informational) @@ -23,9 +23,8 @@ Aidé par Claude AI ## Prérequis -- Testé avec Roundcube **1.6.x** -- Skin **elastic** présent dans `/var/www/html/skins/elastic/` (utilisé comme base) -- Accès en écriture au répertoire `/var/www/html/skins/` +- Testé avec Roundcube **1.6.x** **1.7.x** +- Un autre skin **(ex: elastic)** présent dans `/var/www/html/skins/elastic/` (utilisé comme base) --- @@ -47,21 +46,7 @@ Aidé par Claude AI ## Installation -### 1. Copier le skin elastic comme base - -Le skin Skynet ne remplace que la page de login. Toutes les autres vues (messagerie, contacts, paramètres) héritent du skin **elastic**. - -```bash -cp -r /var/www/html/skins/elastic/. /var/www/html/skins/skynet/ -``` - -### 2. Déposer le template de login - -```bash -cp login.html /var/www/html/skins/skynet/templates/login.html -``` - -### 3. Activer le skin dans la configuration Roundcube +### 1. Activer le skin dans la configuration Roundcube Dans votre fichier `config.inc.php` : @@ -69,70 +54,87 @@ Dans votre fichier `config.inc.php` : $config['skin'] = 'skynet'; ``` -### 4. Vérifier les permissions - -```bash -chown -R www-data:www-data /var/www/html/skins/skynet/ -chmod -R 755 /var/www/html/skins/skynet/ -``` - --- -## Installation via Docker +### 2. Récuperer le skin -Si Roundcube tourne dans un container Docker, montez le skin en volume dans votre `docker-compose.yml` : +#### 2.1 Depuis un container roundcubemail + +```bash + +docker run --name tmp-roundcube -d roundcube/roundcubemail:latest && \ +mkdir -p skins && \ +docker cp tmp-roundcube:/var/www/html/skins/elastic skins && \ + +docker exec tmp-roundcube \ + find /var/www/html/plugins -type d -path "*/skins/elastic" | + +while read -r skin_path; do + + relative_path="${skin_path#/var/www/html}" + target_dir="$(dirname "./$relative_path")" + + mkdir -p "$target_dir" && \ + + docker cp \ + "tmp-roundcube:$skin_path" \ + "$target_dir/" +done + +docker rm -f tmp-roundcube + +``` + +ou + +#### 2.1 Directement depuis les sources de roundcubemail (exemple pour va version avec la version 1.7.0) + +```bash + +curl --location https://github.com/roundcube/roundcubemail/releases/download/1.7.0/roundcubemail-1.7.0-complete.tar.gz \ + --output roundcubemail.tar.gz && \ +tar -zxvf roundcubemail.tar.gz --wildcards --strip-components=1 -C . \ + roundcubemail-1.7.0/skins/elastic roundcubemail-1.7.0/plugins/*/skins/elastic +rm roundcubemail.tar.gz + +``` + +### 3. Puis télécharger la release du thême depuis le dépôt + +```bash + +curl https://[TOKEN]@git.celjim.fr/jimmyGALLAND/roundcube-theme-skynet/releases/download/v1/roundcube-theme-skynet-v1.zip \ + --output theme-skynet.zip && \ +7z x theme-skynet.zip && \ +mv -f login.html skins/elastic/templates && \ +mv -f script-skynet.min.js skins/elastic/ && \ +mv -f styles-skynet.min.css skins/elastic/styles && \ +mv skins/elastic skins/skynet && \ +find "./plugins" -type d -path "*/skins/elastic" | while read -r elastic_dir; do + skynet_dir="$(dirname "$elastic_dir")/skynet" + mkdir -p "$skynet_dir" + mv "$elastic_dir" "$skynet_dir" +done +rm theme-skynet.zip + +``` + +### 4. roundcubemail via Docker + +Montez le skin en volume dans votre `docker-compose.yml` : ```yaml services: roundcube: image: roundcube/roundcubemail:latest volumes: - - ./skins/skynet:/var/www/html/skins/skynet + - ./theme-skynet/skins/skynet:/var/www/html/skins/skynet:ro + - ./theme-skynet/plugins/managesieve/skins/skynet:/var/www/html/plugins/managesieve/skins/skynet:ro + environment: - ROUNDCUBEMAIL_SKIN=skynet ``` -Puis copiez le skin elastic depuis le container comme base : - -```bash -# Extraire le skin elastic du container -docker cp roundcube:/var/www/html/skins/elastic ./skins/skynet - -cp login.html ./skins/skynet/templates/login.html -cp logo-skynet.png ./skins/skynet/images/logo-skynet.png - -# Inject le skin skynet dans le container -docker cp ./skins/skynet roundcube:/var/www/html/skins -``` - ---- - -## Compatibilité avec les plugins - -Certains plugins Roundcube incluent leur propre partie skin (templates, styles). -Lors de la copie d'elastic, ces fichiers sont automatiquement inclus, mais vérifiez les répertoires suivants après installation : - -### Plugins courants et leurs fichiers de skin - -| Plugin | Répertoire skin à vérifier | -| ------------------------- | --------------------------- | -| `managesieve` | `skins/skynet/managesieve/` | -| `enigma` | `skins/skynet/enigma/` | -| `calendar` _(Kolab/Bimi)_ | `skins/skynet/calendar/` | - -Pour vérifier que pour chaque plugin actif il y a un répertoire skins/ - -```bash -bash# Pour chaque plugin actif qui a un répertoire skins/ -for plugin in managesieve enigma zipdownload archive; do - if [ -d "/var/www/html/plugins/$plugin/skins/elastic" ]; then - cp -r /var/www/html/plugins/$plugin/skins/elastic \ - /var/www/html/plugins/$plugin/skins/skynet - echo "? $plugin" - fi -done -``` - --- ## Licence diff --git a/src/login.html b/src/login.html index 23ab475..0baa794 100644 --- a/src/login.html +++ b/src/login.html @@ -1,146 +1,145 @@ + - - - + + + - - + + - - -
-
-
+ + +
+
+
- -
- -
- -
-
-
- -
-
SKYNET
-
- GLOBAL DEFENSE NETWORK  //  SECURE NODE ACCESS -
+ +
+ +
+ +
+
+
+ +
+
SKYNET
+
+ GLOBAL DEFENSE NETWORK  //  SECURE NODE ACCESS +
-
+
- -
- - - -
+ +
+ + + +
- -
-
- ⚠   AUTHENTIFICATION ÉCHOUÉE -
- + +
+
+ ⚠   AUTHENTIFICATION ÉCHOUÉE +
+ -
- - - -
+
+ + + +
-
- - - -
+
+ + + +
- -
+ +
-
- MENACE -
-
-
-
-
-
-
-
-
- MODÉRÉE -
+
+ MENACE +
+
+
+
+
+
+
+
+
+ MODÉRÉE +
-
-
- RÉSEAU : EN LIGNE -
-
SÉCURITÉ : NIV.5
-
NŒUD : HELIOS
-
+
+
+ RÉSEAU : EN LIGNE +
+
SÉCURITÉ : NIV.5
+
NŒUD : HELIOS
+
-
- - // ACCÈS NON AUTORISÉ SERA TRACÉ ET ÉLIMINÉ -   //   SKYNET SURVEILLE TOUTES LES CONNEXIONS -   //   PROTOCOLE DE SÉCURITÉ DELTA ACTIF -   //   TOUTE INTRUSION SERA NEUTRALISÉE -   //   - -
-
- SYS-ID: 4A2F-9C01-DELTA  |  v4.0.2026  |  SKYNET - CORP. -
-
- +
+ + // ACCÈS NON AUTORISÉ SERA TRACÉ ET ÉLIMINÉ +   //   SKYNET SURVEILLE TOUTES LES CONNEXIONS +   //   PROTOCOLE DE SÉCURITÉ DELTA ACTIF +   //   TOUTE INTRUSION SERA NEUTRALISÉE +   //   + +
+
+ SYS-ID: 4A2F-9C01-DELTA  |  v4.0.2026  |  SKYNET + CORP. +
+
+ -
-
-
-
-
- +
+
+
+
+
+ - + - + - - - +