e1mo.privatebin
ansible-role-privatebin
Ansible роль для настройки PHP-основанного PrivateBin
Требования
Это минимальные требования для PrivateBin (на момент версии 1.3.4):
- PHP версии 5.5 или выше 
- требуется один из следующих источников криптографически безопасной случайности: - PHP 7 или выше
- Libsodium и его PHP расширение
- доступ к open_basedir для /dev/urandom
- расширение mcrypt
- расширение com_dotnet
 - Mcrypt должен иметь доступ к - /dev/urandom. Это значит, что если- open_basedirустановлен, он должен включать этот файл.
- Расширение GD 
- немного дискового пространства или (опционально) база данных, поддерживаемая PDO 
- возможность создавать файлы и папки в каталоге установки и в PATH, определенном в index.php 
- Веб-браузер с поддержкой JavaScript 
Взято из вики PrivateBin, в основном написано elrido.
В вашей системе также должен быть установлен git для клонирования роли.
Переменные роли
| Переменная | Описание | Значение по умолчанию | 
|---|---|---|
| pbin_path | Местоположение исходных файлов PrivateBin | "/var/www/privatebin" | 
| pbin_user | Пользователь, который будет владельцем файлов PrivateBin | "{{ ansible_facts['user_id'] }}"(пользователь, выполняющий задачи на удаленной машине) | 
| pbin_group | Группа, которая будет владельцем файлов PrivateBin | "{{ pbin_user }}" | 
| pbin_git_repo | Git репозиторий для клонирования | "https://github.com/PrivateBin/PrivateBin.git" | 
| pbin_git_version | Версия Git (например, имя ветки или тег) для клонирования | "1.3.4"(последняя на момент написания этой роли) | 
| pbin_model_class | FilesystemилиDatabase, где хранить вставки | "Filesystem" | 
| pbin_datadir | Папка для хранения вставок, актуально, когда Filesystem | "data" | 
| pbin_pdo_dsn | DSN строка для подключения к базе данных (см. https://www.php.net/manual/en/pdo.drivers.php для справки) | ""(пусто) | 
| pbin_pdo_table | Префикс таблицы в MySQL / PsQL / SQLite3 / ... | "privatebin_" | 
| pbin_pdo_user | Имя пользователя для аутентификации в базе данных | ""(пусто) | 
| pbin_name | Имя установки PrivateBin | "PrivateBin" | 
| pbin_discussion_enabled | Разрешить открывать обсуждения | true | 
| pbin_password_enabled | Разрешить установку пользовательских паролей | true | 
| pbin_fileupload_enabled | Разрешить прикрепление файлов к вставкам | true | 
| pbin_burn_after_reading_default | Установить галочку на удаление вставок после прочтения по умолчанию | false | 
| pbin_formatter_default | Форматтер по умолчанию для использования ( plaintext,markdownилиsyntaxhighlighting) | "plaintext" | 
| pbin_syntax_theme | Тема для подсветки синтаксиса, falseдля отсутствия пользовательской темы | false | 
| pbin_template | Шаблон фронтенда для использования | "bootstrap" | 
| pbin_language_selection | Отображать выпадающий список выбора языка | false | 
| pbin_sizelimit | Лимит на размер каждой вставки в байтах | 10485760(10 Мебибайт) | 
| pbin_notice | Добавить уведомление на фронтенде privatebin, false для отключения | false | 
| pbin_formatter_options | Установить доступные форматтеры, их порядок и их метки | [plaintext: "Plain Text", syntaxhighlighting: "Source Code", markdown: "Markdown"] | 
| pbin_compression | Метод сжатия для использования, zlibилиnone | "zlib" | 
| pbin_expire_default | Время истечения по умолчанию для вставок, должно присутствовать в pbin_expire_options | "1week" | 
| pbin_expire_options | Доступные времена истечения в секундах | [5min: 300, 10min: 600, 1hour: 3600, 1day: 86400, 1week: 604800, 1month: 2592000, 1year: 31536000, never: 0] | 
| pbin_ratelimit | Секунды между вставками с одного IP | 10 | 
| pbin_forwarded_header | Если работает за обратным прокси, установите имя заголовка, содержащего IP клиентов, например, X_FORWARDED_FOR, false для отключения | false | 
| pbin_traffic_dir | Директория для хранения лимитов трафика | "{{ pbin_datadir }}" | 
| pbin_purge_limit | Минимальное время между попытками очистки в секундах | 300 | 
| pbin_purge_batchsize | Максимальное количество вставок для удаления во время очистки, для больших установок может потребоваться увеличить это значение | 10 | 
| pbin_purge_dir | Директория для хранения лимита очистки | "{{ pbin_datadir }}" | 
Пример плейбука
- name: Установить 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"
Лицензия
BSD-3-Clause
Связанные проекты
Отбор проектов, которые относятся к этой роли, помогли создать или вдохновили меня:
- PrivateBin: Сам проект PrivateBin.
- ansible-role-php: Роль ansible от Джеффа Гирлинга (geerlingguy) для установки PHP, MySQL и PostgreSQL на вашем хосте. У него также есть развлекательный и обучающий YouTube канал
- ansible: Сам проект ansible, без которого эта роль не смогла бы существовать.
Информация об авторе
Написано Морицем 'e1mo' Фромм.
Роль разрабатывается на sourcehut по адресу https://git.sr.ht/~e1mo/ansible-role-privatebin. Чтобы внести вклад, отправьте свои патчи на ~e1mo/ansible-role-privatebin [at] lists.sr.ht, используя git send-email (Этикет почтового списка). Трекер проблем находится по адресу https://todo.sr.ht/~e1mo/ansible-role-privatebin, учетная запись не нужна.
Install and configure Privatebin
ansible-galaxy install e1mo.privatebin