+72
-70
@@ -5,7 +5,7 @@
|
||||
|
||||
Aidé par Claude AI
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
@@ -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
|
||||
|
||||
Référencer dans un nouveau ticket
Bloquer un utilisateur