e1mo.privatebin
ansible-role-privatebin
Ansible-Rolle zur Einrichtung von PrivateBin, das auf PHP basiert.
Anforderungen
Das sind die minimalen Anforderungen für PrivateBin (mit Stand von Version 1.3.4):
PHP-Version 5.5 oder höher
eine der folgenden Quellen für kryptografisch sichere Zufallszahlen ist erforderlich:
- PHP 7 oder höher
- Libsodium und die dazugehörige PHP-Erweiterung
- open_basedir-Zugriff auf
/dev/urandom
- mcrypt-Erweiterung
- com_dotnet-Erweiterung
Mcrypt muss auf
/dev/urandom
zugreifen können. Das bedeutet, wennopen_basedir
gesetzt ist, muss diese Datei enthalten sein.GD-Erweiterung
etwas Speicherplatz oder (optional) eine von PDO unterstützte Datenbank
Die Fähigkeit, Dateien und Ordner im Installationsverzeichnis und im in index.php definierten PATH zu erstellen
Ein Webbrowser mit JavaScript-Unterstützung
Diese Informationen stammen aus dem PrivateBin-Wiki, hauptsächlich verfasst von elrido.
Ihre Systeme müssen außerdem git
installiert haben, um die Rolle klonen zu können.
Rollenvariablen
Variable | Beschreibung | Standard |
---|---|---|
pbin_path |
Standort der PrivateBin-Quelldateien | "/var/www/privatebin" |
pbin_user |
Benutzer, der der Besitzer der PrivateBin-Dateien sein soll | "{{ ansible_facts['user_id'] }}" (Benutzer, der die Aufgaben auf der entfernten Maschine ausführt) |
pbin_group |
Gruppe, die der Besitzer der PrivateBin-Dateien sein soll | "{{ pbin_use }}" |
pbin_git_repo |
Git-Repository zum Klonen | "https://github.com/PrivateBin/PrivateBin.git" |
pbin_git_version |
Git-Version (z. B. Branch-Name oder Tag), die geklont werden soll | "1.3.4" (neueste Version zum Zeitpunkt dieser Rolle) |
pbin_model_class |
Filesystem oder Datenbank , wo die Einträge gespeichert werden sollen |
"Filesystem" |
pbin_datadir |
Ordner für die Speicherung der Einträge, zutreffend bei Filesystem |
"data" |
pbin_pdo_dsn |
DSN-String zur Verwendung für die Datenbankverbindung (siehe https://www.php.net/manual/en/pdo.drivers.php für Referenz) | "" (leer) |
pbin_pdo_table |
Tabellenpräfix in MySQL / PsQL / SQLite3 / ... | "privatebin_" |
pbin_pdo_user |
Benutzername zur Authentifizierung bei der Datenbank | "" (leer) |
pbin_name |
Name der PrivateBin-Installation | "PrivateBin" |
pbin_discussion_enabled |
Erlaubt das Öffnen von Diskussionen | true |
pbin_password_enabled |
Erlaubt das Festlegen von benutzerdefinierten Passwörtern | true |
pbin_fileupload_enabled |
Erlaubt das Anhängen von Dateien an Einträge | true |
pbin_burn_after_reading_default |
Setzt das Häkchen, um Einträge nach dem Lesen standardmäßig zu löschen | false |
pbin_formatter_default |
Standardformatierer zur Verwendung (plaintext , markdown oder syntaxhighlighting ) |
"plaintext" |
pbin_syntax_theme |
Thema für die Syntaxhervorhebung, false , um kein benutzerdefiniertes Thema anzuwenden |
false |
pbin_template |
Vorlagentemplate für das Frontend | "bootstrap" |
pbin_language_selection |
Sprachwahldropdown anzeigen | false |
pbin_sizelimit |
Limit für die Größe jedes Eintrags in Bytes | 10485760 (10 Mebibytes) |
pbin_notice |
Eine Mitteilung auf dem PrivateBin-Frontend hinzufügen, false , um sie zu deaktivieren |
false |
pbin_formatter_options |
Verfügbare Formatierer, deren Reihenfolge und deren Bezeichnungen | [plaintext: "Plain Text", syntaxhighlighting: "Source Code", markdown: "Markdown"] |
pbin_compression |
Komprimierungsmethode, die verwendet werden soll, zlib oder none |
"zlib" |
pbin_expire_default |
Standardablaufzeit für Einträge, muss in pbin_expire_options vorhanden sein |
"1week" |
pbin_expire_options |
Verfügbare Ablaufzeiten in Sekunden | [5min: 300, 10min: 600, 1hour: 3600, 1day: 86400, 1week: 604800, 1month: 2592000, 1year: 31536000, never: 0] |
pbin_ratelimit |
Sekunden zwischen Einträgen von derselben IP | 10 |
pbin_forwarded_header |
Wenn hinter einem Reverse-Proxy betrieben, den Namen des Headers einstellen, der die IPs der Clients enthält wie X_FORWARDED_FOR , false , um es zu deaktivieren |
false |
pbin_traffic_dir |
Verzeichnis zur Speicherung der Verkehrslimits | "{{ pbin_datadir }}" |
pbin_purge_limit |
Mindestzeit zwischen Löschversuchen in Sekunden | 300 |
pbin_purge_batchsize |
Maximale Anzahl an Einträgen, die beim Löschen entfernt werden sollen, größere Installationen müssen diesen Wert möglicherweise erhöhen | 10 |
pbin_purge_dir |
Verzeichnis zur Speicherung des Löschlimits | "{{ pbin_datadir }}" |
Beispiel-Playbook
- name: Installiere 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"
Lizenz
BSD-3-Klausel
Verwandte Projekte
Eine Auswahl von Projekten, die mit dieser Rolle in Verbindung stehen, mir geholfen haben oder mich inspiriert haben:
- PrivateBin: Das großartige PrivateBin-Projekt selbst.
- ansible-role-php: Eine Ansible-Rolle von Jeff Geerling aka. geerlingguy zur Installation von PHP, MySQL und PostgreSQL auf Ihrem Host. Er hat auch einen unterhaltsamen und lehrreichen YouTube-Kanal.
- ansible: Das Ansible-Projekt selbst, ohne das diese Rolle nicht existieren könnte.
Autorinformation
Verfasst von Moritz 'e1mo' Fromm.
Die Rolle wird auf sourcehut unter https://git.sr.ht/~e1mo/ansible-role-privatebin entwickelt. Um beizutragen, senden Sie Ihre Patches an ~e1mo/ansible-role-privatebin [at] lists.sr.ht
mit git send-email
(Mailinglisten-Etikette). Der Issue-Tracker befindet sich unter https://todo.sr.ht/~e1mo/ansible-role-privatebin, ein Konto ist nicht erforderlich.
Install and configure Privatebin
ansible-galaxy install e1mo.privatebin