- Issues: https://github.com/x-fri/stoream/issues
- Contribution: https://github.com/x-fri/stoream/pulls
Module | Status |
---|---|
WebUI | |
Engine |
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:
- Rescript: Fast, Simple, Fully Typed JavaScript from the Future
- Typescript: JavaScript with syntax for types.
- React: The library for web and native user interfaces
- Mantine: A fully featured React components library
- F#: An open-source language that makes it easy to write succinct, robust, and performant code.
- Suave: A simple web development F# library providing a lightweight web server and a set of combinators to manipulate route flow and task composition.
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
- Fork this repo, then clone your fork
- Change to the dev branch:
git checkout -b dev
- Add new upstream remote:
git remote add upstream https://github.com/X-FRI
- Sync the dev branch of upstream:
git pull upstream dev
- Add your changes
- Push to your own repo:
git push origin dev
- PR to the dev branch
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
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.