Free file hosting website
Go to file
2022-09-09 12:54:19 +01:00
.github/workflows Update build.yml 2022-07-25 20:07:11 +01:00
VoidCat prevent hot-linking viruses 2022-09-09 10:42:33 +01:00
.dockerignore Allow copying .git folder into docker image 2022-03-08 14:03:23 +00:00
.gitignore Add swagger and docs 2022-03-08 13:47:42 +00:00
docker-compose.yml Rename paywall to payment 2022-09-07 15:52:40 +01:00
Dockerfile Fix build for git tagging 2022-03-08 13:08:28 +00:00
nospa.dockerfile Fix nospa image 2022-03-08 14:06:16 +00:00
README.md Include api key doc for curl command 2022-09-09 12:54:19 +01:00
VoidCat.sln Pass Seq settings directly 2022-01-28 11:14:39 +00:00

Void.cat

Free, simple file hosting

Features

  • Profiles
  • File bandwidth statistics
  • Administration features
  • File download paywall

Running

Use the docker image to run void.cat:

docker run --rm -it -p 8080:80 ghcr.io/v0l/void.cat/app:latest

Then open your browser at http://localhost:8080.

The first registration will be set as admin, so make sure to create your own account

Usage

Simply drag and drop your files into the dropzone, or paste your screenshots or files into the browser window.

From cli you can upload with curl:

export FILE=memes.jpg
curl -X POST \
  -H "V-Content-Type: $(file --mime-type -b $FILE)" \
  -H "V-Full-Digest: $(sha256sum -bz $FILE | cut -d' ' -f1)" \
  -H "V-Filename: $FILE" \
  --data-binary @$FILE \
  "https://void.cat/upload?cli=true"

Or you can create an alias function in ~/bash_aliases like so:

vcu() {
  echo "Uploading $1"
  curl -X POST \
    -H "V-Content-Type: $(file --mime-type -b $1)" \
    -H "V-Full-Digest: $(sha256sum -bz $1 | cut -d' ' -f1)" \
    -H "V-Filename: $1" \
    --data-binary @$1 \
    "https://void.cat/upload?cli=true"
  echo -e ""
}

Uploading from cli will simply become vcu memes.jpg

You can also upload files to your user account by specifying an API key in the curl command:

  -H "Authorization: Bearer MY_API_KEY"

This command will return the direct download URL only. To get the json output simply remove the ?cli=true from the url.

Development

To run postgres in local use:

docker run --rm -it -p 5432:5432 -e POSTGRES_DB=void -e POSTGRES_PASSWORD=postgres postgres -d postgres

To run MinIO in local use:

docker run --rm -it -p 9000:9000 -p 9001:9001 minio/minio -- server /data --console-address ":9001"