You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 weeks ago | |
|---|---|---|
| app | 3 weeks ago | |
| scripts | 3 weeks ago | |
| .env.example | 3 weeks ago | |
| .gitignore | 3 weeks ago | |
| PROJECT_STATE.md | 3 weeks ago | |
| README.md | 3 weeks ago | |
| VERSION | 3 weeks ago | |
| requirements.txt | 3 weeks ago | |
| run.py | 3 weeks ago | |
README.md
OTB Cloud
v0.1.0 - 2026-04-12
- Initial scaffold created on vault3 at /opt/otb_cloud
- MariaDB-backed architecture selected
- Modular Flask app structure created
- Device-based tenant storage model defined
- Shared OTB portal template architecture planned
- Core project documentation files added
Summary
OTB Cloud is a private portal-authenticated backup and storage platform for Outsidethebox.top.
Primary goals:
- Secure backup and storage for documents, images, videos, and uploaded files
- Per-customer tenant isolation
- Device-based organization (laptop, phone, tablet, workpc, homepc, etc.)
- Immutable original uploads
- Derived file workflow for processing and edits
- Searchable file library
- Bulk upload and bulk export support
- Audit logging
- Owner-approved admin support access using one-time token workflow
Planned host and path
- Host: vault3
- App path:
/opt/otb_cloud - Domain:
otb-cloud.outsidethebox.top - Storage root:
/tank/backups/otb-cloud
Planned backend stack
- Flask
- MariaDB
- Jinja templates with shared portal base
- Background job processing for media conversions
- FFmpeg for video/audio processing
- Nginx reverse proxy
Security goals
- Portal-authenticated access only
- No unauthenticated file access
- Tenant-isolated storage and database access
- Audit logging for login attempts and file actions
- Encrypted storage at rest
- HTTPS/TLS in transit
- Immutable originals by default
Device model
Each tenant may define logical upload devices such as:
- laptop
- phone
- tablet
- workpc
- homepc
Uploads are organized by source device to preserve context.
Documentation policy
This repository uses:
README.mdfor version/change log summaryPROJECT_STATE.mdfor current status and working notesVERSIONfor current version