pineapplee 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 pineapplee contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,148 @@
1
+ Metadata-Version: 2.4
2
+ Name: pineapplee
3
+ Version: 0.1.0
4
+ Summary: A beautiful, feature-rich local file server
5
+ Author: KalaaKaar
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/ApoorvDixitt/Pinapplee
8
+ Project-URL: Repository, https://github.com/ApoorvDixitt/Pinapplee
9
+ Keywords: file-server,local,flask,cloudflare,sharing
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.8
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Environment :: Console
19
+ Classifier: Environment :: Web Environment
20
+ Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
21
+ Classifier: Topic :: Utilities
22
+ Requires-Python: >=3.8
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: flask>=2.0
26
+ Requires-Dist: werkzeug>=2.0
27
+ Dynamic: license-file
28
+
29
+ <div align="center">
30
+
31
+ # 🍍 Pineapple
32
+
33
+ **A clean, fast, local file server — right in your browser.**
34
+
35
+ [![PyPI version](https://img.shields.io/pypi/v/pineapplee?color=f59e0b&logo=python&logoColor=white)](https://pypi.org/project/pineapplee/)
36
+ [![Python](https://img.shields.io/pypi/pyversions/pineapplee?color=3b82f6)](https://pypi.org/project/pineapplee/)
37
+ [![License: MIT](https://img.shields.io/badge/license-MIT-10b981.svg)](LICENSE)
38
+
39
+ </div>
40
+
41
+ ---
42
+
43
+ Pineapple 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.
44
+
45
+ ---
46
+
47
+ ## ✨ Features
48
+
49
+ | | |
50
+ |---|---|
51
+ | 📁 **Browse & Navigate** | Clean file listing with sortable columns, breadcrumb trail, and folder navigation |
52
+ | ⬆️ **Upload** | Drag-and-drop files or entire folders — with real-time progress |
53
+ | ⬇️ **Download** | Single files or bulk ZIP archives |
54
+ | 👁️ **Preview** | Images, video, audio, PDFs, and text files — all in-browser |
55
+ | ✏️ **Rename & Delete** | Manage files without leaving the browser |
56
+ | 🌍 **Public Share** | One flag to expose your server publicly via Cloudflare Tunnel — no account needed |
57
+ | 🔒 **Safe by default** | Path traversal protection, symlink validation, upload size limits |
58
+
59
+ ---
60
+
61
+ ## 🚀 Quick Start
62
+
63
+ ```bash
64
+ pip install pineapplee
65
+ ```
66
+
67
+ ```bash
68
+ # Serve the current directory
69
+ pineapplee
70
+
71
+ # Serve a specific path
72
+ pineapplee ~/Downloads
73
+
74
+ # Different port
75
+ pineapplee --port 9000
76
+
77
+ # Share publicly over the internet
78
+ pineapplee --public
79
+ ```
80
+
81
+ Open **`http://localhost:8089`** — and you're in.
82
+
83
+ ---
84
+
85
+ ## 📖 Usage
86
+
87
+ ```
88
+ usage: pineapplee [-h] [--port PORT] [--public] [directory]
89
+
90
+ positional arguments:
91
+ directory Directory to serve (default: current directory)
92
+
93
+ options:
94
+ -h, --help show this help message and exit
95
+ --port, -p Port to listen on (default: 8089)
96
+ --public Expose publicly via Cloudflare Tunnel
97
+ ```
98
+
99
+ ### Local network sharing
100
+
101
+ Pineapple binds to `0.0.0.0`, so any device on your LAN can reach it at the Network URL printed in the terminal:
102
+
103
+ ```
104
+ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
105
+ ┃ 🍍 Pineapple File Server ┃
106
+ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
107
+ ┃ ┃
108
+ ┃ 📂 Serving /Users/you/Documents ┃
109
+ ┃ 🔗 Local http://localhost:8089 ┃
110
+ ┃ 🌐 Network http://192.168.1.5:8089 ┃
111
+ ┃ 📦 Max upload 500 MB ┃
112
+ ┃ ┃
113
+ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
114
+ ┃ Press Ctrl+C to stop ┃
115
+ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
116
+ ```
117
+
118
+ ### Public sharing
119
+
120
+ ```bash
121
+ pineapplee --public
122
+ ```
123
+
124
+ 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.
125
+
126
+ ---
127
+
128
+ ## 🔒 Security
129
+
130
+ - All file paths are validated and confined to the served directory
131
+ - Symlinks pointing outside the root are silently ignored
132
+ - Upload size capped at 500 MB by default
133
+ - Hidden files (dotfiles, `__pycache__`, `node_modules`, `.egg-info`, etc.) are never shown
134
+
135
+ > **Note:** Pineapple is designed for local and trusted-network use. Do not expose it to the public internet without understanding the implications.
136
+
137
+ ---
138
+
139
+ ## 📋 Requirements
140
+
141
+ - Python ≥ 3.8
142
+ - Flask ≥ 2.0
143
+
144
+ ---
145
+
146
+ ## 📄 License
147
+
148
+ MIT © [KalaaKaar](https://github.com/ApoorvDixitt)
@@ -0,0 +1,120 @@
1
+ <div align="center">
2
+
3
+ # 🍍 Pineapple
4
+
5
+ **A clean, fast, local file server — right in your browser.**
6
+
7
+ [![PyPI version](https://img.shields.io/pypi/v/pineapplee?color=f59e0b&logo=python&logoColor=white)](https://pypi.org/project/pineapplee/)
8
+ [![Python](https://img.shields.io/pypi/pyversions/pineapplee?color=3b82f6)](https://pypi.org/project/pineapplee/)
9
+ [![License: MIT](https://img.shields.io/badge/license-MIT-10b981.svg)](LICENSE)
10
+
11
+ </div>
12
+
13
+ ---
14
+
15
+ Pineapple 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.
16
+
17
+ ---
18
+
19
+ ## ✨ Features
20
+
21
+ | | |
22
+ |---|---|
23
+ | 📁 **Browse & Navigate** | Clean file listing with sortable columns, breadcrumb trail, and folder navigation |
24
+ | ⬆️ **Upload** | Drag-and-drop files or entire folders — with real-time progress |
25
+ | ⬇️ **Download** | Single files or bulk ZIP archives |
26
+ | 👁️ **Preview** | Images, video, audio, PDFs, and text files — all in-browser |
27
+ | ✏️ **Rename & Delete** | Manage files without leaving the browser |
28
+ | 🌍 **Public Share** | One flag to expose your server publicly via Cloudflare Tunnel — no account needed |
29
+ | 🔒 **Safe by default** | Path traversal protection, symlink validation, upload size limits |
30
+
31
+ ---
32
+
33
+ ## 🚀 Quick Start
34
+
35
+ ```bash
36
+ pip install pineapplee
37
+ ```
38
+
39
+ ```bash
40
+ # Serve the current directory
41
+ pineapplee
42
+
43
+ # Serve a specific path
44
+ pineapplee ~/Downloads
45
+
46
+ # Different port
47
+ pineapplee --port 9000
48
+
49
+ # Share publicly over the internet
50
+ pineapplee --public
51
+ ```
52
+
53
+ Open **`http://localhost:8089`** — and you're in.
54
+
55
+ ---
56
+
57
+ ## 📖 Usage
58
+
59
+ ```
60
+ usage: pineapplee [-h] [--port PORT] [--public] [directory]
61
+
62
+ positional arguments:
63
+ directory Directory to serve (default: current directory)
64
+
65
+ options:
66
+ -h, --help show this help message and exit
67
+ --port, -p Port to listen on (default: 8089)
68
+ --public Expose publicly via Cloudflare Tunnel
69
+ ```
70
+
71
+ ### Local network sharing
72
+
73
+ Pineapple binds to `0.0.0.0`, so any device on your LAN can reach it at the Network URL printed in the terminal:
74
+
75
+ ```
76
+ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
77
+ ┃ 🍍 Pineapple File Server ┃
78
+ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
79
+ ┃ ┃
80
+ ┃ 📂 Serving /Users/you/Documents ┃
81
+ ┃ 🔗 Local http://localhost:8089 ┃
82
+ ┃ 🌐 Network http://192.168.1.5:8089 ┃
83
+ ┃ 📦 Max upload 500 MB ┃
84
+ ┃ ┃
85
+ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
86
+ ┃ Press Ctrl+C to stop ┃
87
+ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
88
+ ```
89
+
90
+ ### Public sharing
91
+
92
+ ```bash
93
+ pineapplee --public
94
+ ```
95
+
96
+ 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.
97
+
98
+ ---
99
+
100
+ ## 🔒 Security
101
+
102
+ - All file paths are validated and confined to the served directory
103
+ - Symlinks pointing outside the root are silently ignored
104
+ - Upload size capped at 500 MB by default
105
+ - Hidden files (dotfiles, `__pycache__`, `node_modules`, `.egg-info`, etc.) are never shown
106
+
107
+ > **Note:** Pineapple is designed for local and trusted-network use. Do not expose it to the public internet without understanding the implications.
108
+
109
+ ---
110
+
111
+ ## 📋 Requirements
112
+
113
+ - Python ≥ 3.8
114
+ - Flask ≥ 2.0
115
+
116
+ ---
117
+
118
+ ## 📄 License
119
+
120
+ MIT © [KalaaKaar](https://github.com/ApoorvDixitt)
@@ -0,0 +1,3 @@
1
+ """pineapplee — Beautiful local file server."""
2
+
3
+ __version__ = '0.1.0'