The TMA Cloud Backend is a Go based cloud storage service that allows users to upload, download and collaborate on files. It provides a REST API backed by PostgreSQL, Redis sessions and optional Meilisearch for file search. Integration with ONLYOFFICE enables in-browser editing of office documents.
- User authentication with server side sessions stored in Redis.
- Upload files and optionally generate image thumbnails.
- List and search files with privacy controls.
- Download files with MIME type detection.
- Update file privacy and delete files.
- Create custom shareable download links.
- ONLYOFFICE integration for editing documents in the browser.
- REST API built using the Echo framework.
- Real-time file events delivered through a WebSocket connection.
- Automatic database migrations run at startup.
cmd/ # Standalone command line utilities
handlers/ # HTTP route handlers
middleware/ # Authentication middleware
models/ # Database models and session logic
utils/ # Helper utilities (ID generation, JWT, etc.)
cache/ # Redis client setup
config/ # Environment variable helpers
search/ # Meilisearch integration
storage/ # Placeholder for future storage backends
migrations/ # Database schema migrationsDetailed guides can be found in the docs directory:
- Setup
- Quick Start (Script + Docker Compose) – run the all-in-one script to pull all images and launch the app in Docker containers.
- Configuration
- CLI Tools
- Docker Guide
- API Reference
- Status Codes
- Architecture
- API Flows
Pull requests are welcome! Feel free to open issues for any bugs or feature requests.
This project is released under the GNU Affero General Public License v3.