Skip to content
/ sgs Public

A self-hosted object storage solution with an admin interface. Supports project-based file organization, API keys and public file sharing.

Notifications You must be signed in to change notification settings

mrshabel/sgs

Repository files navigation

SGS

A free, self-hosted object storage solution. View the online documentation here

Features

  • 📁 Project-based file organization
  • 🔑 API key management
  • 🔗 Pre-signed URLs for time-limited sharing
  • 📤 File operations (upload/download)
  • 🔒 Built-in authentication
  • 🐳 Docker ready

Preview

Dashboard

Dashboard Preview

Project Management

Projects View

API Keys

API Keys Management

File Upload

File Upload Interface

Setup

# clone the repository
git clone https://github.com/mrshabel/sgs.git

# navigate to project directory
cd sgs

# copy example env file
cp .env.example .env

# start services with Docker
make docker-run

Edit the .env file to configure:

  • Port settings
  • Database credentials
  • Storage credentials
  • JWT secrets

Development

Requirements:

  • Go 1.23+
  • Docker
  • Node.js 20+
# install dependencies
go mod download
make watch

# Frontend
cd web
npm install
npm run dev

Testing

make test

TODO

[] In-App Notifications [] File Versioning

About

A self-hosted object storage solution with an admin interface. Supports project-based file organization, API keys and public file sharing.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published