Anonupload: Anonymous File Sharing in Docker

In Docker, Portainer, Tutorials by dbtech

Hey guys! In this video we’re going to take a look at a file hosting/sharing service hosted in Docker called anonupload.

Anonupload is quick and simple to deploy and has some interesting features that we’ll take a look at.

Taking a look at the website, we can see that Anonupload claims to be a the next level of file sharing and that it’s secure, fast, and free.

And their mission is to build the best databaseless file sharing platform.

The screenshot in the middle of the page leaves a little to be desired if I’m being honest, but below that we can take a look at the features of Anonupload.

They claim to be secure, simple, extendable, databaseless, fast, and reliable.

Let’s talk about some those points a bit:

First, security: There are no user accounts, no databases, and no direct filenames. Also, via the environment variables, you can dictate which file types you want to allow the server to, well, serve.

The next feature they claim is simplicity. While I agree with that to some degree, I did run into some error messages on the front end that were not reflected in the container logs, which made troubleshooting a bit of a chore. Luckily, the error I encountered was just a permissions issue which I easily fixed with a chmod and a chown command.

Something I noticed about uploading files on the site, though, is that you can only upload one file at a time. If you want to upload multiple files, you’ll need to archive them in a zip or rar (and be sure to allow those file types in the configuration).

Also, for some reason, I wasn’t able to drag and drop files onto the page to upload them. I’m guessing it’s something on my end, but couldn’t find anything about it in my research.

Once the file is uploaded, you’ll be given a URL you can share with whomever you’d like to share your file.

They also mention that Anonupload is extensible via plugins, but I didn’t find any additional information about that in my research on Anonupload.

The last point I want to touch on is “fast”. While that may be the case for some hosting providers, the reality is that, if you’re selfhosting this, fast will be relative to your hosting environment and internet speeds.

Also, there’s an option in the docker-compose that we’ll look at that allows you to make people wait a specified period of time before their files will download. I’m guessing this is so that you could force an ad to be on screen for a period of time before the file downloads, but that’s just speculation.

There’s also an admin panel that you can access by going to your Anonupload URL /admin and logging in via the username and password set up in the docker-compose. You’ll also encounter an, in my opinion anyway, annoying captcha field that gave me multiple errors when I clearly typed the catpcha in correctly.

In the admin area, you’ll find a pretty sparce dashboard with the general stats in the middle and a couple of links down the side.

As the first link is the Dasboard link that we landed on, the next link down is for Files.

In the files section, you can see exactly that: the files that have been uploaded to the server. You can see the file name and you have the option to Download or Delete the file from right there.

Also at the top of the page, you can export the page to a .xls file.

Moving over to the Settings tab, you can change the email and password to login to the admin panel. I suggest changing this as soon as you login to make it something other than what is in your Docker compose file.

Now that we’ve take a moment to go over the Anonupload application, let’s take a moment to look at the docker-compose.

Honestly, it’s pretty straightforward.

We have a version of 3.3 and a service listed below that of supernova3339 (I would have named it anonfiles or anonupload instead of the creator’s name, but you can do that if you’d like).

Below that we have a container name of anonfiles.

Below that is the port that you’ll use to access anonupload either on a local IP or via the reverse proxy of your choice.

Next we have volumes and that’s just where you’ll store the files uploaded to your application.

The next area is for the environment variables for the setup of the container.

Eariler I mentioned changing the username and password when you login to the admin panel, so you can probably just leave the admin email and password as they are in the docker compose.

The app_base_url should be the URL you are going to use to access the Anonupload front-end.

Change the app_contact_email to something relevant to you and change the app_download_time to something that you feel is a good fit that won’t upset your users.

More information about all of the different environment variables can be found in the docs for Anonupload, so I won’t go into much detail about the other options.

I will just mention that you can integrate Plausible analytics into your Anonupload setup if you’d like.

Once you’re happy with your docker-compose, you can deploy it either via command line or Portainer as I’m showing here.

While this is deploying you could take a moment to set up your reverse proxy or tunnel so you can access it once it’s up and running.

Once everything is up and running you’re good to go. It’s really just that simple to get Anonupload configured and deployed for quick file sharing on your Docker setup.

Resource Links:

  • https://anonupload.us/
  • https://anonupload.us/docs/1.0.0/overview
  • https://github.com/supernova3339/anonupload