Keep in mind, this mode can be used for production, but it is not recommended.

The whole directory must be scanned on each request. This might not make a big impact on small documentations but can be a bottleneck on bigger ones.

Running Locally

There are several ways to run the docs locally. You can use something like MAMP or WAMP.

The easiest is to use PHP’s built-in server.

For that i’ve included a short command, run daux serve in the projects folder to start the local web server. By default the server will run at: http://localhost:8085

Running Remotely

Clean URLs configuration

Daux provides native support for Clean URLs provided the webserver has its URL Rewrite module enabled. To enable the same, set the toggle in the config.json file in the /docs folder.

{
    "live": {
        "clean_urls": true
    }
}

Apache

Copy the files from the repo to a web server that can run PHP 8.1.0 or newer.

There is an included .htaccess for Apache web server.

You can follow this tutorial for install apache on Ubuntu/Debian.

Nginx

Daux.io works perfectly fine on Nginx too, just drop this configuration in your nginx.conf

You can follow this tutorial for install nginx on Ubuntu/Debian.

server {
    listen 8085;
    server_name  localhost;

    index index.html index.php;
    charset utf-8;

    root /var/www/docs;

    location / {
        if (!-e $request_filename){
            rewrite ^(.*)$ /index.php$1;
        }
    }

    location ~ \.php {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass unix:/var/run/php5-fpm.sock;
        #fastcgi_pass   127.0.0.1:9000;
        fastcgi_index index.php;

        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

IIS

If you have set up a local or remote IIS web site, you may need a web.config with:

  • A rewrite configuration, for handling clean urls.
  • A mime type handler for less files, if using a custom theme.

Clean URLs

The web.config needs an entry for <rewrite> under <system.webServer>:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Main Rule" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAll">
                        <add
                            input="{REQUEST_FILENAME}"
                            matchType="IsFile"
                            negate="true"
                        />
                        <add
                            input="{REQUEST_FILENAME}"
                            matchType="IsDirectory"
                            negate="true"
                        />
                    </conditions>
                    <action
                        type="Rewrite"
                        url="index.php"
                        appendQueryString="false"
                    />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

To use clean URLs on IIS 6, you will need to use a custom URL rewrite module, such as URL Rewriter.

Docker

This is not meant for production use, but you can bundle your documentation in Daux’s docker container

FROM daux/daux.io

WORKDIR /daux/
COPY docs/ /daux/docs/

EXPOSE 80
ENTRYPOINT [ "php", "-S", "0.0.0.0:80", "index.php" ]

When you add this to a Dockerfile and run docker build --name my-daux-doc . and then docker --rm run -p 8000:80 my-daux-doc

You can access your documentation at localhost:8000