fred.moe is a simplified file sharing service built with ease of installation in mind. Fred.moe comes with many features out of the box:
- Simple user interface
- HTTPs by default (via Let's Encrypt)
- Self-updating ClamAV scans your files daily and upon upload
- Everything is contained in a Docker image meaning minimal configuration
if you are on a Linux system, install Docker with this command:
curl -sSL https://get.docker.com/ | sh
Otherwise take a look at how to install Docker
Please take a look at the docker docs.
Create a new permanent directory for fred.moe. Create a file called docker-compose.yml
and paste this into it:
version: '2'
services:
moe:
image: frederikam/fred.moe:latest
hostname: moe
container_name: moe
ports:
- "80:80"
- "443:443"
- "2500:2500"
environment:
# This is required for automatic HTTPS! Setting this value
# indicates that you agree to Let's Encrypt Subscriber Agreement.
# No further action is required on your part
- CADDY_EMAIL=
# Also super important. The domain must be specified, otherwise fred.moe will only be readable on port 2500.
# Example: example.org
- DOMAIN=
volumes:
# By default your data will be mounted to ./moedata . Feel free to change this value, but keep the `:/home/data` part.
- ./moedata:/home/data
Remember to change the CADDY_EMAIL
setting.
To download and run the latest container, all you need to do is run one command:
docker-compose up -d moe
If you want to peek inside the container, you can run this command:
You are free to edit the /home/public/
folder which contains all the static files.
docker exec -it moe bash
Run this command if you want to look at the logs:
docker logs -f moe
This command will update your image, but will by default discard all data but your uploaded files:
docker pull frederikam/fred.moe && docker-compose up moe -d
Pull requests are welcome. Please follow the code style used here.
Open a GitHub issue and I'll get to you soon, or just contact me directly.
You can copy and import the below configuration into ShareX. Be sure to replace fred.moe with your own instance's domain.
{
"Name": "fred.moe",
"DestinationType": "None",
"RequestType": "POST",
"RequestURL": "https://fred.moe/upload",
"FileFormName": "file",
"ResponseType": "Text",
"URL": "$json:files[0].url$"
}