diff --git a/roles/mirror/base/files/mirror.xslt b/roles/mirror/base/files/mirror.xslt
deleted file mode 100644
index d9b4a96..0000000
--- a/roles/mirror/base/files/mirror.xslt
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-
-
- B
- K
- M
- G
-
-
-
-
-
-
-
-
-
-
-
- / |
- |
- - |
- Directory |
-
-
-
-
-
- |
- |
- |
- File |
-
-
-
-
-
-
- mirrors.foo.sh -
-
-
-
-
-
-
-
-

-
-
-
-
-
-
-
-
-
-
diff --git a/roles/mirror/base/files/static/head.html b/roles/mirror/base/files/static/head.html
new file mode 100644
index 0000000..8446b8b
--- /dev/null
+++ b/roles/mirror/base/files/static/head.html
@@ -0,0 +1,13 @@
+
+
+

+
+
+
diff --git a/roles/mirror/base/files/static/icons.css b/roles/mirror/base/files/static/icons.css
deleted file mode 100644
index b8f187f..0000000
--- a/roles/mirror/base/files/static/icons.css
+++ /dev/null
@@ -1,307 +0,0 @@
-
-#content a[href]:before {
- content: url(icons/none.png);
-}
-#content a[href$="/"]:before {
- content: url(icons/folder.png);
-}
-
-
-/** Checksums **/
-
-#content a[href~="MD5"]:before,
-#content a[href~="SHA1"]:before,
-#content a[href~="SHA256"]:before {
- content: url(icons/lock.png);
-}
-
-#content a[href$=".md5"]:before,
-#content a[href$=".sha1"]:before,
-#content a[href$=".sha256"]:before {
- content: url(icons/lock2.png);
-}
-
-#content a[href$=".pgp"]:before,
-#content a[href$=".asc"]:before,
-#content a[href$=".sig"]:before {
- content: url(icons/lock3.png);
-}
-
-
-/** Compressed **/
-
-#content a[href$=".7z"]:before {
- content: url(icons/7z.png);
-}
-
-#content a[href$=".bin"]:before,
-#content a[href$=".cue"]:before {
- content: url(icons/bin.png);
-}
-
-#content a[href$=".deb"]:before {
- content: url(icons/deb.png);
-}
-
-#content a[href$=".iso"]:before {
- content: url(icons/iso.png);
-}
-
-#content a[href$=".rar"]:before {
- content: url(icons/rar.png);
-}
-
-#content a[href$=".rpm"]:before {
- content: url(icons/rpm.png);
-}
-
-#content a[href$=".tar"]:before,
-#content a[href$=".tar.gz"]:before {
- content: url(icons/tar.png);
-}
-
-#content a[href$=".tgz"]:before {
- content: url(icons/tgz.png);
-}
-
-#content a[href$=".zip"]:before {
- content: url(icons/zip.png);
-}
-
-#content a[href$=".bz2"]:before {
- content: url(icons/bz2.png);
-}
-
-
-/** Data Storage **/
-
-#content a[href$=".csv"]:before {
- content: url(icons/csv.png);
-}
-
-#content a[href$=".ini"]:before {
- content: url(icons/ini.png);
-}
-
-#content a[href$=".json"]:before {
- content: url(icons/json.png);
-}
-
-#content a[href$=".sql"]:before {
- content: url(icons/sql.png);
-}
-
-#content a[href$=".sqlite"]:before {
- content: url(icons/sqlite.png);
-}
-
-#content a[href$=".reg"]:before {
- content: url(icons/reg.png);
-}
-
-#content a[href$=".xml"]:before {
- content: url(icons/xml.png);
-}
-
-#content a[href$=".yaml"]:before,
-#content a[href$=".yml"]:before {
- content: url(icons/yaml.png);
-}
-
-
-/** Documents **/
-
-#content a[href$=".chm"]:before {
- content: url(icons/chm.png);
-}
-
-#content a[href$=".djvu"]:before {
- content: url(icons/djvu.png);
-}
-
-#content a[href$=".mobi"]:before {
- content: url(icons/mobi.png);
-}
-
-#content a[href$=".pdf"]:before {
- content: url(icons/pdf.png);
-}
-
-#content a[href$=".txt"]:before {
- content: url(icons/text.png);
-}
-
-#content a[href$=".rtf"]:before {
- content: url(icons/rtf.png);
-}
-
-#content a[href$=".doc"]:before {
- content: url(icons/doc.png);
-}
-
-#content a[href$=".epub"]:before {
- content: url(icons/epub.png);
-}
-
-
-/** Information **/
-
-#content a[href~="README"]:before {
- content: url(icons/readme.png);
-}
-
-#content a[href~="CHANGELOG"]:before {
- content: url(icons/changelog.png);
-}
-
-#content a[href~="INSTALL"]:before {
- content: url(icons/install.png);
-}
-
-#content a[href~="LICENSE"]:before {
- content: url(icons/license.png);
-}
-
-#content a[href~="COPYING"]:before {
- content: url(icons/copying.png);
-}
-
-#content a[href$=".nfo"]:before,
-#content a[href$=".diz"]:before {
- content: url(icons/nfo.png);
-}
-
-
-/** Media Files **/
-
-#content a[href$=".flac"]:before {
- content: url(icons/flac.png);
-}
-
-#content a[href$=".mp3"]:before {
- content: url(icons/mp3.png);
-}
-
-#content a[href$=".wav"]:before {
- content: url(icons/wav.png);
-}
-
-#content a[href$=".bmp"]:before {
- content: url(icons/bmp.png);
-}
-
-#content a[href$=".gif"]:before {
- content: url(icons/gif.png);
-}
-
-#content a[href$=".jpg"]:before,
-#content a[href$=".jpeg"]:before {
- content: url(icons/jpg.png);
-}
-
-#content a[href$=".png"]:before {
- content: url(icons/png.png);
-}
-
-#content a[href$=".psd"]:before {
- content: url(icons/psd.png);
-}
-
-#content a[href$=".ra"]:before,
-#content a[href$=".rv"]:before {
- content: url(icons/rp.png);
-}
-
-#content a[href$=".avi"]:before {
- content: url(icons/avi.png);
-}
-
-#content a[href$=".flv"]:before {
- content: url(icons/flv.png);
-}
-
-#content a[href$=".mkv"]:before {
- content: url(icons/mkv.png);
-}
-
-#content a[href$=".mov"]:before {
- content: url(icons/mov.png);
-}
-
-#content a[href$=".mp4"]:before {
- content: url(icons/mp4.png);
-}
-
-
-/** Source Code **/
-
-#content a[href$=".sh"]:before {
- content: url(icons/bash.png);
-}
-
-#content a[href$=".cpp"]:before {
- content: url(icons/cpp.png);
-}
-
-#content a[href$=".h"]:before {
- content: url(icons/header.png);
-}
-
-#content a[href$=".c"]:before {
- content: url(icons/c-lang.png);
-}
-
-#content a[href$=".go"]:before {
- content: url(icons/go-lang.png);
-}
-
-#content a[href$=".html"]:before,
-#content a[href$=".htm"]:before {
- content: url(icons/html.png);
-}
-
-#content a[href$=".java"]:before,
-#content a[href$=".class"]:before {
- content: url(icons/java.png);
-}
-
-#content a[href$=".lua"]:before {
- content: url(icons/lua.png);
-}
-
-#content a[href$=".nim"]:before {
- content: url(icons/nim.png);
-}
-
-#content a[href$=".js"]:before {
- content: url(icons/javascript.png);
-}
-
-#content a[href$=".php"]:before {
- content: url(icons/php.png);
-}
-
-#content a[href$=".pl"]:before {
- content: url(icons/perl.png);
-}
-
-#content a[href$=".py"]:before {
- content: url(icons/python.png);
-}
-
-#content a[href$=".rb"]:before {
- content: url(icons/ruby.png);
-}
-
-#content a[href$=".rs"]:before,
-#content a[href$=".rlib"]:before {
- content: url(icons/rust.png);
-}
-
-#content a[href$=".css"]:before {
- content: url(icons/css.png);
-}
-
-#content a[href$=".less"]:before {
- content: url(icons/less.png);
-}
diff --git a/roles/mirror/base/meta/main.yml b/roles/mirror/base/meta/main.yml
index 0b17fa3..aa6a3b3 100644
--- a/roles/mirror/base/meta/main.yml
+++ b/roles/mirror/base/meta/main.yml
@@ -1,4 +1,4 @@
---
dependencies:
- - {role: nginx/server}
+ - {role: apache}
diff --git a/roles/mirror/base/tasks/main.yml b/roles/mirror/base/tasks/main.yml
index e1d8fab..0dd13c0 100644
--- a/roles/mirror/base/tasks/main.yml
+++ b/roles/mirror/base/tasks/main.yml
@@ -99,20 +99,11 @@
recursive: true
src: static
-- name: install nginx xslt config
- copy:
- dest: /etc/nginx/mirror.xslt
- src: mirror.xslt
- mode: 0644
- owner: root
- group: root
- notify: restart nginx
-
-- name: create nginx mirror config
+- name: create apache mirror config
template:
- dest: "/etc/nginx/conf.d/{{ inventory_hostname }}/mirror.conf"
src: mirror.conf.j2
+ dest: /etc/httpd/conf.local.d/mirror.conf
mode: 0644
owner: root
- group: root
- notify: restart nginx
+ group: "{{ ansible_wheel }}"
+ notify: restart apache
diff --git a/roles/mirror/base/templates/mirror.conf.j2 b/roles/mirror/base/templates/mirror.conf.j2
index 7c9718c..82c8887 100644
--- a/roles/mirror/base/templates/mirror.conf.j2
+++ b/roles/mirror/base/templates/mirror.conf.j2
@@ -1,6 +1,91 @@
+
+ Options +Indexes
-location / {
- autoindex on;
- autoindex_format xml;
- xslt_stylesheet /etc/nginx/mirror.xslt path="$uri";
-}
+ IndexOptions FancyIndexing HTMLTable VersionSort XHTML
+ IndexStyleSheet /static/mirror.css
+ HeaderName /static/head.html
+ ReadmeName /static/foot.html
+
+ DefaultIcon /static/icons/none.png
+ AddIcon /static/icons/folder.png ^^DIRECTORY^^
+
+ # Checksums
+ AddIcon /static/icons/lock.png MD5 SHA1 SHA256
+ AddIcon /static/icons/lock2.png .md5 .sha1 .sha256
+ AddIcon /static/icons/lock3.png .pgp .asc .sig
+
+ # Compressed
+ AddIcon /static/icons/7z.png .7z
+ AddIcon /static/icons/bin.png .bin .cue
+ AddIcon /static/icons/deb.png .deb
+ AddIcon /static/icons/iso.png .iso
+ AddIcon /static/icons/rar.png .rar
+ AddIcon /static/icons/rpm.png .rpm
+ AddIcon /static/icons/tar.png .tar .tar.gz
+ AddIcon /static/icons/tgz.png .tgz
+ AddIcon /static/icons/zip.png .zip
+ AddIcon /static/icons/bz2.png .bz2
+
+ # Data storage
+ AddIcon /static/icons/csv.png .csv
+ AddIcon /static/icons/ini.png .ini
+ AddIcon /static/icons/json.png .json
+ AddIcon /static/icons/sql.png .sql
+ AddIcon /static/icons/sqlite.png .sqlite
+ AddIcon /static/icons/reg.png .reg
+ AddIcon /static/icons/xml.png .xml
+ AddIcon /static/icons/yaml.png .yaml .yml
+
+ # Documents
+ AddIcon /static/icons/chm.png .chm
+ AddIcon /static/icons/djvu.png .djvu
+ AddIcon /static/icons/mobi.png .mobi
+ AddIcon /static/icons/pdf.png .pdf
+ AddIcon /static/icons/text.png .txt
+ AddIcon /static/icons/rtf.png .rtf
+ AddIcon /static/icons/doc.png .doc
+ AddIcon /static/icons/epub.png .epub
+
+ # Information
+ AddIcon /static/icons/readme.png README
+ AddIcon /static/icons/changelog.png CHANGELOG
+ AddIcon /static/icons/install.png INSTALL
+ AddIcon /static/icons/license.png LICENSE
+ AddIcon /static/icons/copying.png COPYING
+ AddIcon /static/icons/info.png .nfo .diz
+
+ # Media files
+ AddIcon /static/icons/flac.png .flac
+ AddIcon /static/icons/mp3.png .mp3
+ AddIcon /static/icons/wav.png .wav
+ AddIcon /static/icons/bmp.png .bmp
+ AddIcon /static/icons/gif.png .gif
+ AddIcon /static/icons/jpg.png .jpg .jpeg
+ AddIcon /static/icons/png.png .png
+ AddIcon /static/icons/psd.png .psd
+ AddIcon /static/icons/rp.png .ra .rv
+ AddIcon /static/icons/avi.png .avi
+ AddIcon /static/icons/flv.png .flv
+ AddIcon /static/icons/mkv.png .mkv
+ AddIcon /static/icons/mov.png .mov
+ AddIcon /static/icons/mp4.png .mp4
+
+ # Source code
+ AddIcon /static/icons/bash.png .sh .bash
+ AddIcon /static/icons/cpp.png .cpp
+ AddIcon /static/icons/header.png .h
+ AddIcon /static/icons/c-lang.png .c
+ AddIcon /static/icons/go-lang.png .go
+ AddIcon /static/icons/html.png .html .htm
+ AddIcon /static/icons/java.png .java .class
+ AddIcon /static/icons/lua.png .lua
+ AddIcon /static/icons/nim.png .nim
+ AddIcon /static/icons/javascript.png .js
+ AddIcon /static/icons/php.png .php
+ AddIcon /static/icons/perl.png .pl
+ AddIcon /static/icons/python.png .py .pyc
+ AddIcon /static/icons/ruby.png .rb
+ AddIcon /static/icons/rust.png .rs .rlib
+ AddIcon /static/icons/css.png .css
+ AddIcon /static/icons/less.png .less
+