Skip to content

gradientwolf/pycloudvault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Server with password-protected landing page

A lightweight directory indexing and password protection tool for static file servers.

This script generates index.html files for all directories and subdirectories, with password protection for the top-level directory.

Features

  • Recursively generates index.html files for any directory structure
  • Password protects the main index.html while keeping subdirectories accessible
  • Mobile-friendly, responsive design
  • "Remember me" functionality for 7 days
  • Works on any static hosting platform (Google Cloud Storage, S3, GitHub Pages, etc.)
  • No server-side dependencies - pure HTML, CSS, and JavaScript
  • Optional file filtering to include only specific file types

Installation

# Clone the repository
git clone https://github.com/gradientwolf/pycloudvault.git
cd pycloudvault

# Install dependencies
pip install pycryptodome

Usage

python encrypt_indexpage.py /path/to/directory --password YOUR_PASSWORD

Options

--password, -p  Password for accessing the top-level directory (required)
--filter,   -f  Include only files matching pattern (e.g., "*.jpg")
--verbose,  -v  Go verbose in output
--dryrun,   -d  Test without writing changes
--footer,   -b  Custom footer text (banner)

Example

# Create index files for your Documents folder with password protection
python encrypt_indexpage.py ~/Documents --password mysecret --verbose

# Only include PDF files in the listings
python encrypt_indexpage.py ~/Documents --password mysecret --filter "*.pdf"

# Add custom footer
python encrypt_indexpage.py ~/Documents --password mysecret --footer "© 2025 My Company"

Hosting on Google Cloud Storage

Quick Deployment

If using GCP, you could use the included landingpage_upload.sh script for a one-command process:

# Make the script executable
chmod +x landingpage_upload.sh

# Run the script with your password
./landingpage_upload.sh mysecret

The script does this:

  1. Removes any existing index.html files
  2. Generates new index files with password protection
  3. Syncs everything to your Google Cloud Storage bucket

Manual Deployment

  1. Generate your index files:

    python encrypt_indexpage.py ./my_files --password mysecret
  2. Upload to your GCS bucket:

    gsutil -m rsync -r -d . gs://your-bucket-name/
  3. Set bucket permissions and enable website hosting in the Google Cloud Console.

  4. Access your file server at the GCS website URL.

How It Works

  • The script traverses your directory structure and creates index.html files in each folder
  • The top-level index.html contains a password protection mechanism
  • Subdirectory navigation links point to each folder's index.html file
  • Password verification happens entirely client-side using JavaScript
  • Login status is remembered using browser local storage

Security Note

This tool uses simple client-side protection and is suitable for casual use or internal sharing. It is not intended for highly sensitive data, as the content is only base64-encoded, not encrypted with strong cryptography.

License

MIT

About

An encrypted landing page generator, with simple design

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published