Skip to content

piotrdzz/Triox

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

162 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

build issues dependency status

Triox - a cloud server for the next generation

A free file hosting server that focuses on speed, reliability and security.

Why Triox?

☘️ Open Source - We strongly believe in collaboration and transparency.

Speed - Get the most out of your hardware! Triox runs fast, even on weak hardware.

🔒 Security - We're using state-of-the-art algorithms and authentication methods to protect your data.

⛓️ Reliability - Built on top of the strong guarantees of the Rust programming language.

🛫 Easy Setup - Triox comes with batteries included and is easy to configure.

🔬 Modern Technologies - Authentication with JWT and a front-end based on WebAssembly.

Features

Triox is still in an early stage but is already usable. The features we'd like to add before our first release can be found in this issue.

Demo server

Sign in with username demo_user and password demo_password.

Sadly, we can't allow users to upload files due to legal restrictions. Since we can't guarantee that no illegal data will be uploaded the demo server runs in read-only mode.

triox-demo.aaron-erhardt.de

Contributing

Everyone is welcome to contribute to Triox. We are always open for new ideas, features and improvements.

The easiest way to contribute changes is to fork Triox, and then create a pull request to ask us to pull your changes into our repository. You can find a list of good first issues here.

Setup

  • Install Rust using rustup.
  • Install dependencies:
    • pkg-config, common package name: pkg-config
    • OpenSSL, common package name: libssl-dev or openssl-devel
    • MySQL-client, common package name: libmysqlclient-dev, libmariadb-dev-compat or mysql-devel
  • Install a MySQL-server such as mariadb, common package name: mariadb-server
  • Setup database (more below)
  • [optional] setup SSL certificate for HTTPS

Now you should be ready to go! Use cargo run to compile and start the server.

Database setup

Creating database user

CREATE DATABASE triox;
CREATE USER 'triox'@localhost IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON triox.* TO 'triox'@localhost;
FLUSH PRIVILEGES;

Install diesel client

cargo install diesel_cli --no-default-features --features mysql

Add .env for diesel client

echo DATABASE_URL=mysql://triox:password@localhost/triox > .env

Run migrations

diesel migration run

SSL setup

Generating SSL key and certificate

cd ssl
openssl req -x509 -nodes -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
cd ..

Then update config/local.toml:

[ssl]
enabled = true

API Documentation

The API is documented in API.md.

About

A free file hosting server that focuses on speed, reliability and security.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 74.8%
  • JavaScript 14.9%
  • HTML 10.1%
  • CSS 0.2%