Skip to content

noplanman/ansible-role-lutim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ansible Role for Lutim (Let's Upload That Image)

Build Status Ansible Role


🚀 Development has moved to git.feneas.org.

(The repository on GitHub is only a mirror, so fork on Feneas to contribute. No registration needed, just sign in with your GitHub account.)


This role installs and configures Lutim on Debian/Ubuntu servers. Find out more about Lutim, created by Luc Didry.

This role will automatically install a service that will start when the server boots up. It will figure out which service manager is being used automatically too.

Requirements

Using this role doesn't install Nginx or Apache as a reverse proxy, you need to do that yourself! Take a look at the example configurations.

Role Variables

Set the user/group that will be used to run Lutim. It makes sense to use the webserver user/group.

lutim_user: www-data
lutim_group: www-data

Set if Lutim should be kept up to date. (default: no)

lutim_keep_updated: no

There are a few mandatory and many optional values. Check all possible variables in defaults/main.yml.

# Required!
lutim_working_dir: "/var/www/example.com"
lutim_listen: "http://127.0.0.1:8080"    # Or an array, if multiple addresses.
lutim_contact: "admin@example.com"
lutim_secrets: ["array", "of", "random", "secrets"]

# Optional
lutim_theme: "default"
lutim_proxy: no
lutim_url_length: 8
lutim_crypto_key_length: 8
lutim_provis_step: 5
lutim_provisioning: 100
lutim_anti_flood_delay: 5
lutim_tweet_card_via: "@foo"
lutim_max_file_size: 10485760
lutim_piwik_img: ""
lutim_hosted_by: ""
lutim_broadcast_message: ""
lutim_allowed_domains: []
lutim_default_delay: 0
lutim_max_delay: 0
lutim_always_encrypt: no
lutim_token_length: 24
lutim_prefix: "/"
lutim_db_type: "sqlite"
lutim_db_path: "lutim.db"
lutim_pgdb:
    database: "lutim"
    host: "localhost"
    user: "DBUSER"
    pwd: "DBPASSWORD"
minion:
    enabled: yes
    db_type: "sqlite"
    db_path: "minion.db" # SQLite ONLY
    pgdb:                # PostgreSQL ONLY
        database: "lutim_minion"
        host: "localhost"
        user: "DBUSER"
        pwd: "DBPASSWORD"
lutim_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))"
lutim_htpasswd: "lutim.passwd"
lutim_session_duration: 3600
lutim_disable_img_stats: no
lutim_thumbnail_size: 100
lutim_max_files_in_zip: 15
lutim_cache_max_size: 0
lutim_memcached_servers: []
lutim_quiet_logs: no
lutim_csp: "default-src 'none'; script-src 'self'; style-src 'self'; img-src 'self' data:; font-src 'self'; form-action 'self'; base-uri 'self'"
lutim_x_frame_options: "DENY"
lutim_x_content_type_options: "nosniff"
lutim_x_xss_protection: "1; mode=block"
lutim_fixed_domain: "example.org"
lutim_stats_day_num: 365
lutim_keep_ip_during: 365
lutim_max_total_size: 10*1024*1024*1024
lutim_policy_when_full: "warn"
lutim_delete_no_longer_viewed_files: 90

Role Tags

Each part of the setup has a tag.

lutim:install
lutim:site
lutim:service

Dependencies

None.

Example Playbook

# playbook.yml
---
- hosts: servers
  become: yes
  vars_files:
    - vars/main.yml
  roles:
    - { role: noplanman.lutim }
# vars/main.yml
---
lutim_working_dir: "/var/www/lutim.example.com"
lutim_listen: "http://127.0.0.1:8080"
lutim_contact: "admin@lutim.example.com"
lutim_secrets: ["eo5jeiD8","OhshiGh2","mieSh0po","iD6ohNg2","gueb4Mee","VoeNgei5","kaV3EeT2","en9Ohshi"]
lutim_broadcast_message: "Welcome to Lutim. Upload those images!"

Tests

Docker is used to test the role with different operating systems.

Check the tests folder.

License

MIT