How tahsin2155/zipline works
Zipline is a self-hosted Flask mini-drive and scratchpad. The main workflow is login, then browse/search nested folders, upload or manage files, and preview or download them; users can also create and autosave independent notes. Per-user SQLite databases and upload directories isolate persistent data. The README documents retention cleanup and account administration as separate operational capabilities. Some file-route implementation is excerpted, so links for its documented features are limited to the route and helper modules rather than inferred internal call chains.
Main entry points: files/routes.py Drive routes · __init__.py Flask app · notes/routes.py Notes routes · auth/routes.py Login routes
Components 18
Web application
- Flask app
app/__init__.py - Notes routes
app/blueprints/notes/routes.py - Notes interface
app/templates/notes/notes.html - Note editor
app/templates/notes/note_editor.html
File drive
- Drive routes
app/blueprints/files/routes.py - File helpers
app/blueprints/files/helpers.py - Drive interface
app/templates/files/dashboard.html
Identity and security
- Login routes
app/blueprints/auth/routes.py - User records
app/users.py - CSRF protection
app/csrf.py - Account store
Per-user data
- Database access
app/db.py - User databases
- Upload storage
Administration
- Account manager
manage_users.py - Retention cleanup
cleanup_task.py
Other components
- User
- Scheduler
Connections 20
- User → Flask app: sends requests
- Flask app → Login routes: dispatches
- Flask app → Drive routes: dispatches
- Flask app → Notes routes: dispatches
- Flask app → CSRF protection: enforces
- Login routes → User records: checks credentials
- User records → Account store: reads/writes
- Account manager → Account store: manages accounts
- Login routes → Drive routes: redirects after login
- Drive routes → Database access: queries and updates
- Notes routes → Database access: queries and updates
- Database access → User databases: reads/writes
- Drive routes → File helpers: uses utilities
- Drive routes → Upload storage: stores and serves files
- Drive routes → Drive interface: renders
- Notes routes → Notes interface: renders list
- Notes routes → Note editor: renders editor
- Scheduler → Retention cleanup: runs periodically
- Retention cleanup → User databases: finds expired records
- Retention cleanup → Upload storage: removes expired files