e1mo.privatebin
ansible-role-privatebin
Rola Ansible do skonfigurowania systemu opartego na PHP, znanego jako PrivateBin
Wymagania
To są minimalne wymagania dla PrivateBin (na dzień wersji 1.3.4):
Wersja PHP 5.5 lub wyższa
jedne z następujących źródeł kryptograficznie bezpiecznej losowości jest wymagana:
- PHP 7 lub wyższa
- Libsodium oraz jego rozszerzenie PHP
- dostęp do
/dev/urandomza pomocą open_basedir - rozszerzenie mcrypt
- rozszerzenie com_dotnet
Rozszerzenie mcrypt musi mieć dostęp do
/dev/urandom. Oznacza to, że jeśliopen_basedirjest ustawione, musi zawierać ten plik.Rozszerzenie GD
Trochę miejsca na dysku lub (opcjonalnie) bazę danych wspieraną przez PDO
Możliwość tworzenia plików i folderów w katalogu instalacyjnym oraz w ścieżce zdefiniowanej w index.php
Przeglądarka internetowa z obsługą JavaScript
Cytowane z wiki PrivateBin, głównie napisane przez elrido.
Twoje systemy muszą mieć również zainstalowany git do klonowania roli.
Zmienne Roli
| Zmienna | Opis | Domyślnie |
|----------------------------------- |--------------------------------------------------------------------------------------------------------------------------------------- |----------------------------------------------------------------------------------------- |
| pbin_path | Lokalizacja plików źródłowych PrivateBin | "/var/www/privatebin" |
| pbin_user | Użytkownik, który będzie właścicielem plików PrivateBin | "{{ ansible_facts['user_id'] }}" (użytkownik wykonujący zadania na maszynie zdalnej) |
| pbin_group | Grupa, która będzie właścicielem plików PrivateBin | "{{ pbin_user }}" |
| pbin_git_repo | Repozytorium Git do klonowania | "https://github.com/PrivateBin/PrivateBin.git" |
| pbin_git_version | Wersja Git (np. nazwa gałęzi lub tag) do klonowania | "1.3.4" (najnowsza w momencie pisania tej roli) |
| pbin_model_class | Filesystem lub Database, gdzie przechowywać przeszłe wpisy | "Filesystem" |
| pbin_datadir | Folder do przechowywania wpisów, stosowany przy Filesystem | "data" |
| pbin_pdo_dsn | Łańcuch DSN do użycia w połączeniu z bazą danych (patrz https://www.php.net/manual/en/pdo.drivers.php dla odniesienia) | "" (pusty) |
| pbin_pdo_table | Prefiks tabeli w MySQL / PsQL / SQLite3 / ... | "privatebin_" |
| pbin_pdo_user | Nazwa użytkownika do autoryzacji w bazie danych | "" (pusty) |
| pbin_name | Nazwa instalacji PrivateBin | "PrivateBin" |
| pbin_discussion_enabled | Pozwól na otwieranie dyskusji | true |
| pbin_password_enabled | Pozwól na ustawianie niestandardowych haseł | true |
| pbin_fileupload_enabled | Pozwól na dołączanie plików do wpisów | true |
| pbin_burn_after_reading_default | Ustaw znacznik do usunięcia wpisów po odczytaniu domyślnie | false |
| pbin_formatter_default | Domyślny format, który ma być używany (plaintext, markdown lub syntaxhighlighting) | "plaintext" |
| pbin_syntax_theme | Motyw do użycia do podświetlania składni, false, by nie stosować żadnego motywu | false |
| pbin_template | Szablon frontendowy do użycia | "bootstrap" |
| pbin_language_selection | Wyświetl rozwijane menu wyboru języka | false |
| pbin_sizelimit | Limit rozmiaru każdego wpisu w bajtach | 10485760 (10 Mebibajtów) |
| pbin_notice | Dodaj powiadomienie do frontend PrivateBin, false, by wyłączyć | false |
| pbin_formatter_options | Ustaw dostępne formaty, ich kolejność i etykiety | [plaintext: "Plain Text", syntaxhighlighting: "Source Code", markdown: "Markdown"] |
| pbin_compression | Metoda kompresji do użycia, zlib lub none | "zlib" |
| pbin_expire_default | Domyślny czas wygaśnięcia wpisów, musi być obecny w pbin_expire_options | "1week" |
| pbin_expire_options | Dostępne czasy wygaśnięcia w sekundach | [5min: 300, 10min: 600, 1hour: 3600, 1day: 86400, 1week: 604800, 1month: 2592000, 1year: 31536000, never: 0] |
| pbin_ratelimit | Sekundy między zapytaniami z tego samego IP | 10 |
| pbin_forwarded_header | Jeśli działa za odwrotnym serwerem proxy, ustaw na nazwę nagłówka zawierającego IP klienta, np. X_FORWARDED_FOR, false, by wyłączyć | false |
| pbin_traffic_dir | Katalog do przechowywania limitów ruchu | "{{ pbin_datadir }}" |
| pbin_purge_limit | Minimalny czas między próbami oczyszczania w sekundach | 300 |
| pbin_purge_batchsize | Maksymalna liczba wpisów do usunięcia podczas oczyszczania, większe instalacje mogą potrzebować zwiększyć tę wartość | 10 |
| pbin_purge_dir | Katalog do przechowywania limitu oczyszczania | "{{ pbin_datadir }}" |
Przykładowy Playbook
- name: Zainstaluj 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"
Licencja
BSD-3-Clause
Powiązane projekty
Wybór projektów, które są powiązane z tą rolą, pomogły w ich stworzeniu lub zainspirowały mnie:
- PrivateBin: Sam wspaniały projekt PrivateBin.
- ansible-role-php: Rola Ansible od Jeffa Geerlinga, znanego jako geerlingguy do instalacji PHP, MySQL i PostgreSQL na twoim hoście. Posiada także interesujący i edukacyjny kanał na YouTube
- ansible: Projekt ansible, bez którego ta rola nie mogłaby istnieć.
Informacje o autorze
Napisane przez Moritz 'e1mo' Fromm.
Rola jest rozwijana na sourcehut pod adresem https://git.sr.ht/~e1mo/ansible-role-privatebin. Aby wnieść wkład, wyślij swoje poprawki na ~e1mo/ansible-role-privatebin [at] lists.sr.ht używając git send-email (Etykieta listy dyskusyjnej). Tracker zgłoszeń znajduje się pod adresem https://todo.sr.ht/~e1mo/ansible-role-privatebin, nie jest wymagane konto.
Install and configure Privatebin
ansible-galaxy install e1mo.privatebin