143 lignes
3.4 KiB
Markdown
143 lignes
3.4 KiB
Markdown
# ~~ Skynet Skin ~ Roundcube Webmail ~~
|
|
|
|
> Thème de connexion sci-fi pour Roundcube, inspiré du réseau de défense Skynet (Terminator).
|
|
> Fond animé, particules, data streams, palette bleu nuit / bleu science-fiction.
|
|
|
|
Aidé par Claude AI
|
|
|
|

|
|

|
|

|
|
|
|
---
|
|
|
|
## Aperçu
|
|
|
|
- Page de connexion full-screen avec animations canvas (particules + data streams)
|
|
- Indicateur de niveau de menace, ticker défilant
|
|
- Logo Skynet avec effet de lueur bleue pulsante
|
|
- Détection et affichage des erreurs d'authentification Roundcube
|
|
- Responsive mobile (viewport adaptatif, anti-zoom iOS)
|
|
|
|
---
|
|
|
|
## Prérequis
|
|
|
|
- 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)
|
|
|
|
---
|
|
|
|
## Démonstration vidéo
|
|
|
|
<p align="center">
|
|
<video
|
|
src="assets/preview.webm"
|
|
autoplay
|
|
muted
|
|
loop
|
|
playsinline
|
|
width="500"
|
|
height="400"
|
|
></video>
|
|
</p>
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
### 1. Activer le skin dans la configuration Roundcube
|
|
|
|
Dans votre fichier `config.inc.php` :
|
|
|
|
```php
|
|
$config['skin'] = 'skynet';
|
|
```
|
|
|
|
---
|
|
|
|
### 2. Récuperer le skin
|
|
|
|
#### 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://git.celjim.fr/public/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:
|
|
- ./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
|
|
```
|
|
|
|
---
|
|
|
|
## Licence
|
|
|
|
Ce projet est distribué sous licence **MIT**. Voir le fichier [LICENSE](./LICENSE).
|