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/urandom
za pomocą open_basedir - rozszerzenie mcrypt
- rozszerzenie com_dotnet
Rozszerzenie mcrypt musi mieć dostęp do
/dev/urandom
. Oznacza to, że jeśliopen_basedir
jest 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