Skip to content

TMA-Cloud/cloud_storage-backend

Repository files navigation

TMA Cloud Backend

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.

Table of Contents

Features

  • 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.

Project Layout

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 migrations

Documentation

Detailed guides can be found in the docs directory:

Contributing

Pull requests are welcome! Feel free to open issues for any bugs or feature requests.

License

This project is released under the GNU Affero General Public License v3.

Packages