A secure private file host program. Bandwidth & request rate limiting, file sanitizing, good on resources, ShareX compatibility, and more.
Go to file
vysion f00fe2b185 Added constants.go
Changed configuration int64 types to int

Fixed some constant scopes

Better zero width checking to avoid unnecessary work
2021-09-13 21:59:45 -07:00
api Added constants.go 2021-09-13 21:59:45 -07:00
conf zero width only converted if characters detected 2021-09-13 13:16:00 -07:00
constants Added constants.go 2021-09-13 21:59:45 -07:00
example reworked zws handling, added ForceZeroWidth to config, updated readme 2021-09-12 13:18:32 -07:00
global Added constants.go 2021-09-13 21:59:45 -07:00
middleware Added constants.go 2021-09-13 21:59:45 -07:00
response Added constants.go 2021-09-13 21:59:45 -07:00
routes Added constants.go 2021-09-13 21:59:45 -07:00
security Reworked project structure 2021-09-08 16:37:19 -07:00
utils Added constants.go 2021-09-13 21:59:45 -07:00
.gitignore Reworked project structure 2021-09-08 16:37:19 -07:00
Dockerfile Reworked project structure 2021-09-08 16:37:19 -07:00
LICENSE forwarded ip changed to CF-Connecting-IP 2021-06-15 15:18:57 -07:00
README.md reworked zws handling, added ForceZeroWidth to config, updated readme 2021-09-12 13:18:32 -07:00
go.mod Reworked project structure 2021-09-08 16:37:19 -07:00
go.sum Reworked project structure 2021-09-08 16:37:19 -07:00
init.go Added constants.go 2021-09-13 21:59:45 -07:00
main.go Added constants.go 2021-09-13 21:59:45 -07:00

README.md

Tytanium

A simple file host server, intended for personal or small group use.

Features

  • Tune the server to exactly how you want with extensive customization options
  • Built with fasthttp for performance and built-in anti-DoS features
  • Whitelist/blacklist checks done via file headers rather than extensions
  • Sanitize files to prevent against phishing attacks (Change their Content-Type to text/plain)
  • Zero-width file IDs in URLs - paste invisible but functional links!
  • File ID collision checking
  • Works well with image capture suites, such as ShareX/MagicCap
  • Not written in Javascript!

Setup

  • Download the binary or build this program
  • Rename example.yml to config.yml and set the values you want
  • Start the binary
  • Done
  • Optional stuff
    • You can use the 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 every field.)
    • If you want to change the favicon, replace routes/favicon.ico with your own image.

How to Upload

Create a POST request to /upload with a file in the field "file". Put the key in the Authorization header.

Set ?omitdomain=1, if you don't want the host's original domain appended before the file name in the response. For example: a.png instead of https://a.com/a.png

Add ?zerowidth=1 and set it to 1 to make your image URLs appear "zero-width". If you don't get what that means, try it, and see what happens.