Stikked (pastebin
Nous utilisons le logiciel Stikked pour fournir un service type pastebin. C'est un assez bon outil, un peu complexe à mettre en place proprement, et il faut le configurer et le surveiller côté spam.
Installation
Télécharger Stikked sur Github. Décompresser l'archive ; il y a dedans un fichier readme.md qui détaille tout. Mais comme j'aime pas l'anglais, le principal est traduit ici.
- Créer un dossier
pastebin
dans/var/www
et coller le contenu du dossierhtdocs
de l'archive pastebin. - Créer un utilisateur et une base de donnée pour Stikked
- Copier
application/config/stikked.php.dist
enapplication/config/stikked.php
(ou reprendre la version sauvegardée). - Éditer la configuration dans
application/config/stikked.php
- Allez à l'adresse http://monsite/pastebin !
La base de donnée est créé automatiquement si elle n'existe pas.
Pas besoin de permissions spéciales par défaut, mais si on souhaite du Javascript et “CSS-files minified”, le dossier static/asset/folder
doit être écrivable (sudo chmod -R a+w
).
Pour que les pastes avec date d'expiration soient bien vidés, il faut définir une clé cron dans le fichier de config et ajouter un cronjob, par exemple :
*/5 * * * * curl --silent http://yoursite.com/cron/[key]
Exemple chez nous :
25 1 * * * curl --silent http://khaganat.net/pastebin/cron/stikkedkh >/dev/null 2>&1
Le ménage sera ainsi fait tous les jours à 1h25, et pour éviter un mail à chaque fois, le résultat est envoyé à “néant”.
Problèmes spécifiques à un serveur sans ip propre
Lors de l'installation, il y a une erreur qui fait que pastebin cherche ses infos sur l'adresse de la vm (test.khaganat.net.vm par exemple) et non l'adresse web. Ce serait du au fait qu'on a pas d'IP spécifique pour ce serveur.
Aller dans le fichier /var/www/pastebin/application/config/config.php
et ajouter l'adresse web complète à config['base_url']
:
$config['base_url'] = 'http://test.khaganat.net/pastebin/';
Configuration
Le fichier de configuration se trouve dans /var/www/pastebin/application/config/stikked.php
. Le mot de passe de la base de donnée de Stikked y est en clair…
- Gestion des langues : version française par défaut
- Les pastebins ne sont conservés qu'une semaine par défaut (paramétrable dans la page). Désactivation de “pour toujours”.
- Possibilité de répondre à un pastebin et de voir les lignes modifiés
- Captcha (activé pour le moment)
- Les url courtes ne fonctionnent pas pour le moment, car il faudrait lier ça à des services tiers.
Spams
Pour activer les captchas, passer l'argument $config['enable_captcha']
à true;
.
Il faut aussi désactiver l'api pour éviter que les bots spammeurs passent par là : $config['disable_api'] = true;
La gestion des spams peut se faire en ligne via l'adresse http://khaganat.net/pastebin/spamadmin (login et mot de passe aux variables $config['spamadmin_user']
et $config['spamadmin_pass']
. Cela permet de nettoyer tous les messages d'une même IP et de bloquer cette dernière : ça peut donc faire beaucoup de ménage, vite.
S'il y a vraiment beaucoup de spam, c'est plus simple de passer par phpmyadmin et de nettoyer la table.
En cas de surfréquentation des bots-spam, on peut interdire de poster sans être connecté.
Noms aléatoires personnalisés
Lorsque qu'on ne précise pas de nom, l'auteur est une combinaison composée d'un “nom” suivi d'un “adjectif”. Voici les éléments aléatoires dans lesquels piocher après personnalisation, sinon c'est en anglais :
$config['adjectives'] = array('Pendo', 'Bog', 'Branaz', 'Caunai', 'Claden', 'Grezban', 'Jradaa', 'Mehteh', 'Migru', 'Mumut', 'Naurs', 'Njébé', 'Plissken', 'Roksin', 'Tupa', 'Salamandre', 'Cnovol', 'Clanebla', 'Silvid', 'Sinamru', 'Sumruku', 'Melcipni', 'Groska', 'Janka', 'Murbaz', 'Elephant', 'Bison', 'Lion', 'Chameau', 'Mouton', 'Tapir', 'Pelican', 'Tortue', 'Gibbon', 'Zebre', 'Macaw', 'Gibbon', 'Madrill', 'Wolf', 'Stork', 'Armadillo', 'Ostrich', 'Marmoset', 'Lizard', 'Panda', 'Girafe', 'Kangourou', 'Gorille', 'Canard', 'Macaque', 'Ibis', 'Lemure', 'Rhinoceros', 'Octupus', 'Papillon', 'Chaton', 'Coyote', 'Crocodile', 'Grenouille', 'Hamster', 'Iguane', 'Leopard', 'Abeille', 'Pingouin');
$config['nouns'] = array('Verte', 'Rouge', 'Jaune', 'Bleu', 'Violette', 'Orange', 'Rose', 'Blanche', 'Noire', 'Grise', 'À Rayure', 'À Pois', 'Mature', 'Imposante', 'Colossale', 'Commode', 'Éclair', 'Géante', 'Mungo', 'Volumineuse', 'Phénoménale', 'Mignonne', 'Minuscule', 'Petite', 'Diminuée', 'Ridicule', 'Dérisoire', 'Abondante', 'Triviale', 'Colorante', 'Aqua', 'Beige', 'Bistre', 'Bluffante', 'Bistre', 'Chartreuse', 'Chocolate', 'Cobalt', 'Corail', 'Crème', 'Denim', 'Émeraude', 'Ivoire', 'Moutarde', 'Idiote', 'Perle', 'Taquine', 'Intrépide', 'Douce', 'Inoffensive', 'Gentille', 'Innocente', 'Fiable', 'Tendre', 'Toxique', 'Costaud', 'Sexy', 'Morose', 'Rude', 'Gracieuse', 'Abrupte', 'Reine', 'Craquante', 'Insensible', 'Sociable', 'Subtile', 'Vacillante', 'Eratique', 'Unique', 'Délicieuse', 'Putride', 'Mélodieuse', 'Corrompue', 'Fière', 'Chaude', 'Froide', 'Torride', 'Voleuse', 'Méchante', 'Démone', 'Géniale', 'Drôle', 'Farceuse');
Thèmes
Il faut sauvegarder nos thèmes personnalisés. Les thèmes sont enregistrés dans pastebin/themes/
. Nous avons créé un thème Khaganat, disponible sur notre gitlab.
Images de fond de page / Favicon / logos
- pastebin_bg.jpg : image d'arrière-plan (appel depuis /var/www/pastebin/themes/khaganat/css/main.css ).
Le favicon se trouve donc dans /var/www/pastebin/favicon.ico
. Apparemment elle est appelée depuis le fichier /var/www/khaganat/views/defaults/header.php avec une adresse fixée 'en dur'.
Le plus simple est de faire :
cd /var/www/pastebin mv favicon.ico favicon.ico.bak ln -s /var/www/img/favicon.ico /var/www/pastebin/favicon.ico