tinystash
tinystash copied to clipboard
A storage-less database-less file sharing service powered by OpenResty
ᵗⁱⁿʸ[stash]
A storage-less database-less file sharing service.
Written in Lua. Powered by LuaJIT and OpenResty.
Introduction
tiny[stash] is a website and a Telegram bot for file sharing. A key feature of the service is the fact that it does not actually store anything — all files are stored on Telegram file servers and proxied by the service. You might be familiar with this idea — there is a plenty of file sharing services that work this way. But tiny[stash] is going even further. In addition, it does not use any kind of database, all required information is encoded, encrypted and stored directly in a URL.
It is also undemanding in terms of machine resources. If it is possible to run the nginx server on some hardware, it'll probably be possible to run tiny[stash] too. It also does not require a lot of RAM or disk storage because all data are processed in a streaming fashion.
Installing
OpenResty
See instructions on OpenResty website.
Lua packages
$ while read dep; do opm --cwd get "$dep"; done < requirements.opm
Configuring
$ cp config.example.lua config.lua
$ vi config.lua
Setting up Telegram bot webhook
$ ./tinysta.sh webhook set
Running
$ ./tinysta.sh run
Quick deployment with Docker
-
Prepare
config.lua
as described above. -
Set up Telegram bot webhook :
$ docker run --rm -it \
-v /path/to/config.lua:/opt/tinystash/config.lua \
un1def/tinystash webhook set
- Run Docker container:
$ docker run -d \
--restart unless-stopped \
-v /path/to/config.lua:/opt/tinystash/config.lua \
-p 80:80 \
--name tinystash \
un1def/tinystash
License
Source code is licensed under the MIT License.
Source Sans Pro font is licensed under the SIL Open Font License, Version 1.1.
Source Code Pro font is licensed under the SIL Open Font License, Version 1.1.