diff --git a/roles/mirror/base/files/mirror.xslt b/roles/mirror/base/files/mirror.xslt new file mode 100644 index 0000000..d9b4a96 --- /dev/null +++ b/roles/mirror/base/files/mirror.xslt @@ -0,0 +1,83 @@ + + + + + + + + + + B + K + M + G + + + + + + + + + + + + / + + - + Directory + + + + + + + + + File + + + + + + + mirrors.foo.sh - <xsl:value-of select="$path" /> + + + + + + + +
+

Index of

+ + + + + + + + + + + +
NameLast ModifiedSizeType
Parent Directory
+
+ + + +
+
diff --git a/roles/mirror/base/files/static/icons.css b/roles/mirror/base/files/static/icons.css new file mode 100644 index 0000000..b8f187f --- /dev/null +++ b/roles/mirror/base/files/static/icons.css @@ -0,0 +1,307 @@ + +#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/files/static/icons/7z.png b/roles/mirror/base/files/static/icons/7z.png new file mode 100644 index 0000000..1548f69 Binary files /dev/null and b/roles/mirror/base/files/static/icons/7z.png differ diff --git a/roles/mirror/base/files/static/icons/avi.png b/roles/mirror/base/files/static/icons/avi.png new file mode 100644 index 0000000..aec7160 Binary files /dev/null and b/roles/mirror/base/files/static/icons/avi.png differ diff --git a/roles/mirror/base/files/static/icons/bash.png b/roles/mirror/base/files/static/icons/bash.png new file mode 100644 index 0000000..961d3a4 Binary files /dev/null and b/roles/mirror/base/files/static/icons/bash.png differ diff --git a/roles/mirror/base/files/static/icons/bin.png b/roles/mirror/base/files/static/icons/bin.png new file mode 100644 index 0000000..a6e6f00 Binary files /dev/null and b/roles/mirror/base/files/static/icons/bin.png differ diff --git a/roles/mirror/base/files/static/icons/bmp.png b/roles/mirror/base/files/static/icons/bmp.png new file mode 100644 index 0000000..42a66b2 Binary files /dev/null and b/roles/mirror/base/files/static/icons/bmp.png differ diff --git a/roles/mirror/base/files/static/icons/bz2.png b/roles/mirror/base/files/static/icons/bz2.png new file mode 100644 index 0000000..0a7a260 Binary files /dev/null and b/roles/mirror/base/files/static/icons/bz2.png differ diff --git a/roles/mirror/base/files/static/icons/c-lang.png b/roles/mirror/base/files/static/icons/c-lang.png new file mode 100644 index 0000000..32e5e17 Binary files /dev/null and b/roles/mirror/base/files/static/icons/c-lang.png differ diff --git a/roles/mirror/base/files/static/icons/changelog.png b/roles/mirror/base/files/static/icons/changelog.png new file mode 100644 index 0000000..0f9ed4d Binary files /dev/null and b/roles/mirror/base/files/static/icons/changelog.png differ diff --git a/roles/mirror/base/files/static/icons/chm.png b/roles/mirror/base/files/static/icons/chm.png new file mode 100644 index 0000000..3d7b07c Binary files /dev/null and b/roles/mirror/base/files/static/icons/chm.png differ diff --git a/roles/mirror/base/files/static/icons/copying.png b/roles/mirror/base/files/static/icons/copying.png new file mode 100644 index 0000000..a61ec13 Binary files /dev/null and b/roles/mirror/base/files/static/icons/copying.png differ diff --git a/roles/mirror/base/files/static/icons/cpp.png b/roles/mirror/base/files/static/icons/cpp.png new file mode 100644 index 0000000..87c10f7 Binary files /dev/null and b/roles/mirror/base/files/static/icons/cpp.png differ diff --git a/roles/mirror/base/files/static/icons/css.png b/roles/mirror/base/files/static/icons/css.png new file mode 100644 index 0000000..af6513d Binary files /dev/null and b/roles/mirror/base/files/static/icons/css.png differ diff --git a/roles/mirror/base/files/static/icons/csv.png b/roles/mirror/base/files/static/icons/csv.png new file mode 100644 index 0000000..78fb372 Binary files /dev/null and b/roles/mirror/base/files/static/icons/csv.png differ diff --git a/roles/mirror/base/files/static/icons/deb.png b/roles/mirror/base/files/static/icons/deb.png new file mode 100644 index 0000000..298e0dd Binary files /dev/null and b/roles/mirror/base/files/static/icons/deb.png differ diff --git a/roles/mirror/base/files/static/icons/djvu.png b/roles/mirror/base/files/static/icons/djvu.png new file mode 100644 index 0000000..6922d54 Binary files /dev/null and b/roles/mirror/base/files/static/icons/djvu.png differ diff --git a/roles/mirror/base/files/static/icons/doc.png b/roles/mirror/base/files/static/icons/doc.png new file mode 100644 index 0000000..834cdfa Binary files /dev/null and b/roles/mirror/base/files/static/icons/doc.png differ diff --git a/roles/mirror/base/files/static/icons/empty.png b/roles/mirror/base/files/static/icons/empty.png new file mode 100644 index 0000000..8f2ce2b Binary files /dev/null and b/roles/mirror/base/files/static/icons/empty.png differ diff --git a/roles/mirror/base/files/static/icons/epub.png b/roles/mirror/base/files/static/icons/epub.png new file mode 100644 index 0000000..5b1391e Binary files /dev/null and b/roles/mirror/base/files/static/icons/epub.png differ diff --git a/roles/mirror/base/files/static/icons/flac.png b/roles/mirror/base/files/static/icons/flac.png new file mode 100644 index 0000000..7f4d973 Binary files /dev/null and b/roles/mirror/base/files/static/icons/flac.png differ diff --git a/roles/mirror/base/files/static/icons/flv.png b/roles/mirror/base/files/static/icons/flv.png new file mode 100644 index 0000000..358f459 Binary files /dev/null and b/roles/mirror/base/files/static/icons/flv.png differ diff --git a/roles/mirror/base/files/static/icons/folder.png b/roles/mirror/base/files/static/icons/folder.png new file mode 100644 index 0000000..784e8fa Binary files /dev/null and b/roles/mirror/base/files/static/icons/folder.png differ diff --git a/roles/mirror/base/files/static/icons/gif.png b/roles/mirror/base/files/static/icons/gif.png new file mode 100644 index 0000000..810b7eb Binary files /dev/null and b/roles/mirror/base/files/static/icons/gif.png differ diff --git a/roles/mirror/base/files/static/icons/go-lang.png b/roles/mirror/base/files/static/icons/go-lang.png new file mode 100644 index 0000000..fe1d1e5 Binary files /dev/null and b/roles/mirror/base/files/static/icons/go-lang.png differ diff --git a/roles/mirror/base/files/static/icons/header.png b/roles/mirror/base/files/static/icons/header.png new file mode 100644 index 0000000..041f972 Binary files /dev/null and b/roles/mirror/base/files/static/icons/header.png differ diff --git a/roles/mirror/base/files/static/icons/html.png b/roles/mirror/base/files/static/icons/html.png new file mode 100644 index 0000000..6b088cd Binary files /dev/null and b/roles/mirror/base/files/static/icons/html.png differ diff --git a/roles/mirror/base/files/static/icons/ico.png b/roles/mirror/base/files/static/icons/ico.png new file mode 100644 index 0000000..cc1ea47 Binary files /dev/null and b/roles/mirror/base/files/static/icons/ico.png differ diff --git a/roles/mirror/base/files/static/icons/ini.png b/roles/mirror/base/files/static/icons/ini.png new file mode 100644 index 0000000..5187ad6 Binary files /dev/null and b/roles/mirror/base/files/static/icons/ini.png differ diff --git a/roles/mirror/base/files/static/icons/install.png b/roles/mirror/base/files/static/icons/install.png new file mode 100644 index 0000000..6a12420 Binary files /dev/null and b/roles/mirror/base/files/static/icons/install.png differ diff --git a/roles/mirror/base/files/static/icons/iso.png b/roles/mirror/base/files/static/icons/iso.png new file mode 100644 index 0000000..ef43223 Binary files /dev/null and b/roles/mirror/base/files/static/icons/iso.png differ diff --git a/roles/mirror/base/files/static/icons/java.png b/roles/mirror/base/files/static/icons/java.png new file mode 100644 index 0000000..c9255d7 Binary files /dev/null and b/roles/mirror/base/files/static/icons/java.png differ diff --git a/roles/mirror/base/files/static/icons/javascript.png b/roles/mirror/base/files/static/icons/javascript.png new file mode 100644 index 0000000..a0f57be Binary files /dev/null and b/roles/mirror/base/files/static/icons/javascript.png differ diff --git a/roles/mirror/base/files/static/icons/jpg.png b/roles/mirror/base/files/static/icons/jpg.png new file mode 100644 index 0000000..5c6abb8 Binary files /dev/null and b/roles/mirror/base/files/static/icons/jpg.png differ diff --git a/roles/mirror/base/files/static/icons/json.png b/roles/mirror/base/files/static/icons/json.png new file mode 100644 index 0000000..96611cb Binary files /dev/null and b/roles/mirror/base/files/static/icons/json.png differ diff --git a/roles/mirror/base/files/static/icons/less.png b/roles/mirror/base/files/static/icons/less.png new file mode 100644 index 0000000..e9d6bf7 Binary files /dev/null and b/roles/mirror/base/files/static/icons/less.png differ diff --git a/roles/mirror/base/files/static/icons/license.png b/roles/mirror/base/files/static/icons/license.png new file mode 100644 index 0000000..fc2e40d Binary files /dev/null and b/roles/mirror/base/files/static/icons/license.png differ diff --git a/roles/mirror/base/files/static/icons/lock.png b/roles/mirror/base/files/static/icons/lock.png new file mode 100644 index 0000000..2ebc4f6 Binary files /dev/null and b/roles/mirror/base/files/static/icons/lock.png differ diff --git a/roles/mirror/base/files/static/icons/lock2.png b/roles/mirror/base/files/static/icons/lock2.png new file mode 100644 index 0000000..03f3d41 Binary files /dev/null and b/roles/mirror/base/files/static/icons/lock2.png differ diff --git a/roles/mirror/base/files/static/icons/lock3.png b/roles/mirror/base/files/static/icons/lock3.png new file mode 100644 index 0000000..88a445f Binary files /dev/null and b/roles/mirror/base/files/static/icons/lock3.png differ diff --git a/roles/mirror/base/files/static/icons/lua.png b/roles/mirror/base/files/static/icons/lua.png new file mode 100644 index 0000000..7556b5b Binary files /dev/null and b/roles/mirror/base/files/static/icons/lua.png differ diff --git a/roles/mirror/base/files/static/icons/mkv.png b/roles/mirror/base/files/static/icons/mkv.png new file mode 100644 index 0000000..f92f7e1 Binary files /dev/null and b/roles/mirror/base/files/static/icons/mkv.png differ diff --git a/roles/mirror/base/files/static/icons/mobi.png b/roles/mirror/base/files/static/icons/mobi.png new file mode 100644 index 0000000..a8265ac Binary files /dev/null and b/roles/mirror/base/files/static/icons/mobi.png differ diff --git a/roles/mirror/base/files/static/icons/mov.png b/roles/mirror/base/files/static/icons/mov.png new file mode 100644 index 0000000..12b0d86 Binary files /dev/null and b/roles/mirror/base/files/static/icons/mov.png differ diff --git a/roles/mirror/base/files/static/icons/mp3.png b/roles/mirror/base/files/static/icons/mp3.png new file mode 100644 index 0000000..2e90119 Binary files /dev/null and b/roles/mirror/base/files/static/icons/mp3.png differ diff --git a/roles/mirror/base/files/static/icons/mp4.png b/roles/mirror/base/files/static/icons/mp4.png new file mode 100644 index 0000000..f13c8e0 Binary files /dev/null and b/roles/mirror/base/files/static/icons/mp4.png differ diff --git a/roles/mirror/base/files/static/icons/nfo.png b/roles/mirror/base/files/static/icons/nfo.png new file mode 100644 index 0000000..f5299a1 Binary files /dev/null and b/roles/mirror/base/files/static/icons/nfo.png differ diff --git a/roles/mirror/base/files/static/icons/nim.png b/roles/mirror/base/files/static/icons/nim.png new file mode 100644 index 0000000..9ae5e7c Binary files /dev/null and b/roles/mirror/base/files/static/icons/nim.png differ diff --git a/roles/mirror/base/files/static/icons/none.png b/roles/mirror/base/files/static/icons/none.png new file mode 100644 index 0000000..813f712 Binary files /dev/null and b/roles/mirror/base/files/static/icons/none.png differ diff --git a/roles/mirror/base/files/static/icons/pdf.png b/roles/mirror/base/files/static/icons/pdf.png new file mode 100644 index 0000000..0cd8c03 Binary files /dev/null and b/roles/mirror/base/files/static/icons/pdf.png differ diff --git a/roles/mirror/base/files/static/icons/perl.png b/roles/mirror/base/files/static/icons/perl.png new file mode 100644 index 0000000..9ceb835 Binary files /dev/null and b/roles/mirror/base/files/static/icons/perl.png differ diff --git a/roles/mirror/base/files/static/icons/php.png b/roles/mirror/base/files/static/icons/php.png new file mode 100644 index 0000000..d66010f Binary files /dev/null and b/roles/mirror/base/files/static/icons/php.png differ diff --git a/roles/mirror/base/files/static/icons/png.png b/roles/mirror/base/files/static/icons/png.png new file mode 100644 index 0000000..22f1e3c Binary files /dev/null and b/roles/mirror/base/files/static/icons/png.png differ diff --git a/roles/mirror/base/files/static/icons/psd.png b/roles/mirror/base/files/static/icons/psd.png new file mode 100644 index 0000000..75ba5f0 Binary files /dev/null and b/roles/mirror/base/files/static/icons/psd.png differ diff --git a/roles/mirror/base/files/static/icons/python.png b/roles/mirror/base/files/static/icons/python.png new file mode 100644 index 0000000..93e4a02 Binary files /dev/null and b/roles/mirror/base/files/static/icons/python.png differ diff --git a/roles/mirror/base/files/static/icons/rar.png b/roles/mirror/base/files/static/icons/rar.png new file mode 100644 index 0000000..3e95625 Binary files /dev/null and b/roles/mirror/base/files/static/icons/rar.png differ diff --git a/roles/mirror/base/files/static/icons/readme.png b/roles/mirror/base/files/static/icons/readme.png new file mode 100644 index 0000000..84f9b30 Binary files /dev/null and b/roles/mirror/base/files/static/icons/readme.png differ diff --git a/roles/mirror/base/files/static/icons/reg.png b/roles/mirror/base/files/static/icons/reg.png new file mode 100644 index 0000000..156afcd Binary files /dev/null and b/roles/mirror/base/files/static/icons/reg.png differ diff --git a/roles/mirror/base/files/static/icons/rp.png b/roles/mirror/base/files/static/icons/rp.png new file mode 100644 index 0000000..0daf0ae Binary files /dev/null and b/roles/mirror/base/files/static/icons/rp.png differ diff --git a/roles/mirror/base/files/static/icons/rpm.png b/roles/mirror/base/files/static/icons/rpm.png new file mode 100644 index 0000000..64699ac Binary files /dev/null and b/roles/mirror/base/files/static/icons/rpm.png differ diff --git a/roles/mirror/base/files/static/icons/rtf.png b/roles/mirror/base/files/static/icons/rtf.png new file mode 100644 index 0000000..87d54c1 Binary files /dev/null and b/roles/mirror/base/files/static/icons/rtf.png differ diff --git a/roles/mirror/base/files/static/icons/ruby.png b/roles/mirror/base/files/static/icons/ruby.png new file mode 100644 index 0000000..f07f59a Binary files /dev/null and b/roles/mirror/base/files/static/icons/ruby.png differ diff --git a/roles/mirror/base/files/static/icons/rust.png b/roles/mirror/base/files/static/icons/rust.png new file mode 100644 index 0000000..e45054e Binary files /dev/null and b/roles/mirror/base/files/static/icons/rust.png differ diff --git a/roles/mirror/base/files/static/icons/sql.png b/roles/mirror/base/files/static/icons/sql.png new file mode 100644 index 0000000..feaf4eb Binary files /dev/null and b/roles/mirror/base/files/static/icons/sql.png differ diff --git a/roles/mirror/base/files/static/icons/sqlite.png b/roles/mirror/base/files/static/icons/sqlite.png new file mode 100644 index 0000000..9bb17ba Binary files /dev/null and b/roles/mirror/base/files/static/icons/sqlite.png differ diff --git a/roles/mirror/base/files/static/icons/tar.png b/roles/mirror/base/files/static/icons/tar.png new file mode 100644 index 0000000..3c16e8c Binary files /dev/null and b/roles/mirror/base/files/static/icons/tar.png differ diff --git a/roles/mirror/base/files/static/icons/text.png b/roles/mirror/base/files/static/icons/text.png new file mode 100644 index 0000000..0f20740 Binary files /dev/null and b/roles/mirror/base/files/static/icons/text.png differ diff --git a/roles/mirror/base/files/static/icons/tgz.png b/roles/mirror/base/files/static/icons/tgz.png new file mode 100644 index 0000000..da3c2a2 Binary files /dev/null and b/roles/mirror/base/files/static/icons/tgz.png differ diff --git a/roles/mirror/base/files/static/icons/txt.png b/roles/mirror/base/files/static/icons/txt.png new file mode 100644 index 0000000..0f20740 Binary files /dev/null and b/roles/mirror/base/files/static/icons/txt.png differ diff --git a/roles/mirror/base/files/static/icons/wav.png b/roles/mirror/base/files/static/icons/wav.png new file mode 100644 index 0000000..eb33f79 Binary files /dev/null and b/roles/mirror/base/files/static/icons/wav.png differ diff --git a/roles/mirror/base/files/static/icons/xml.png b/roles/mirror/base/files/static/icons/xml.png new file mode 100644 index 0000000..4480a63 Binary files /dev/null and b/roles/mirror/base/files/static/icons/xml.png differ diff --git a/roles/mirror/base/files/static/icons/yaml.png b/roles/mirror/base/files/static/icons/yaml.png new file mode 100644 index 0000000..f84a566 Binary files /dev/null and b/roles/mirror/base/files/static/icons/yaml.png differ diff --git a/roles/mirror/base/files/static/icons/zip.png b/roles/mirror/base/files/static/icons/zip.png new file mode 100644 index 0000000..91dfd0d Binary files /dev/null and b/roles/mirror/base/files/static/icons/zip.png differ diff --git a/roles/mirror/base/files/static/index.html b/roles/mirror/base/files/static/index.html new file mode 100644 index 0000000..e69de29 diff --git a/roles/mirror/base/files/static/logo.png b/roles/mirror/base/files/static/logo.png new file mode 100644 index 0000000..b38372c Binary files /dev/null and b/roles/mirror/base/files/static/logo.png differ diff --git a/roles/mirror/base/files/static/mirror.css b/roles/mirror/base/files/static/mirror.css new file mode 100644 index 0000000..ad73357 --- /dev/null +++ b/roles/mirror/base/files/static/mirror.css @@ -0,0 +1,84 @@ + +body { + margin: 0; + font-family: Arial,sans-serif; + color: #172B4D; + position: absolute; + left: 0px; + right: 0px; + background: #f2f2f2; +} + +#navbar { + padding-top: 15px; + background-color: #000; +} + +.mirrorlist-button { + background-color: #000; + color: #fff; + padding: 16px; + font-size: 16px; + border: none; + cursor: pointer; +} +.mirrorlist { + position: absolute; + top: 10px; + right: 100px; + display: inline-block; + float: right; +} +.mirrorlist-content { + display: none; + position: absolute; + background-color: #f9f9f9; + min-width: 160px; + box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); + padding: 12px 16px; + z-index: 1; +} +.mirrorlist-content a { + display: block; + padding: 10px 10px; +} +.mirrorlist:hover .mirrorlist-content { + display: block; +} + +.hide { + display: none; +} + +// directory listings +#content { + margin: 50px; +} + +h1 { + font-size: 20px; + padding: 0px 50px; +} + +table { + padding: 0px 50px; +} + +a { + text-decoration: none; + color: #172b4d; +} + +a:hover { + text-decoration: underline; +} + +td, th { + padding: 5px 60px; + padding-left: 0; + text-align: left; +} + +hr { + border: 1px solid #172b4d; +} diff --git a/roles/mirror/base/meta/main.yml b/roles/mirror/base/meta/main.yml new file mode 100644 index 0000000..0b17fa3 --- /dev/null +++ b/roles/mirror/base/meta/main.yml @@ -0,0 +1,4 @@ +--- + +dependencies: + - {role: nginx/server} diff --git a/roles/mirror/base/tasks/main.yml b/roles/mirror/base/tasks/main.yml index 198abff..ffc723b 100644 --- a/roles/mirror/base/tasks/main.yml +++ b/roles/mirror/base/tasks/main.yml @@ -85,3 +85,28 @@ minute: 10 job: "find /var/log/sync-mirrors/ -xdev -type f -mtime +30 -name '*.log' -execdir rm {} \\+" user: mirror + +- name: copy static web content + synchronize: + dest: "/srv/web/{{ inventory_hostname }}/" + delete: yes + recursive: yes + 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 + template: + dest: "/etc/nginx/conf.d/{{ inventory_hostname }}/mirror.conf" + src: mirror.conf.j2 + mode: 0644 + owner: root + group: root + notify: restart nginx diff --git a/roles/mirror/base/templates/mirror.conf.j2 b/roles/mirror/base/templates/mirror.conf.j2 new file mode 100644 index 0000000..7c9718c --- /dev/null +++ b/roles/mirror/base/templates/mirror.conf.j2 @@ -0,0 +1,6 @@ + +location / { + autoindex on; + autoindex_format xml; + xslt_stylesheet /etc/nginx/mirror.xslt path="$uri"; +} diff --git a/roles/mirror/sync/tasks/main.yml b/roles/mirror/sync/tasks/main.yml index 639d431..b852bdc 100644 --- a/roles/mirror/sync/tasks/main.yml +++ b/roles/mirror/sync/tasks/main.yml @@ -15,3 +15,11 @@ mode: 0755 owner: mirror group: mirror + +- name: link target directory to web + file: + path: "/srv/web/{{ inventory_hostname }}/{{ label }}" + src: "/srv/mirrors/{{ label }}" + state: link + owner: mirror + group: mirror