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.

Note: You need Ubuntu 20.04 for this OLD application (incus container shown here):

incus launch images:ubuntu/20.04 Youtransfer -p default -p bridgeprofile -c security.nesting=true -c security.privileged=true
incus shell Youtransfer
adduser scott
usermod -aG sudo scott
su - scott

Install dependencies:

sudo apt install wget  nano iptables curl

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

wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce_20.10.21~3-0~ubuntu-focal_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.4.3-1_amd64.deb
wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce-cli_20.10.21~3-0~ubuntu-focal_amd64.deb
curl -SL -o docker-compose https://github.com/docker/compose/releases/download/v2.27.2/docker-compose-linux-x86_64
chmod +x docker-compose
sudo dpkg -i docker-ce-cli_20.10.21~3-0~ubuntu-focal_amd64.deb
sudo dpkg -i containerd.io_1.4.3-1_amd64.deb
sudo dpkg -i docker-ce_20.10.21~3-0~ubuntu-focal_amd64.deb

Add your account to the Docker group:

sudo usermod -aG docker $(whoami)
newgrp docker

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:

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:

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