You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mailu/setup
Dimitri Huisman f9efbeb7c6 Remove not-used DB_PORT/ROUNDCUBE_DB_PORT environment variables. Document how to specify port for DB URL 2 years ago
..
flavors Merge #2035 2 years ago
static Process code review comments (PR #2069). 2 years ago
templates Remove not-used DB_PORT/ROUNDCUBE_DB_PORT environment variables. Document how to specify port for DB URL 2 years ago
.env Revert accidental setup commits and fix code/pre tags 5 years ago
Dockerfile Process code review remarks 3 years ago
README.md Remove Mailu PostgreSQL. Make roundcube database configurable via setup. Fix #1838. 2 years ago
docker-compose.yml Revert accidental setup commits and fix code/pre tags 5 years ago
main.py Rename the config dir to setup 6 years ago
requirements.txt Adapt requirements.txt to use pinned versions. 3 years ago
server.py Remove dot in blueprint name to prevent critical flask initialisation error. 3 years ago

README.md

Adding more flavors/steps

(Everything will go under setup/ directory - using Kubernetes flavor as example)

Until this point, the app is working as it follows:

  • when accesing the setup page it will display the flavors selection step (templates/steps/flavor.html)
  • after you choose your desired flavor it will iterare over the files in the flavor directory and building the page (templates/steps/config.html is general for all flavors)
  • when you complete all required fields and press "Setup Mailu" button it will redirect you to the setup page (flavors/choosen-flavor/setup.html)

To add a new flavor you need to create a directory under templates/steps/ in which you are adding actual steps. Eg: Adding a WIP step we'll create templates/steps/kubernetes/wip.html

Note that wizard.html is iterating over files in this directory and building the page. Files are prefixed with a number for sorting purposes.

wip.html will start with

{% call macros.panel("info", "Step X - Work in progress") %}

and end with

{% endcall %}

You store variable from front-page using the name attribute inside tag. In the example below the string entered in the input field is stored in the variable named var_test

<input type="text" name="var_test">

In order to use the variable furter you use it like {{ var_test }}

In the setup page (flavors/kubernetes/setup.html) you can add steps by importing macros

{% import "macros.html" as macros %}

and start and end every step with

{% call macros.panel("info", "Step X - Title") %}
-------------------
{% endcall %}

Generating a file

Create the file template in flavors/kubernetes/ (eg. file.txt) in which you save your variables

ROOT = {{ root }}
MY_VAR = {{ var_test }}

When you submit to Setup Mailu the file will be generated. In order to get the file add the following command to setup.html

<p>curl {{ url_for('.file', uid=uid, filepath='file.txt', _external=True) }} > file.txt</p>