Fichiers
roundcube-theme-skynet/README.md
T
jimmyGALLAND 8dfb19b2bc
Release / release (push) Successful in 21s
Update README.md
2026-06-02 21:01:37 +00:00

4.4 KiB

~~ 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

Version License Skin base


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)

Testé avec Roundcube 1.6.0 jusqu'à 1.7.1


Prévisualisation


Installation

1. Activer le skin dans la configuration Roundcube

Dans votre fichier config.inc.php :

$config['skin'] = 'skynet';

2. Récuperer le skin elastic comme base

2.1 Depuis un container roundcubemail


docker run --name tmp-roundcube -d roundcube/roundcubemail:latest && \
mkdir -p skins && \
docker cp tmp-roundcube:/var/www/html/skins/elastic skins && \

# Attendre que le fichier soit disponible (max 60s)
echo "Waiting for Roundcube to be ready..."
timeout 60 bash -c 'until docker exec tmp-roundcube test -f /var/www/html/program/include/iniset.php 2>/dev/null; do sleep 1; done' && \

RC_VERSION=$(docker exec tmp-roundcube sed -n "s/define('RCMAIL_VERSION', '\([^']*\)');/\1/p" /var/www/html/program/include/iniset.php) && \

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 la version 1.7.1)

RC_VERSION=1.7.1
curl --location https://github.com/roundcube/roundcubemail/releases/download/${RC_VERSION}/roundcubemail-${RC_VERSION}-complete.tar.gz \
 --output roundcubemail.tar.gz && \
tar -zxvf roundcubemail.tar.gz --wildcards --strip-components=1 -C . \
 roundcubemail-${RC_VERSION}/skins/elastic roundcubemail-${RC_VERSION}/plugins/*/skins/elastic
rm roundcubemail.tar.gz

3. Puis télécharger la dernière release du thême depuis le dépôt


# Compare semver: returns 0 if $1 >= $2
version_gte() {
    [ "$(printf '%s\n' "$1" "$2" | sort -V | head -n1)" = "$2" ]
}

# Récupère l'URL du dernier asset zip via l'API Gitea
LATEST_ZIP=$(curl -s "https://git.celjim.fr/api/v1/repos/public/roundcube-theme-skynet/releases/latest" \
  | grep -o '"browser_download_url":"[^"]*\.zip"' \
  | head -n1 \
  | cut -d'"' -f4)

curl "${LATEST_ZIP}" \
 --output theme-skynet.zip && \
7z x theme-skynet.zip && \

if version_gte "$RC_VERSION" "1.7.1"; then
        sed -e 's|\.\/skins\/skynet\/styles\/styles-skynet\.min\.css|static.php/skins/skynet/styles/styles-skynet.min.css|g' \
        -e 's|\.\/skins\/skynet\/script-skynet\.min\.js|static.php/skins/skynet/script-skynet.min.js|g' \
        login.html > skins/elastic/templates/login.html && \
        rm -f login.html 
        echo fait
else
        mv -f login.html skins/elastic/templates/login.html
        echo pas fait
fi  && \

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 :

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.