Skip to content

timsnadden/ngx-fancyindex

Repository files navigation

Nginx Fancy Index module

The Fancy Index module makes possible the generation of file listings, like the built-in autoindex module does, but adding a touch of style. This is possible because the module module allows a certain degree of customization of the generated content:

  • Custom headers. Either local or stored remotely.
  • Custom footers. Either local or stored remotely.
  • Add you own CSS style rules.

This module is designed to work with Nginx, a high performance open source web server written by Igor Sysoev.

You will need the sources for Nginx. Any version starting from the 0.7 series onwards will work. Note that the modules might compile with versions in the 0.6 series by applying nginx-0.6-support.patch, but this is unsupported (YMMV).

  1. Unpack the Nginx sources:

    $ gunzip -c nginx-?.?.?.tar.gz | tar -xvf -
    
  2. Unpack the sources for the fancy indexing module:

    $ gunzip -c nginx-fancyindex-?.?.?.tar.gz | tar -xvf -
    
  3. Change to the directory which contains the Nginx sources, run the configuration script with the desired options and be sure to put an --add-module flag pointing to the directory which contains the source of the fancy indexing module:

    $ cd nginx-?.?.?
    $ ./configure --add-module=../nginx-fancyindex-?.?.?  [extra desired options]
    
  4. Build and install the software:

    $ make
    

    And then, as root:

    # make install
    
  5. Configure Nginx by using the modules' configuration directives.

You can test the default built-in style by adding the following lines into a server section in your Nginx configuration file:

location / {
  fancyindex on;              # Enable fancy indexes.
  fancyindex_exact_size off;  # Output human-readable file sizes.
}
Syntax:fancyindex [on | off]
Default:fancyindex off
Context:http, server, location
Description:Enables or disables fancy directory indexes.
Syntax:fancyindex_css_href uri
Default:fancyindex_css_href ""
Context:http, server, location
Description:Allows inserting a link to a CSS style sheet in generated listings. The provided uri parameter will be inserted as-is in a <link> HTML tag. The link is inserted after the built-in CSS rules, so you can override the default styles.
Syntax:fancyindex_exact_size [on | off]
Default:fancyindex_exact_size on
Context:http, server, location
Description:Defines how to represent file sizes in the directory listing; either accurately, or rounding off to the kilobyte, the megabyte and the gigabyte.
Syntax:fancyindex_footer path
Default:fancyindex_footer ""
Context:http, server, location
Description:Specifies which file should be inserted at the foot of directory listings. If set to an empty string, the default footer supplied by the module will be sent.

Warning

When inserting custom header/footer a subrequest will be issued so potentially any URL can be used as source for them. Although it will work with external URLs, only using internal ones is supported. External URLs are totally untested and using them will make Nginx block while waiting for the subrequest to complete. If you feel like external header/footer is a must-have for you, please let me know.

Syntax:fancyindex_header path
Default:fancyindex_header ""
Context:http, server, location
Description:Specifies which file should be inserted at the head of directory listings. If set to an empty string, the default header supplied by the module will be sent.
Syntax:fancyindex_ignore string1 [string2 [... stringN]]
Default:No default.
Context:http, server, location
Description:Specifies a list of file names which will be not be shown in generated listings. If Nginx was built with PCRE support strings are interpreted as regular expressions.
Syntax:fancyindex_localtime [on | off]
Default:fancyindex_localtime off
Context:http, server, location
Description:Enables showing file times as local time. Default is “off” (GMT time).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published