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.