No description
Find a file
2025-04-22 21:27:34 -05:00
bruno-api-docs Rename 2025-04-16 17:26:24 -05:00
docs/images Add screenshot 2025-04-16 17:11:18 -05:00
migrations Fix login loop and add documentation 2025-04-16 17:05:41 -05:00
src Add library list per user 2025-04-22 21:27:34 -05:00
static More UI polishing 2025-04-17 16:06:18 -05:00
templates Add library list per user 2025-04-22 21:27:34 -05:00
.env.sample implement config + Pull SSO data from config 2025-04-20 20:56:33 -05:00
.gitignore Work on config and settings UI 2025-04-20 12:41:38 -05:00
Cargo.lock Work on SSO user mapping / creating 2025-04-21 08:57:23 -05:00
Cargo.toml Work on SSO user mapping / creating 2025-04-21 08:57:23 -05:00
config.sample.toml Work on SSO user mapping / creating 2025-04-21 08:57:23 -05:00
LICENSE Add GNU AGPLv3 license 2025-04-16 16:16:22 -05:00
README.md Update readme 2025-04-21 11:42:32 -05:00

storage-app

(needs a better name)

Overview

This project takes heavily inspiration from Seafile in its functionality and UI design. File hosting service with performance, ease of use, and being lightweight.

Notice: Project is under heavy active development

Key features include:

  • Web UI for managing files, with minimal/no client-side javascript
  • Multiple storage backends supported (local filesystem, S3, etc)
  • Multiple libraries per user, each with configurable storage backends
  • WebDAV (soon)

screenshot of files screen The current files list when logged in

Getting Started

Prerequisites

  • Rust 1.86+ (stable) and Cargo
  • PostgreSQL 13+ database
  • 512MB RAM minimum

Installing

# Clone the repository
git clone https://github.com/jackzmc/storage.git
cd storage

# Copy the sample config
cp config.sample.toml config.toml
# Edit the config.toml or provide the equivalant settings with env
# ex: [auth.oidc]  ---> STORAGE_auth.oidc.issuer__url
#     issuer-url
# Configure your database (requires to be set by env for now)
echo "DATABASE_URL=postgres://username:password@localhost" > .env

# Build the project
cargo build --release

# Run database migrations
#cargo run --bin migrate --features migrations

# Run the server
cargo run --release

Roadmap

Rough roadmap in a rough order of priority

  • WebDAV Support
  • Email support (for password resets, user invites)
    • Email sender utility
    • Individual email actions
  • SSO Support (openid)
    • Basic implementation
    • User mapping
    • User creation
    • User logout
  • Normal user registration (email/username+pass)
  • S3 backend support
  • Administration panel
    • Add storage backends
    • Manage users
    • Change app settings

Documentation

Todo, will be available at https://git.jackz.me/jackz/storage/wiki

Development

The server is written in Rust, using the Rocket framework and handlebars for HTML templating. The frontend is just HTML and CSS, using the Bulma CSS framework. As little javascript as possible should be done for frontend work.

Contributions are welcome

License

Available under the AGPL-3.0 license. LICENSE