Ftp Web Client
is the web layer implementation of FTP, providing authentication based on Microsoft AD and web-based download functionality bound to FTP user directories. developed by levywang.
- Username:admin
- Password:123456
- Complete login functionality, supporting local authentication using python-ldap3 and python-ldap libraries.
- Provides user download functionality, defaulting to binding user directories, with options to bind to Linux home directories or FTP directories, and the flexibility to set other directories as well.
- Backend administrative features include comprehensive configuration management, log management, and a control panel.
- SSH Protocol Authentication
- FTP Protocol Authentication
- Upload function
- Multi-language support
- English
We welcome translations into any language.
Before using this item, you need to modify the web_admin.py and config.json files according to the actual situation.
If you need to modify the running port, it is in the last line of web_admin.py.
By default, port 8080 is used.
The default value of <config_bind_data_dir>
is /data
<your_local_dir>
can set the ftp binding directory or /home
When your service is running, Log in to web panel with http://<your_server_ip>:8080
.
ftp-web-client is available on the following platforms:
- macOS 11 Big Sur and later (amd64 / arm64)
- Linux 2.6.23 and later (x86 / amd64 / arm64 / armv5 / armv6 / armv7)
- Including but not limited to Debian 7 / 8, Ubuntu 12.04 / 14.04 and later, CentOS 6 / 7, Arch Linux
- FreeBSD
- OpenBSD
- Dragonfly BSD
- Openwrt
In the first runtime of the project, you need to edit the config.json
file in the root directory of the project.
Run Project in Terminal
git clone https://github.com/levywang/ftp-web-client.git
cd ftp-web-client
pip install -r requirements.txt
python web_admin.py
Our docker image levywang/ftp-wecb-client:latest is based on the latest python image.
- Please bind the local user directory (or other) to the container before use. The default container directory is
/data
. - If you want to host static files, you can map directories to container.
Deploy with Docker
-
Then deploy ftp-web-client like this:
docker run -dit \
--name=ftp-web-client \
--restart=always \
-e TZ=Asia/Shanghai \
-v <your_local_dir>:<config_bind_data_dir> \
-p 8080:8080 \
levywang/ftp-web-client:latest
- When your docker container is running, Log in to web panel with
http://<your_server_ip>:8080
.
Deploy with Docker-Compose
-
Create a docker-compose.yml file like this:
version: '3.3'
services:
ftp-web-client:
stdin_open: true
tty: true
container_name: ftp-web-client
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- '<your_local_dir>:<config_bind_data_dir>'
ports:
- 8080:8080
image: 'levywang/ftp-web-client:latest'
- Then creat your container by:
docker-compose up -d
# If using docker-compose-plugin
docker compose up -d
- When your docker container is running, Log in to web panel with
http://<your_server_ip>:8080
.
Build Local Dockerfile
# Build Docker Image
docker build -t <tag>:<version> .
# RUN Docker Container
docker run -d --name <container_name> -v <your_path>:<container_path> -p <your_port>:8080 <tag>:<version>
This project is provided under a GNU Affero General Public License v3.0 license that can be found in the LICENSE file. By using, distributing, or contributing to this project, you agree to the terms and conditions of this license.