# System Requirements

The following list contains all the requirements that your system hast to fulfill to run saaster.\
For local development we strongly recommend the usage of the docker configuration that is provided by saaster.&#x20;

{% content-ref url="/pages/5SWiRIyjSaewdML6YMno" %}
[Local development](/development/local-development.md)
{% endcontent-ref %}

### CFML Engine

Saaster requires the CFML engine [Lucee](http://lucee.org) 5.3.9+

### **Operating Systems**

Your Lucee engine can be installed on Linux, Mac or Windows.

### **Database Engines**

Saaster requires [MySQL 5.7](https://dev.mysql.com/downloads/mysql/5.7.html)

### Web Server

Saaster should run on all popular web servers. Saaster got tested with IIS and the [Tuckey servlet filter](http://tuckey.org/urlrewrite/). The chosen web server should support URL rewriting.

Example configuration:

{% tabs %}
{% tab title="IIS" %}

```xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                 <rule name="API" stopProcessing="true">
                    <match url="^/api/(.*)$" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="api/index.cfm/{R:1}" appendQueryString="true" />
                </rule>	
	        <rule name="SEF" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.cfm/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>		
    </system.webServer>
</configuration>

```

{% endtab %}

{% tab title=" Tuckey" %}

```xml
<?xml version="1.0" encoding="utf-8"?>
<urlrewrite>
    <rule>
        <name>Rewrite API</name>
	<from>^/api/(.+)$</from>
        <condition type="request-filename" operator="notdir"/>
        <condition type="request-filename" operator="notfile"/>
        <to type="passthrough" qsappend="true" >/api/index.cfm/$1</to>
    </rule>

    <rule>
        <name>Rewrite Main</name>
	<from>^/(.+)$</from>
	<condition type="request-uri" operator="notequal">/lucee/admin/server.cfm</condition>
	<condition type="request-uri" operator="notequal">/lucee/admin/web.cfm</condition>
        <condition type="request-uri" operator="notequal">/api/</condition>
	<condition type="request-uri" operator="notequal">/(index.cfm|robots.txt|osd.xml|flex2gateway|cfide|cfformgateway|railo-context|lucee|admin-context|modules/contentbox-dsncreator|modules/contentbox-installer|modules/contentbox|files|images|js|javascripts|css|styles|config).*</condition>
        <condition type="request-uri" operator="notequal">\.(bmp|gif|jpe?g|png|css|js|txt|xls|ico|swf|woff|ttf|otf)$</condition>
        <condition type="request-filename" operator="notdir"/>
        <condition type="request-filename" operator="notfile"/>
        <to type="passthrough" qsappend="true" >/index.cfm/$1</to>
    </rule>
</urlrewrite>

```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.saaster.io/getting-started/system-requirements.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
