Awesome
Apaxy
apaxy is a customisable theme built to enhance the experience of browsing web directories. It uses the mod_autoindex
Apache module - and some css - to override the default style of a directory listing.
Table of contents
Features
Apaxy may be basic, but it gives you a great deal of creative freedom when styling your directory.
- style your directory listing with css
- make it pop with javascript
- add welcome messages, download instructions or copyright notices
- add custom media type icons (requires editing the
.htaccess
file) - use custom error pages
Sadly, visual style is all you can work with. It's not possible to alter the generated table structure of the listing directory with Apaxy.
Installation
apaxy requires an apache (2.4+) http server. The configuration of the apache http server have to set an AllowOverride
statement for the Apaxy styled folder:
AllowOverride Options Indexes FileInfo
Quick start
If you would like, you can automate the installation of Apaxy with the included apaxy-configure.sh
script.
To get started, first open apaxy.config
in your favorite editor, then edit the apacheWebRootPath
and installWebPath
variables to correspond to your server's settings. Save the file and exit.
You can set some parameters of apaxy.config
on the command line instead of the config file. You can see the documentation of the cli with the following command: apaxy-configure.sh -h
.
Then run the configuration script as a user that can write to the installWebPath
directory. With apache under debian, this would be the www-data
user:
$ sudo -u www-data ./apaxy-configure.sh
The files will be copied to the web server directory, and modified automatically based on the settings specified.
Manual install
Let's assume you have a folder named share
in your server root directory (the path thus being http://mywebsite.com/share
) that you'd like to use as your listing directory:
- download and unzip apaxy
- copy and paste the contents of the
/apaxy
folder to your/share
folder - edit
htaccess.txt
(now in the/share
folder) and update all instances of paths marked with {FOLDERNAME} to point to your site root
So...
AddIconByType (gif,{FOLDERNAME}/theme/icons/gif.png) image/gif
Should be changed to...
AddIconByType (gif,/share/theme/icons/gif.png) image/gif
- if you want to enable the gallery feature, overwrite the header and footer files:
mv footer-lightgallery.html footer.html
mv header-lightgallery.html header.html
- edit
footer.html
, along with all the otherhtml
documents (in the/share/theme
folder) and update all instances of paths marked with {FOLDERNAME} to point to your site root
So...
<script src={FOLDERNAME}/theme/apaxy.js></script>
Should be changed to...
<script src=/share/theme/apaxy.js></script>
- once done, rename
htaccess.txt
to.htaccess
in the/share
directory - treat yo'self, you're done!
Docker image
A local Demo can be started with docker.
docker-compose up
Apaxy themes
If you'd like to alter the default Apaxy theme, look in the /theme
folder and you'll find the following files:
header.html
footer.html
style.css
Edit these as you would any other html or css file.
Adding your own icons is a little more involved. You'll need to edit the main Apaxy .htaccess
file. Look for the following as an example:
AddIconByType (gif,{FOLDERNAME}/theme/icons/gif.png) image/gif
The above rule will assign an icon named gif.png
from the directory {FOLDERNAME}/theme/icons/
to any file whose media type is image/gif
.
This url path is relative to your site's root.
Media types
The default apaxy theme /themes/apaxy
has icons in place for the following media types:
3dml 3ds 3g2 3gp 7z aac adp ai aif aifc aiff apk appcache asf asm asx atom au avi azw bat bin bmp bpk btif bz bz2 c cab caf cb7 cba cbr cbt cbz cc cgm class cmx com conf cpp css csv curl cxx dcurl deb def deploy dic diff dist distz djv djvu dll dmg dms doc docx dot dra dsc dtd dts dtshd dump dvb dwg dxf ecelp4800 ecelp7470 ecelp9600 elc eol eps epub etx exe f f4v f77 f90 fbs fh fh4 fh5 fh7 fhc flac fli flv flx fly for fpx fst fvt g3 gif gv gz gzip h h261 h263 h264 hh hpp htm html ico ics ief ifb in iso jad jar java jpe jpeg jpg jpgm jpgv jpm js json kar ktx latex list log lrf lvp m1v m2a m2v m3a m3u m3u8 m4a m4u m4v Makefile man mar markdown mcurl md mdb mdi me mid midi mj2 mjp2 mk3d mka mks mkv mmr mng mobi mov movie mp2 mp2a mp3 mp4 mp4a mp4v mpe mpeg mpg mpg4 mpga mpkg ms msi mxu n3 nfo npx odb odc odf odft odg odi odm odp ods odt oga ogg ogv opml otc otf otg oth oti otp ots ott p pas patch pbm pct pcx pdf pgm php phtml pic pkg pls png pnm pot ppm pps ppsx ppt pptx prc ps psd py pya pyv qt ra ram rar ras rb README rgb rip rlc rmi rmp roff rpm rss rtf rtx s s3m sass scss scurl sfv sgi sgm sgml sh sid sil smv snd so spot spx sql sub svg svgz t tar tex text tga tif tiff torrent tr tsv ttc ttf ttl txt udeb uri uris urls uu uva uvg uvh uvi uvm uvp uvs uvu uvv uvva uvvg uvvh uvvi uvvm uvvp uvvs uvvu uvvv vcard vcf vcs viv vob wav wax wbmp wdp weba webm webp wm wma wml wmls wmv wmx woff woff2 wvx xbm xht xhtml xif xla xlc xlm xls xlsx xlt xlw xm xml xpmxwd xsl zip
Gallery
You can enable a gallery feature on apaxy. This feature is based on lightgallery.js.
See installation section for more information.
Troubleshooting
Make sure the options set in .htaccess
files of Apaxy can actually be changed. This means that you need to allow to override the used options in your apache configuration of the directory apaxy used with: AllowOverride Indexes
.
Find more information in the in the apache documentation.
Credits
apaxy owes its existence to the amazing h5ai by Lars Jung. Had I not seen this, I would never have looked into making my own (probably way less useful) version.
Faenza icons are used in the apaxy
theme. Faenza icon theme has been released under GPLv3 licence.
Licence
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.