Skip to main content
50% off all plans, limited time. Starting at $2.48/mo
Directory Lister

Directory Lister

Directory Lister is a web-based directory browser for browsing and sharing files over HTTP. Point it at a folder and get a clean, searchable index. MIT licensed with 2,500+ GitHub stars.

At a glance

2.5k

GitHub stars

8

Page views

License MIT Version 5 OS Ubuntu Server 24.04 LTS Min RAM 1 GB IP IPV4,IPV6

Access

  • Open your browser: https://<SERVER-IP>
  • Accept the browser certificate warning because the installation uses a self-signed TLS certificate.
  • Authentication is required (Basic Auth popup)
  • Authentication method: HTTP Basic Auth
  • The login credentials are stored securely in: /root/.cloudzy-creds

Adding Files

  1. Place files and folders you want to share into: /root/directory-lister/files
  2. Directory Lister reads this directory directly, so newly added files appear automatically without restarting the application.

Important Files & Directories

  • Install Path: /root/directory-lister
  • Listed Files: /root/directory-lister/files
  • Docker Compose File: /root/directory-lister/docker-compose.yml
  • Environment File: /root/directory-lister/.env
  • Credentials: /root/directory-lister/.credentials
  • Nginx Config: /etc/nginx/sites-available/directory-lister
  • Basic Auth File: /etc/nginx/.htpasswd-directory-lister
  • TLS Certificate: /etc/nginx/ssl/directory-lister.crt
  • TLS Private Key: /etc/nginx/ssl/directory-lister.key

Service Management

View running containers:

docker compose -f /root/directory-lister/docker-compose.yml ps

Restart Directory Lister:

docker compose -f /root/directory-lister/docker-compose.yml restart

View Directory Lister logs:

cd /root/directory-lister && docker compose logs -f

Stop Directory Lister:

docker compose -f /root/directory-lister/docker-compose.yml stop

Start Directory Lister:

docker compose -f /root/directory-lister/docker-compose.yml start

Recreate Directory Lister:

docker compose -f /root/directory-lister/docker-compose.yml up -d

Check Nginx status:

systemctl status nginx

Restart Nginx:

systemctl restart nginx

Reload Nginx:

systemctl reload nginx

Validate the Nginx configuration:

nginx -t

Enabling HTTPS with a Domain

1. Point your domain to the server IP.

2. Edit /etc/nginx/sites-available/directory-lister and replace both server_name _; directives with your domain (e.g. server_name yourdomain.com;).

3. Install Certbot:

apt install -y certbot python3-certbot-nginx

4. Obtain a Let's Encrypt certificate:

certbot certonly --nginx --non-interactive --agree-tos --email [email protected] -d yourdomain.com

5. Edit /etc/nginx/sites-available/directory-lister and update the ssl_certificate and ssl_certificate_key directives to use your Let's Encrypt certificate.

Before:
    ssl_certificate /etc/nginx/ssl/directory-lister.crt;
    ssl_certificate_key /etc/nginx/ssl/directory-lister.key;
After:
    ssl_certificate  /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;

6. Reload Nginx to apply the changes:

systemctl reload nginx

7. Access Directory Lister at https://yourdomain.com.

Disable HTTP Basic Auth in Nginx (Optional)

To make Directory Lister publicly accessible without authentication, follow the steps below to disable HTTP Basic Auth.

Edit the Nginx site file: /etc/nginx/sites-available/directory-lister

Remove or comment out these lines:

auth_basic "Directory Lister";
auth_basic_user_file /etc/nginx/.htpasswd-directory-lister;

Reload Nginx:

systemctl restart nginx

Notes

  • Directory Lister runs in Docker behind NGINX.
  • Public access is protected using HTTP Basic Authentication.
  • Listed files are stored in /root/directory-lister/files.
  • The application container only has read access to the files directory.

More in File Hosting

Related apps.

Deploy Directory Lister now. From $2.48/mo.