noplanman.lstu
Rôle Ansible pour Lstu (Raccourcissons cette URL)
:rocket: Le développement a été déplacé vers git.feneas.org.
(Le dépôt sur GitHub est seulement un miroir, donc fork sur Feneas pour contribuer. Pas besoin d'inscription, connectez-vous avec votre compte GitHub.)
Ce rôle installe et configure Lstu sur des serveurs Debian/Ubuntu. Découvrez-en plus sur Lstu, créé par Luc Didry.
Ce rôle installera automatiquement un service qui démarrera lorsque le serveur se lancera. Il détectera également automatiquement quel gestionnaire de services est utilisé.
Exigences
L'utilisation de ce rôle n'installe pas Nginx ou Apache en tant que proxy inverse, vous devez le faire vous-même ! Consultez les [configurations d'exemple].
Variables du Rôle
Définissez l'utilisateur/groupe qui sera utilisé pour exécuter Lstu. Il est logique d'utiliser l'utilisateur/groupe du serveur web.
lstu_user: www-data
lstu_group: www-data
Définissez si Lstu doit être tenu à jour. (par défaut : non)
lstu_keep_updated: no
Si le mot de passe admin doit être enregistré sous forme hachée. (lstu_adminpwd
doit toujours être le mot de passe en texte clair !)
lstu_hash_adminpwd: yes
Il y a quelques valeurs obligatoires et beaucoup de valeurs optionnelles. Vérifiez toutes les variables possibles dans defaults/main.yml
.
# Obligatoire !
lstu_working_dir: "/var/www/example.com"
lstu_listen: "http://127.0.0.1:8080" # Ou un tableau, si plusieurs adresses.
lstu_contact: "admin@example.com"
lstu_secrets: ["tableau", "de", "secrets", "aléatoires"]
# Optionnel
lstu_proxy: no
lstu_adminpwd: "sup3r-secr3t"
lstu_theme: "default"
lstu_page_offset: 10
lstu_url_length: 8
lstu_provis_step: 5
lstu_provisioning: 100
lstu_prefix: "/"
lstu_allowed_domains: []
lstu_fixed_domain: "example.org"
lstu_db_type: "sqlite"
lstu_db_path: "lstu.db"
lstu_pgdb:
database: "lstu"
host: "localhost"
port: 5432
user: "DBUSER"
pwd: "DBPASSWORD"
max_connections: 1
lstu_mysqldb:
database: "lstu"
host: "localhost"
port: 3306
user: "DBUSER"
pwd: "DBPASSWORD"
max_connections: 5
lstu_ban_min_strike: 3
lstu_ban_blacklist: []
lstu_ban_whitelist: []
lstu_piwik:
url: "http://piwik.example.com"
idsite: "1"
minion:
enabled: no,
db_path: "minion.db"
pgdb:
database: "lstu_minion"
host: "localhost"
port: 5432
user: "DBUSER"
pwd: "DBPASSWORD"
mysqldb:
database: "lstu_minion"
host: "localhost"
port: 3306
user: "DBUSER"
pwd: "DBPASSWORD"
lstu_ldap:
uri: "ldaps://ldap.example.org"
user_tree: "ou=users,dc=example,dc=org"
bind_dn: "uid=ldap_user,ou=users,dc=example,dc=org"
bind_pwd: "secr3t"
user_attr: "uid"
user_filter: "(!(uid=ldap_user))"
lstu_htpasswd: "lstu.passwd"
lstu_session_duration: 3600
lstu_max_redir: 2
lstu_spam_blacklist_regex: "foo|bar"
lstu_spam_path_blacklist_regex: "foo|bar"
lstu_spam_whitelist_regex: "foo|bar"
lstu_skip_spamhaus: no
lstu_safebrowsing_api_key: ""
lstu_memcached_servers: []
lstu_csp: "default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; form-action 'self'; base-uri 'self'"
lstu_x_frame_options: "DENY"
lstu_x_content_type_options: "nosniff"
lstu_x_xss_protection: "1; mode=block"
lstu_log_creator_ip: no
Étiquettes du Rôle
Chaque partie de la configuration a une étiquette.
lstu:install
lstu:site
lstu:service
Dépendances
Aucune.
Exemple de Playbook
# playbook.yml
---
- hosts: servers
become: yes
vars_files:
- vars/main.yml
roles:
- { role: noplanman.lstu }
# vars/main.yml
---
lstu_working_dir: "/var/www/lstu.example.com"
lstu_listen: "http://127.0.0.1:8080"
lstu_contact: "admin@lstu.example.com"
lstu_secrets: ["Weiboe3a","Ahsahm0O","biPhah2u","Ki2teeph","Choihah4","ka7Oifia","aeT7eeb9","oYah4it7"]
lstu_adminpwd: "kohdah6DJieSh1CaTe1uWohKax9ahxeG"
Tests
Docker est utilisé pour tester le rôle avec différents systèmes d'exploitation.
Consultez le dossier tests
.
Licence
MIT
Install and run Lstu on a Debian-like system.
ansible-galaxy install noplanman.lstu