A secure private file host program. Bandwidth & request rate limiting, file sanitizing, good on resources, ShareX compatibility, and more.
Go to file
vysion 07ab3b8b92 1.2.0 2021-07-24 10:01:51 -04:00
conf 1.2.0 2021-07-24 10:01:51 -04:00
example gofmt, use embed for favicon, remove public mode 2021-07-07 18:15:37 -07:00
utils fix merge conflict 2021-06-15 15:25:05 -07:00
.gitignore Remove GCS dependency, name change, new config options 2021-03-09 21:00:31 -08:00
Dockerfile gofmt, use embed for favicon, remove public mode 2021-07-07 18:15:37 -07:00
LICENSE forwarded ip changed to CF-Connecting-IP 2021-06-15 15:18:57 -07:00
README.md 1.2.0 2021-07-24 10:01:51 -04:00
auth_middleware.go import from hard drive 2021-01-15 13:44:25 -08:00
base_handler.go Remove GCS dependency, name change, new config options 2021-03-09 21:00:31 -08:00
config_struct.go 1.2.0 2021-07-24 10:01:51 -04:00
filter.go 1.2.0 2021-07-24 10:01:51 -04:00
go.mod forwarded ip changed to CF-Connecting-IP 2021-06-15 15:18:57 -07:00
go.sum gofmt, use embed for favicon, remove public mode 2021-07-07 18:15:37 -07:00
limiter.go fix issue with unauthorized message, add zero-width image url option 2021-02-24 02:14:56 -08:00
main.go 1.2.0 2021-07-24 10:01:51 -04:00
middleware.go 1.2.0 2021-07-24 10:01:51 -04:00
response.go 1.2.0 2021-07-24 10:01:51 -04:00
serve_auth_check.go 1.2.0 2021-07-24 10:01:51 -04:00
serve_favicon.go fuck 2021-07-07 19:22:34 -07:00
serve_file.go 1.2.0 2021-07-24 10:01:51 -04:00
serve_not_found.go import from hard drive 2021-01-15 13:44:25 -08:00
serve_stats.go 1.2.0 2021-07-24 10:01:51 -04:00
serve_upload.go 1.2.0 2021-07-24 10:01:51 -04:00
zws.go Remove GCS dependency, name change, new config options 2021-03-09 21:00:31 -08:00

README.md

Tytanium

A file host server in Go which puts security first. This server is not intended for large-scale use, but rather, private/small group use. Effective with ShareX/MagicCap/other image capture suites.

Features

  • Configure and tune the server to how you want with extensive customization
  • Built with fasthttp for performance and built-in anti-DoS features
  • Whitelist/blacklist file types, and check them based on the file header, not the extension
  • Sanitize files to prevent against phishing attacks (Change their Content-Type to text/plain)
  • Public/private mode (private by default) (private only)
  • Zero-width file IDs in URLs - paste invisible but functional links!
  • File ID collision checking
  • 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: 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.)

How to Upload

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

Set ?omitdomain=1, if you don't want the host's original domain appended before the file name in the response. E.g: 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.