61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
![](https://i.imgur.com/AHHWH3z.png)
|
|
|
|
## Tytanium
|
|
|
|
Tytanium is a private file host program, meant for a single user or a small group. Here are the main highlights:
|
|
|
|
- SHA2-512 file encryption at rest, with an encryption key unique to each file
|
|
- Tune the server to exactly how you want with extensive customization options
|
|
- Works well with image capture suites, such as ShareX/MagicCap
|
|
- Good on system resources (<1MiB memory usage when idle)
|
|
- Limit how many requests/second to certain paths to prevent DoS attacks or an overloaded server
|
|
- Zero-width strings: make your links appear invisible! (Example: https://example.com/file.png?enc_key=X appears as https://example.com/)
|
|
- Not written in Javascript!
|
|
|
|
*Please note that files are NOT encrypted client-side; encryption is done on the server.*
|
|
|
|
### Setup
|
|
|
|
1. Download the binary in the Releases tab, or build the code from source.
|
|
2. Rename `example.yml` to `config.yml` and set the values you want, or create a `config.yml` from scratch.
|
|
3. Mark the binary as executable (this can be done with `chmod`).
|
|
|
|
### Upload & Response
|
|
|
|
Create a POST request to `/upload` with a file in the field "file". Put the key in the `Authorization` header.
|
|
|
|
Query arguments you can pass:
|
|
- `?zerowidth=1`: Zero-width links. By enabling this, you can turn a URL's path invisible (See example above in the feature list).
|
|
- *`uri` will be zero-width if you specified `?zerowidth=1`.*
|
|
|
|
Example response on success:
|
|
|
|
```json
|
|
{
|
|
"status": 0,
|
|
"data": {
|
|
"uri": "https://example.com/file.png?enc_key=ABCDEF",
|
|
"path": "file.png?enc_key=ABCDEF",
|
|
"file_name": "file.png",
|
|
"encryption_key": "ABCDEF"
|
|
}
|
|
}
|
|
```
|
|
|
|
If there's any error, the response will look like this. Status code `1` means a generic error, `2` means something broke internally. `message` will contain the error message.
|
|
|
|
```json
|
|
{
|
|
"status:": 1,
|
|
"message": "Error message"
|
|
}
|
|
```
|
|
|
|
### Optional stuff
|
|
|
|
- You can use the [Size Checker](https://github.com/vysiondev/size-checker) program to make the `/stats` path produce values other than 0 for file count and total size used. Just tell it to check your files directory. You can run it as a cron job or run it manually whenever you want to update it. (If you choose not to use it, `/stats` will always return 0 for some fields.)
|
|
- If you want to change the favicon, replace `routes/favicon.ico` with your own image.
|
|
|
|
### License
|
|
|
|
[MIT License](LICENSE) |