mirror of
https://github.com/Jackzmc/storage.git
synced 2025-05-06 11:23:21 +00:00
75 lines
No EOL
1.9 KiB
Markdown
75 lines
No EOL
1.9 KiB
Markdown
# storage-app
|
|
|
|
(needs a better name)
|
|
|
|
## Overview
|
|
|
|
This project takes heavily inspiration from [Seafile](https://www.seafile.com/) 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)
|
|
|
|

|
|
_The current files list when logged in_
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Rust 1.86+ (stable) and Cargo
|
|
- PostgreSQL 13+ database
|
|
- 512MB RAM minimum
|
|
|
|
### Installing
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/jackzmc/storage.git
|
|
cd storage
|
|
|
|
# Configure your database (create .env file with your PostgreSQL connection)
|
|
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)
|
|
* [ ] SSO Support (openid)
|
|
* [ ] Administration panel
|
|
* [ ] Add storage backends
|
|
* [ ] Manage users
|
|
* [ ] Change app settings
|
|
* [ ] S3 backend support
|
|
|
|
## Documentation
|
|
|
|
Todo, will be available at https://git.jackz.me/jackz/storage/wiki
|
|
|
|
## Development
|
|
|
|
The server is written in Rust, using the [Rocket](https://rocket.rs/) framework and [handlebars](https://github.com/sunng87/handlebars-rust) for HTML templating.
|
|
The frontend is just HTML and CSS, using the [Bulma CSS framework](https://bulma.io). As little javascript as possible should be done for frontend work.
|
|
|
|
Contributions are welcome
|
|
|
|
# License
|
|
|
|
Available under the AGPL-3.0 license. [LICENSE](LICENSE) |