filite alternatives and similar software solutions
Based on the "Pastebins" category.
Alternatively, view filite alternatives based on common mentions on social networks and blogs.
-
PrivateBin
A minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES. -
Sup3rS3cretMes5age
Simple to use, simple to deploy, one time self destruct messaging service, with hashicorp vault as a backend -
Modern Paste
DISCONTINUED. Modern pastebin with a contemporary, minimalistic user interface backed by a robust feature set. -
Paaster.io
Paaster is a secure and user-friendly pastebin application that prioritizes privacy and simplicity. With end-to-end encryption and paste history, Paaster ensures that your pasted code remains confidential and accessible. -
cryptonote
:lock: A simple open source web application that lets users encrypt and share messages that can only be read once. -
ZeroBin
DISCONTINUED. This Project has been renamed and moved to https://github.com/PrivateBin/PrivateBin -
Phaste
DISCONTINUED. A Phalcon-based, MySQL pastebin application with privacy-respecting Piwik integration and syntax highlighting. -
localpaste
a simple python based pastebin you can run locally, with curl for input, just like clbin.com -
Linked.PM
A simple web application which encrypts your private messages (Java Script client-side encryption) and converts them into clickable links and QR-codes.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of filite or a related project?
Popular Comparisons
README
filite
The
master
branch isn't actively maintained anymore, and the current development branch,next
, will be merged into it in the near future.
A simple, light and standalone pastebin, URL shortener and file-sharing service that hosts files, redirects links and stores texts.
Live Example (file upload disabled and rate limited)
Table of Contents
Features
What it is
- Easy to use. Installation and set-up take less than a minute and a built-in web UI is provided.
- Standalone. No external dependencies required, everything that is needed is packed into the binary.
- Light and fast. The Rust web framework Actix is used under the hood, providing great speed with a minimal footprint.
What it is not
- A tracking tool. No stats are stored to increase speed, reduce resource usage and maintain simplicity, if this is what you are looking for filite is not for you.
Installation
- Get the binary either from the releases page or using Cargo
- Run
filite init
to perform the initial setup (you can do this at any time to reset the config and password) - Edit your config file as you see fit (check the dedicated section for details)
- Run
filite
That's it!
Usage
When asked for a login, use whatever username you want and the password you provided during setup. Details for programmatic usage are provided in the dedicated section.
Planned features
- Decent test suite
- TLS support
- Simple admin page
- Multiple logins (?)
Config
# Port to listen on
port = 8080
# SQLite database connection url
database_url = "database.db"
# SQLite database connection pool size
pool_size = 4
# Directory where to store static files
files_dir = "files"
# Highlight.js configuration
[highlight]
# Theme to use
theme = "github"
# Additional languages to include
languages = ["rust"]
Client tools
ShareX
<AUTHORIZATION>
is the result of encoding<USERNAME>:<PASSWORD>
to base64<USERNAME>
is an arbitrary username, it doesn't matter<PASSWORD>
is the password entered during setup
<ADDRESS>
is the root address where the filite is running, for instancehttp://localhost:8080
orhttps://filite.raphaeltheriault.com
File
{
"Version": "13.0.1",
"Name": "filite (file)",
"DestinationType": "ImageUploader, FileUploader",
"RequestMethod": "POST",
"RequestURL": "<ADDRESS>/f",
"Headers": {
"Authorization": "Basic <AUTORIZATION>"
},
"Body": "MultipartFormData",
"FileFormName": "file",
"URL": "<ADDRESS>/$response$"
}
Link
{
"Version": "13.0.1",
"Name": "filite (link)",
"DestinationType": "URLShortener",
"RequestMethod": "POST",
"RequestURL": "<ADDRESS>/l",
"Headers": {
"Authorization": "Basic <AUTORIZATION>"
},
"Body": "JSON",
"Data": "{\"forward\":\"$input$\"}",
"URL": "<ADDRESS>/l/$response$"
}
Text
You can remove the prompt and always enable or disable syntax highlighting by replacing
$prompt:Highlight|false$
withtrue
orfalse
.
{
"Version": "13.0.1",
"Name": "filite (text)",
"DestinationType": "TextUploader",
"RequestMethod": "POST",
"RequestURL": "<ADDRESS>/t",
"Headers": {
"Authorization": "Basic <AUTORIZATION>"
},
"Body": "JSON",
"Data": "{\"contents\":\"$input$\",\"highlight\":$prompt:Highlight|false$}",
"URL": "<ADDRESS>/t/$response$"
}
Reverse proxy
<DOMAIN>
is the domain the requests will be coming from, for instancefilite.raphaeltheriault.com
<PORT>
is the port on which filite is listening
Upload limits are set to 10M as an example
NGINX
server {
listen 80;
listen [::]:80;
server_name <DOMAIN>;
location / {
proxy_pass http://localhost:<PORT>;
location /f {
client_max_body_size 10M;
}
}
}
Apache
<VirtualHost *:80>
ServerName <DOMAIN>
ProxyPreserveHost On
ProxyPass / http://localhost:<PORT>/
ProxyPassReverse / http://localhost:<PORT>/
<Location "/f">
LimitRequestBody 10000000
</Location>
</VirtualHost>
Programmatic usage
All requests that require authentication use HTTP Basic Auth (without taking the username into account).
Listing existing entries
It's possible to get an array of all existing entries for each type with an authenticated request.
GET /f
GET /l
GET /t
You can view the created entries in a more organized manner with the third-party filite-list script.
Creating new entries
There are two ways to create new entries, PUT
or POST
requests.
PUT
lets you choose the ID manually and POST
assigns a free one automatically, but that's the only difference.
Both methods require authentication.
PUT
requests will overwrite any existing entry.
Files
PUT /f/{id}
POST /f
Files are sent as multipart/form-data
. The field name isn't important but the file name needs to be included. Only one file is treated.
Links
PUT /l/{id}
POST /l
Links are sent as application/json
according to the following schema.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Link",
"type": "object",
"properties": {
"forward": {
"description": "URL this link forwards to",
"type": "string"
}
}
}
Texts
PUT /t/{id}
POST /t
Texts are sent as application/json
according to the following schema.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Text",
"type": "object",
"properties": {
"contents": {
"description": "Text contents",
"type": "string"
},
"highlight": {
"description": "Whether to enable code highlighting or not for that text",
"type": "boolean"
}
}
}
Deleting entries
It's possible to delete any entry with an authenticated request.
DELETE /f
DELETE /l
DELETE /t
Contributing
The project is open to contributions! Before submitting a PR, make sure your changes work both with and without the dev
feature enabled.
Requirements
- The Rust toolchain
- diesel_cli with the
sqlite
feature enabled
Setup
- Copy [
.env.example
](./.env.example) to.env
and set the variables to your liking - Run
diesel database setup
- Build or run with the
dev
feature enabled
License
filite is licensed under the [MIT License](./LICENSE).
*Note that all licence references and agreements mentioned in the filite README section above
are relevant to that project's source code only.