A lightweight, no-database file archive system hosted on GitHub Pages. SimpleDB provides permanent, publicly accessible URLs for your files with zero configuration.
- π Simple File Hosting - Upload files to
/files/directory and they're instantly available - π Permanent URLs - Every file gets a clean, permanent URL
- β‘ GitHub Pages Powered - No servers, no databases, no maintenance
- π Live File Listing - Automatically displays first 10 files from your repository
- πΎ Smart Caching - 30-minute cache to minimize API calls
- π Manual Refresh - Update file list with one click
- π± Responsive Design - Works on all devices
- π¨ Clean UI - Modern, readable interface
- βΏ Accessible - ARIA labels and semantic HTML
git clone https://github.com/dryfish09/SimpleDB.git
cd SimpleDBPlace any files in the files/ directory:
simpledb/
βββ index.html
βββ README.md
βββ _config.yml
βββ files/
βββ your-file.pdf
βββ image.jpg
βββ data.csv
git add .
git commit -m "Add files to SimpleDB"
git push origin mainYour files are now available at:
https://dryfish09.github.io/SimpleDB/files/your-file.pdf
SimpleDB/
βββ index.html # Main page with file listing
βββ README.md # This documentation
βββ _config.yml # GitHub Pages configuration
βββ .nojekyll # Disables Jekyll processing
βββ files/ # Directory for your files
βββ (your files here)
| Resource | URL |
|---|---|
| Main Page | https://dryfish09.github.io/SimpleDB/ |
| File Access | https://dryfish09.github.io/SimpleDB/files/filename.ext |
| GitHub Repo | https://github.com/dryfish09/SimpleDB |
- File Storage: Files are stored in the
files/directory of the GitHub repository - File Listing: Uses GitHub API to fetch and display the first 10 files
- Caching: Data is cached in
localStoragefor 30 minutes to reduce API calls - Direct Access: Files are served directly via GitHub Pages CDN
The page makes two GitHub API calls:
GET /repos/dryfish09/SimpleDB/contents/files- Lists filesGET /repos/dryfish09/SimpleDB/commits?path=files- Gets commit dates
Rate Limits: 60 unauthenticated requests per hour. Caching helps stay within limits.
- Navigate to the
files/directory in your repository - Click "Add file" β "Upload files"
- Select your files and commit
# Add a file
cp /path/to/your/file.pdf files/
git add files/file.pdf
git commit -m "Add file.pdf"
git push
# Add multiple files
cp *.pdf files/
git add files/
git commit -m "Add multiple files"
git pushgh repo clone dryfish09/SimpleDB
cd SimpleDB
cp /path/to/file.pdf files/
gh add files/file.pdf
gh commit -m "Add file.pdf"
gh pushtitle: SimpleDB
description: Lightweight File Archive
baseurl: "/SimpleDB"
url: "https://dryfish09.github.io"const CACHE_DURATION = 30 * 60 * 1000; // 30 minutesAdjust this value to change how long data is cached.
Visit the live site: https://dryfish09.github.io/SimpleDB/
Update these variables in index.html:
const USERNAME = 'dryfish09'; // Your GitHub username
const REPO = 'SimpleDB'; // Your repository name
const FILES_PATH = 'files'; // Directory containing filesModify the CSS in the <style> section of index.html to match your branding.
Add or modify file icon mappings:
const FILE_ICONS = {
'pdf': 'π',
'doc': 'π',
// Add your own mappings
};Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
# Clone your fork
git clone https://github.com/your-username/SimpleDB.git
cd SimpleDB
# Make changes
# Test locally by opening index.html in a browser
# Or use a local server:
python3 -m http.server 8000
# Visit http://localhost:8000- First Load: ~500ms (API calls)
- Cached Load: ~50ms (localStorage)
- File Size: ~15KB (HTML/CSS/JS)
- API Calls: 2 per refresh (or 60/hour max)
- Files are publicly accessible via their URLs
- No authentication required (intentional for simplicity)
- All files are served over HTTPS
- No data is stored server-side (everything is static)
- GitHub account
- Git (for command-line usage)
- Web browser (Chrome, Firefox, Safari, Edge)
- Rate Limiting: 60 unauthenticated API requests per hour
- Mitigation: 30-minute caching
- Large Files: GitHub has a 100MB file limit
- Use Git LFS for larger files
- Special Characters: Some filenames may need URL encoding
- Handled automatically by the page
- β File listing
- β Direct downloads
- β Smart caching
- β Rate limit handling
- β Responsive design
- β Accessibility
- β Error handling
- β Auto-refresh
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub Pages for hosting
- GitHub API for file listing
- All contributors and users of SimpleDB
- GitHub: @dryfish09
- Project Link: https://github.com/dryfish09/SimpleDB