Skip to content

glFTPd :: We Make Files Transfer

Install Package Requirements

 emerge --ask zip unzip xinetd
 /etc/init.d/xinetd start
 wget -P /tmp https://glftpd.io/files/glftpd-LNX-2.12_3.0.1_x64.tgz
 tar -xvf /tmp/glftpd-LNX-2.12_3.0.1_x64.tgz -C /tmp/
 cd /tmp/glftpd-LNX-2.12_3.0.1_x64
./installgl.sh
./create_server_key.sh ecdsa ok

Download and install glFTPd

wget https://glftpd.io/files/glftpd-LNX-2.13a_3.0.8_x64.tgz -P /tmp
tar -xvzf /tmp/glftpd-LNX-2.13a_3.0.8_x64.tgz -C /mnt/usb/
mv /mnt/usb/glftpd-LNX-2.13a_3.0.8_x64/ /mnt/usb/glftpd

Add and Delete users

ftp> site adduser <user> password *@xx.xx.xx.* *@192.168.*.*
ftp> site addip <user> *@0000:0000:0000:0000:0000:0000:0000:0001
ftp> site grpadd iND
ftp> site change flags <user> +1ABCDEFGHJIKLMOPQRST
ftp> site change <user> flags +1ABCDEFGHJIKLMOPQRST
ftp> site change <user> num_logins 10
ftp> site change <user> max_sim_down 10
ftp> site change <user> max_sim_up 10
ftp> site change <user> ratio 0
ftp> site tagline <user> SiTEOP
mnt/usb $ sudo rm -rf /mnt/usb/glftpd/
mv /glftpd/ /mnt/usb/
ln -s /mnt/usb/glftpd/ /glftpd
ln -s /mnt/usb/glftpd/glftpd.conf /etc/glftpd.conf

Create speedtest Files

#!/bin/bash

OUTPUT_DIR="/mnt/usb/site/speedtest"
mkdir -p "$OUTPUT_DIR"
SIZES=("50M" "100M" "500M" "1000M" "2500M")

for size in "${SIZES[@]}"; do
    echo "Creating ${size} file..."
    
    head -c $size </dev/urandom >"${OUTPUT_DIR}/${size}iB"

    if [[ $? -eq 0 ]]; then
        echo "${size} file created successfully."
    else
        echo "Failed to create ${size} file."
        exit 1
    fi
done
echo "All done"

Create incoming folders

mkdir -p /mnt/usb/glftpd/site/incoming/ebooks
mkdir -p /mnt/usb/glftpd/site/incoming/games/_emulator 
mkdir -p /mnt/usb/glftpd/site/incoming/games/_linux 
mkdir -p /mnt/usb/glftpd/site/incoming/games/_windows
mkdir -p /mnt/usb/glftpd/site/incoming/mbluray
mkdir -p /mnt/usb/glftpd/site/incoming/mp3
mkdir -p /mnt/usb/glftpd/site/incoming/mvids
mkdir -p /mnt/usb/glftpd/site/incoming/pda
mkdir -p /mnt/usb/glftpd/site/incoming/software
mkdir -p /mnt/usb/glftpd/site/incoming/tutorial
mkdir -p /mnt/usb/glftpd/site/incoming/tv
mkdir -p /mnt/usb/glftpd/site/incoming/x2641080p
mkdir -p /mnt/usb/glftpd/site/incoming/x264720p
mkdir -p /mnt/usb/glftpd/site/incoming/x264sd
mkdir -p /mnt/usb/glftpd/site/incoming/xxxsd

Create archive folders

mkdir -p /mnt/usb/glftpd/site/archive/ebooks
mkdir -p /mnt/usb/glftpd/site/archive/games/_emulator 
mkdir -p /mnt/usb/glftpd/site/archive/games/_linux 
mkdir -p /mnt/usb/glftpd/site/archive/games/_windows
mkdir -p /mnt/usb/glftpd/site/archive/mbluray
mkdir -p /mnt/usb/glftpd/site/archive/mp3
mkdir -p /mnt/usb/glftpd/site/archive/mvids
mkdir -p /mnt/usb/glftpd/site/archive/pda
mkdir -p /mnt/usb/glftpd/site/archive/software
mkdir -p /mnt/usb/glftpd/site/archive/tutorial
mkdir -p /mnt/usb/glftpd/site/archive/tv
mkdir -p /mnt/usb/glftpd/site/archive/x2641080p
mkdir -p /mnt/usb/glftpd/site/archive/x264720p
mkdir -p /mnt/usb/glftpd/site/archive/x264sd
mkdir -p /mnt/usb/glftpd/site/archive/xxxsd

Total Rescan

curl -o /glftpd/bin/total-rescan.pl https://raw.githubusercontent.com/pzs-ng/scripts/master/total-rescan/total-rescan.pl
chmod +x /glftpd/bin/total-rescan.pl

glftpd.conf

cat << "EOF" >> /etc/glftpd.conf

calc_crc          *

post_check        /bin/zipscript-c *

cscript           DELE                    post    /bin/postdel
cscript           RMD                     post    /bin/datacleaner

cscript           SITE[:space:]NUKE       post    /bin/cleanup
cscript           SITE[:space:]WIPE       post    /bin/cleanup
cscript           SITE[:space:]UNNUKE     post    /bin/postunnuke

site_cmd          RESCAN                  EXEC    /bin/rescan
custom-rescan     !8      *

cscript           RETR                    post    /bin/dl_speedtest

site_cmd          AUDIOSORT               EXEC    /bin/audiosort
custom-audiosort                          !8      *
EOF