Free file hosting website
Go to file
Kieran 691beb9334
continuous-integration/drone/push Build is passing Details
Update VoidCat/Controllers/NostrController.cs
2024-06-07 09:30:11 +00:00
.github/workflows Fixes 2023-08-23 15:40:11 +01:00
VoidCat Update VoidCat/Controllers/NostrController.cs 2024-06-07 09:30:11 +00:00
.dockerignore Inject tags to index.html 2023-12-22 13:27:07 +00:00
.drone.yml Update .drone.yml 2024-06-06 18:00:19 +00:00
.gitignore Upgrade to vite build 2023-12-22 12:51:53 +00:00
Dockerfile fix docker build 2023-12-22 13:31:52 +00:00 Improve docs 2023-12-21 23:21:19 +00:00
VoidCat.sln Fix prometheus 2023-12-25 18:08:12 +00:00 Admin delete / tailwind 2023-12-25 19:54:49 +00:00
docker-compose.yml Add prometheus to compose setup 2023-12-22 10:59:27 +00:00
nospa.dockerfile Fix `nospa` image 2022-03-08 14:06:16 +00:00
prometheus.yml Fix prometheus 2023-12-25 18:08:12 +00:00

Free, simple file hosting


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


Use the docker image to run

docker run --rm -it -p 8080:80

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

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


Docker compose is the best option for most as this sets up postgres / redis / clamav.

Run the following commands to get going:

git clone
docker compose up -d

You should now be able to access on http://localhost.

If you already have something running on port 80 you may have problems, you can modify the docker-compose.yml file to change the port.

You can modify the site config in ./VoidCat/appsettings.compose.json, this is recommended for anything other than a simple test


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 \

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 \
  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.


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"