A beautiful, feature-rich local file server
Project description
๐ Pineapplee
A clean, fast, local file server โ right in your browser.
PyPI ยท GitHub ยท Report a Bug
Pineapplee turns any folder on your machine into a shareable web interface โ browse, upload, download, and manage files from any device on your network, or share publicly with a single flag.
โจ Features
| ๐ Browse & Navigate | Clean file listing with sortable columns, breadcrumb trail, and folder navigation |
| โฌ๏ธ Upload | Drag-and-drop files or entire folders โ with real-time progress |
| โฌ๏ธ Download | Single files or bulk ZIP archives |
| ๐๏ธ Preview | Images, video, audio, PDFs, and text files โ all in-browser |
| โ๏ธ Rename & Delete | Manage files without leaving the browser |
| ๐ Public Share | One flag to expose your server publicly via Cloudflare Tunnel โ no account needed |
| ๐ Safe by default | Path traversal protection, symlink validation, upload size limits |
๐ Quick Start
pip install pineapplee
Already installed? Stay up to date:
pip install --upgrade pineapplee
# Serve the current directory
pineapplee
# Serve a specific path
pineapplee ~/Downloads
# Different port
pineapplee --port 9000
# Share publicly over the internet
pineapplee --public
# Check installed version
pineapplee --version
Open http://localhost:8089 โ and you're in.
๐ Usage
usage: pineapplee [-h] [-v] [--port PORT] [--public] [directory]
positional arguments:
directory Directory to serve (default: current directory)
options:
-h, --help show this help message and exit
-v, --version show installed version and exit
--port, -p Port to listen on (default: 8089)
--public Expose publicly via Cloudflare Tunnel
Local network sharing
Pineapple binds to 0.0.0.0, so any device on your LAN can reach it at the Network URL printed in the terminal:
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๐ Pineapple File Server โ
โฃโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโซ
โ โ
โ ๐ Serving /Users/you/Documents โ
โ ๐ Local http://localhost:8089 โ
โ ๐ Network http://192.168.1.5:8089 โ
โ ๐ฆ Max upload 500 MB โ
โ โ
โฃโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโซ
โ Press Ctrl+C to stop โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Public sharing
pineapplee --public
On first run this downloads the cloudflared binary (~50 MB, cached to ~/.pineapplee/bin/). A public trycloudflare.com URL is printed โ share it with anyone, anywhere.
๐ Security
- All file paths are validated and confined to the served directory
- Symlinks pointing outside the root are silently ignored
- Upload size capped at 500 MB by default
- Hidden files (dotfiles,
__pycache__,node_modules,.egg-info, etc.) are never shown
Note: Pineapple is designed for local and trusted-network use. Do not expose it to the public internet without understanding the implications.
๐ Requirements
- Python โฅ 3.8
- Flask โฅ 2.0
๐ License
MIT ยฉ KalaaKaar
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pineapplee-0.1.5.tar.gz.
File metadata
- Download URL: pineapplee-0.1.5.tar.gz
- Upload date:
- Size: 24.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2ee41c99675fff6b48bf11296388cee90e550580f5c0696feec46ea2f2c2fb3
|
|
| MD5 |
9c5303bfed1b5afcbd6f0db71e7b9d4b
|
|
| BLAKE2b-256 |
d908ca85211f97a261b2ac95f2715621d3b1a8280229655dc1c07fa037922fb9
|
File details
Details for the file pineapplee-0.1.5-py3-none-any.whl.
File metadata
- Download URL: pineapplee-0.1.5-py3-none-any.whl
- Upload date:
- Size: 22.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec60785553315162db08c4164362a2c60ab75f5fc6009045ceddcf0d06d4fd79
|
|
| MD5 |
d8e28bd365e339474b721f24abdbb4b1
|
|
| BLAKE2b-256 |
cb97b608bdf30d31599ceb19338ca4ebbd5890d8de1733982414f60da73859d1
|