Skip to content

X-FRI/stoream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stoream

Minimalist self-hosted network disk system

Module Status
WebUI stoream-webui
Engine Test Rust project

Intro.

screenshot.png

The purpose of this project is to provide a simple, fast, small, and easy-to-deploy self-hosted network disk application.

This project is built using the following technologies:

WebUI

Engine

Docs

If you already have

  • .NET Core SDK 8.0+
  • NodeJS 20+ with pnpm
  • UPX 4.0+

You can directly run: dotnet fsi publish.fsx

Important

publish.fsx currently only supports linux

Developer

  1. Fork this repo, then clone your fork
  2. Change to the dev branch: git checkout -b dev
  3. Add new upstream remote: git remote add upstream https://github.com/X-FRI
  4. Sync the dev branch of upstream: git pull upstream dev
  5. Add your changes
  6. Push to your own repo: git push origin dev
  7. PR to the dev branch

WebUI

For NodeJS, we recommend using NVM to manage versions (If you already have a NodeJS environment, you can skip this step):

nvm install 20

This project is built using pnpm, so:

npm install -g pnpm

Now you can build stoream:

pnpm build

Engine

For .NET Core 8.0, you can use the script (If you already have a .NET Core SDK, you can skip this step):

wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x ./dotnet-install.sh
./dotnet-install.sh --version latest

or download it from the official website.

Important

This project uses radical .NET Native AOT parameters and must use .NET Core 8 or above.

Now you can develop in stoream-engine directory:

  • Build: dotnet build
  • Run: dotnet run
  • Dev: dotnet watch
  • Publish: dotnet publish

Note

OPTIONAL: If you need to publish, you need to install UPX, it will be used to optimize the size of the executable file. Most Linux distributions can be installed through the package manager, such as on openSUSE:

zypper in upx

then

upx --best --lzma ./bin/Release/net8.0/{your runtime}/publish/stoream-engine(.exe)

Copyright (c) 2024 The X-Files Research Institute

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice,
  this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.
* Neither the name of Stoream nor the names of its contributors
  may be used to endorse or promote products derived from this software
  without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.