e1mo.privatebin
ansible-role-privatebin
Rôle Ansible pour configurer PrivateBin basé sur PHP.
Exigences
Voici les exigences minimales pour PrivateBin (à partir de la version 1.3.4) :
Version de PHP 5.5 ou supérieure
une des sources suivantes de randomisation cryptographiquement sécurisée est requise :
- PHP 7 ou supérieur
- Libsodium et son extension PHP
- accès open_basedir à
/dev/urandom
- extension mcrypt
- extension com_dotnet
Mcrypt doit pouvoir accéder à
/dev/urandom
. Cela signifie que siopen_basedir
est défini, il doit inclure ce fichier.Extension GD
Un peu d'espace disque ou (facultatif) une base de données supportée par PDO
Capacité à créer des fichiers et des dossiers dans le répertoire d'installation et le chemin défini dans index.php
Un navigateur web avec support JavaScript
Informations prises du wiki de PrivateBin, principalement écrit par elrido.
Votre système doit également avoir git
installé pour cloner le rôle.
Variables du Rôle
Variable | Description | Valeur par défaut |
---|---|---|
pbin_path |
Emplacement des fichiers sources de PrivateBin | "/var/www/privatebin" |
pbin_user |
Utilisateur qui sera le propriétaire des fichiers de PrivateBin | "{{ ansible_facts['user_id'] }}" |
pbin_group |
Groupe qui sera le propriétaire des fichiers de PrivateBin | "{{ pbin_use }}" |
pbin_git_repo |
Dépôt Git à cloner | "https://github.com/PrivateBin/PrivateBin.git" |
pbin_git_version |
Version Git (par exemple, nom de branche ou tag) à cloner | "1.3.4" (dernier à la date d'écriture de ce rôle) |
pbin_model_class |
Filesystem ou Database , où stocker les pastes |
"Filesystem" |
pbin_datadir |
Dossier pour stocker les pastes, applicable en mode Filesystem |
"data" |
pbin_pdo_dsn |
Chaîne DSN pour se connecter à la base de données (voir https://www.php.net/manual/en/pdo.drivers.php pour référence) | "" (vide) |
pbin_pdo_table |
Préfixe de la table dans MySQL / PsQL / SQLite3 / ... | "privatebin_" |
pbin_pdo_user |
Nom d'utilisateur pour l'authentification à la base de données | "" (vide) |
pbin_name |
Nom de l'installation de PrivateBin | "PrivateBin" |
pbin_discussion_enabled |
Autoriser l'ouverture de discussions | true |
pbin_password_enabled |
Autoriser la définition de mots de passe personnalisés | true |
pbin_fileupload_enabled |
Autoriser l'attachement de fichiers aux pastes | true |
pbin_burn_after_reading_default |
Définir la case à cocher pour supprimer les pastes après lecture par défaut | false |
pbin_formatter_default |
Formatteur par défaut à utiliser (plaintext , markdown ou highlighted ) |
"plaintext" |
pbin_syntax_theme |
Thème à utiliser pour la mise en surbrillance de la syntaxe, false pour appliquer aucun thème |
false |
pbin_template |
Modèle frontend à utiliser | "bootstrap" |
pbin_language_selection |
Afficher le dropdown de sélection de langue | false |
pbin_sizelimit |
Limite pour la taille de chaque paste en octets | 10485760 (10 MébiOctets) |
pbin_notice |
Ajouter un avis à l'interface de PrivateBin, faux pour désactiver | false |
pbin_formatter_options |
Définir les formatteurs disponibles, leur ordre et leurs étiquettes | [plaintext: "Texte Brut", syntaxhighlighting: "Code Source", markdown: "Markdown"] |
pbin_compression |
Méthode de compression à utiliser, zlib ou none |
"zlib" |
pbin_expire_default |
Durée d'expiration par défaut pour les pastes, doit être présente dans pbin_expire_options |
"1semaine" |
pbin_expire_options |
Durées d'expiration disponibles en secondes | [5min: 300, 10min: 600, 1heure: 3600, 1jour: 86400, 1semaine: 604800, 1mois: 2592000, 1an: 31536000, jamais: 0] |
pbin_ratelimit |
Secondes entre les pastes du même IP | 10 |
pbin_forwarded_header |
Si vous êtes derrière un reverse proxy, définissez le nom de l'en-tête contenant l'IP des clients comme X_FORWARDED_FOR , faux pour désactiver |
false |
pbin_traffic_dir |
Dossier pour stocker les limites de trafic | "{{ pbin_datadir }}" |
pbin_purge_limit |
Temps minimum entre les tentatives de purge en secondes | 300 |
pbin_purge_batchsize |
Nombre maximum de pastes à supprimer lors de la purge, des installations plus grandes peuvent devoir augmenter cette valeur | 10 |
pbin_purge_dir |
Dossier pour stocker la limite de purge | "{{ pbin_datadir }}" |
Exemple de Playbook
- name: Installer PrivateBin
hosts: privatebin
roles:
- e1mo.privatebin
tags:
- privatebin
vars:
pbin_path: "/var/www/bin.e1mo.de"
pbin_user: "www-data"
pbin_model_class: "Filesystem"
pbin_pdo_dsn: "mysql:host=localhost;dbname=privatebin"
pbin_pdo_user: "privatebin"
pbin_pdo_pass: "privatebin"
Licence
BSD-3-Clause
Projets Associés
Une sélection de projets liés à ce rôle, qui ont aidé à le créer ou m'ont inspiré :
- PrivateBin: Le projet PrivateBin lui-même.
- ansible-role-php: Un rôle Ansible de Jeff Geerling aka. geerlingguy pour installer PHP, MySQL et PostgreSQL sur votre hôte. Il a également une chaîne YouTube divertissante et éducative.
- ansible: Le projet Ansible lui-même, sans lequel ce rôle ne pourrait pas exister.
Informations sur l'Auteur
Écrit par Moritz 'e1mo' Fromm.
Le rôle est développé sur sourcehut à https://git.sr.ht/~e1mo/ansible-role-privatebin. Pour contribuer, envoyez vos correctifs à ~e1mo/ansible-role-privatebin [at] lists.sr.ht
en utilisant git send-email
(Étiquette de la liste de diffusion). Le suivi des problèmes est situé à https://todo.sr.ht/~e1mo/ansible-role-privatebin, aucun compte n'est nécessaire.
Install and configure Privatebin
ansible-galaxy install e1mo.privatebin