YouTransfer - An Open Source Replacement for Dropbox

YouTransfer is another small, lightweight Docker container like PsiTransfer that implements a drag & drop file portal on your local LAN that can be optionally hosted externally with NginX Proxy Manager.

Install Docker on your bare metal host, a VM or a LXD container with the following command:

curl -sSL https://get.docker.com | sh

Add your account to the Docker group:

sudo usermod -aG docker $(whoami)
newgrp docker

Install docker-compose:

sudo apt-get install docker-compose

Create a folder for the app and move into it:

mkdir youtransfer
cd youtransfer

Create a docker-compose.yml file:

nano docker-compose.yml

Insert the following contents:

version: "3"
services:
  youtransfer:
    container_name: youtransfer
    restart: unless-stopped
    image: remie/youtransfer:stable
    ports:
      - '5000:5000'
    volumes:
      - ./uploads:/opt/youtransfer/uploads
      - ./config:/opt/youtransfer/config
      - ./assets:/opt/youtransfer/src/assets
      - ./templates:/opt/youtransfer/src/templates

To start the container:

docker-compose up -d

Go into the “templates” folder:

cd templates

Edit the email template file:

nano message.html

Put the following data in the file:

<html>
	<head></head>
	<body>
		<h3>Hi,</h3>
		<p>
			{{ email.from }} wants to share file(s).
		</p>
		{% if message %}
		<p>
			{{ message }}
		</p>
		{% endif %}
		<table>
			{% for file in files %}
				<tr>
					<td><a href="{{ file.link }}">{{ file.name }} ({{ file.size }})</a></td>
				</tr>
			{% endfor %}
		</table>
		<p>
			You can download each file individually by clicking on the file name.<br />
			It is also possible to <a href="{{ bundle.link }}">download a collection of all files</a>.
		</p>
		<p>
			<em>Powered by <a href="youtransfer.io">youtransfer.io</a></em>
		</p>
	</body>
</html>

Save the file CTRL O and then CTRL X to exit the editor.

At this point your youtransfer instance will be reachable at:

http://1.2.3.4:5000/

where 1.2.3.4 represents the IP address of your docker host.

In order to make this reachable from outside your network, optionally offer this instance via Reverse proxy with NginX Proxy Manager.

As a bonus, you can put a file named 204H.jpg into the “assets” folder and your screen background will be replaced.

When you enter the settings panel, be sure to enter your SMTP email settings because this application sends email on behalf of the credentials you have set.

Be sure to lock down (finalize) your settings screen with a password.
To access the settings screen again, simply add “/unlock” to the end of the URL and enter your password which will restore the settings option again.