Dropbox-like app with Client, Server, and Website
Project description
box5
A personal Dropbox-like app with Client (desktop sync), Server (cloud storage), and Website (web UI).
Quick Start
Start All Services
./run.sh
- Server: http://localhost:3111
- Website: http://localhost:3112
Manual Start
# Server (port 3111)
cd Server && uvicorn main:app --port 3111
# Website (port 3112)
cd Website && uvicorn main:app --port 3112
# Client Sync
python -m Client.main --username ccc --password cccpass --folder ./sync
Features
File Sync
- Place files in
./sync/folder to auto-upload - Changes detected and synced automatically
- Use
./sync/public/for public files (accessible without login)
Folder Navigation (ls-style)
- Root shows subfolders:
subdir/,public/ - Click folder to enter
- In subfolder shows
../to go back - Breadcrumb shows current path
File Version History
- Same filename shows only latest version on homepage
- Click "History" to see all versions (v1, v2, v3...)
File Viewer (v1.0 Static Rendering)
- Files view natively via absolute path routes like
/view/public/ccc.md .md→ Markdown rendered with true relative-link support layout (e.g.,./img/ccc.jpg).txt→ Plain text display.html/.css/.js→ Direct static site web response execution.jpg/.png/.gif→ Native image display streaming- Other files → Download
Public Files
- Files in
sync/public/are uploaded as public - Access via
/api/public/filesor Website/public
Web Editor
- Web-based code editor similar to VSCode (access at
/editor) - Monaco Editor for multi-tab code editing
- Integrated Terminal with real-time multiplexed PTY
Run Tests
./test.sh
Tech Stack
- Python + FastAPI + sql5
- sql5 source:
/Users/Shared/ccc/project/sql5
Project Structure
Server/— FastAPI server with sql5 databaseClient/— Desktop sync client using watchdogWebsite/— Web UI with Jinja2 templatestests/— pytest unit tests_doc/— planning docs and version notes
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
box5-1.0.0.tar.gz
(31.0 kB
view details)
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
box5-1.0.0-py3-none-any.whl
(31.4 kB
view details)
File details
Details for the file box5-1.0.0.tar.gz.
File metadata
- Download URL: box5-1.0.0.tar.gz
- Upload date:
- Size: 31.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2996d8dd61cccda4a28850bc8a7f6c1562b2401bc0840a5d9b522c6faa28c78c
|
|
| MD5 |
c4e0856c9af987653d7c326f323a17e4
|
|
| BLAKE2b-256 |
5ec0139290f5a7e80dcf8dcef995b00fe8f14a5b0d123ac49374d57562de163c
|
File details
Details for the file box5-1.0.0-py3-none-any.whl.
File metadata
- Download URL: box5-1.0.0-py3-none-any.whl
- Upload date:
- Size: 31.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65e1fb9b8c66efb41a60dda1952d4885c7ae8ded6c08977e1e2f47984e02a66f
|
|
| MD5 |
f281e0d1163aef8c786ee47d7b989a47
|
|
| BLAKE2b-256 |
3ae219b85f24ef4525db48195a517ef7a63a21d4ccc6cc8119b4503816dba697
|