Getting started

Database support

It is recommended that you install a database server. You can install one on the same host as Foodsoft or choose a different host:


In case you chose a different host, you will need to specify which of your database servers the Foodsoft instance should use by specifying the database server host as foodsoft__database_server.

Webserver support

Currently, only Nginx is supported using debops.nginx.

You will need to install Nginx with Passenger support by setting:

nginx_flavor: 'passenger'

in your inventory.

Example inventory

To manage Foodsoft on a given host or set of hosts, they need to be added to the [debops_service_foodsoft_nginx] Ansible group in the inventory:



Example playbook

Ansible playbook that uses the debops-contrib.foodsoft role together with debops.nginx:


- name: Setup and manage Foodsoft with Nginx as webserver
  hosts: [ 'debops_service_foodsoft_nginx' ]
  become: True

  environment: '{{ inventory__environment | d({})
                   | combine(inventory__group_environment | d({}))
                   | combine(inventory__host_environment  | d({})) }}'


    - role: debops.apt_preferences
      tags: [ 'role::apt_preferences' ]
        - '{{ ruby__apt_preferences__dependent_list }}'
        - '{{ nginx__apt_preferences__dependent_list }}'

    - role: debops.ferm
      tags: [ 'role::ferm' ]
        - '{{ nginx__ferm__dependent_rules }}'

    - role: debops.mariadb
      tags: [ 'role::mariadb' ]
      mariadb__dependent_databases: '{{ foodsoft__mariadb__dependent_databases }}'
      mariadb__dependent_users: '{{ foodsoft__mariadb__dependent_users }}'
      when: (foodsoft__database == 'mariadb')

    - role: debops.ruby
      tags: [ 'role::ruby' ]

    - role: debops.nginx
      tags: [ 'role::nginx' ]
        - '{{ foodsoft__nginx__dependent_servers }}'

    - role: debops-contrib.foodsoft
      tags: [ 'role::foodsoft' ]

The playbook is shipped with this role under ./docs/playbooks/ from which you can symlink it to your playbook directory. In case you use multiple DebOps Contrib roles, consider using the DebOps Contrib playbooks.

Ansible tags

You can use Ansible --tags or --skip-tags parameters to limit what tasks are performed during Ansible run. This can be used after a host was first configured to speed up playbook execution, when you are sure that most of the configuration is already in the desired state.

Available role tags:

Main role tag, should be used in the playbook to execute all of the role tasks as well as role dependencies.
Tasks related to system package management like installing or removing packages.
Tasks related to configuring Foodsoft.