Skip to content

silv3rr/glftpd-webui

Repository files navigation

glftpd-webui (v4)

/gl wɛb ʊi/

Docker

Web GUI for glftpd (Linux only)

Shows online users, status and stops/starts glftpd. Can also be used to view logs, edit config files and browse site. All user management can be done using forms. Includes a browser terminal that displays gl_spy, useredit and bot partyline (using websockets). It should display fine on mobile devices too.

Main page UI, click to enlarge

main

Usage

Start: ./docker-run.sh or docker run ghcr.io/silv3rr/glftpd-webui

Open url: https://your.ip:4444 and login: shit/EatSh1t (basic web auth).

Installation

Pick one of these 3 options

1) The easiest and preferred way to use glftpd-webui is to run both glftpd and webui in 2 docker containers.

Oh, look -- here's a *Ready-to-go complete glftpd install, including webui: https://github.com/silv3rr/docker-glftpd*

2) If you do not want to use glftpd in docker, use 'local' mode (glftpd-webui itself will still run in container)

3) Install webui, without using docker at all. Ether try running local-install.sh or manually

Configuration

Options such as 'webui-mode', 'auth', a custom html title and display settings can be changed in config.php.

For details about installation and settings see docs/Setup.md

Auth and http user/passwd can be changed via webui after logging in.

Requirements

  • Network: webui needs to be able to connect to tcp ports 1337(glftpd), 3333(bot), 8080(gotty) and 5050(pyspy)
  • User management: needs access to /glftpd dir, either in glftpd container or on same host
  • Stop/start glftpd: needs access to docker socket or systemd/service + sudo in local webui-mode
  • Terminal commands: these need to run in glftpd container or on same host in local webui-mode, local mode requires php 'exec'
  • Filemanager: needs access to config files and /glftpd/site

Compose

Run pre-made images from github:

docker compose up --detach

Build and run local images:

docker compose --profile full up --build --detach local-web

(starts both webui and gl containers)

Edit 'docker-compose.yml' to change mounts, ports, vars etc. If you dont want the docker-glftpd container, remove 'glftpd' service.

Image

  • base: latest alpine (or debian*)
  • size: ~50mb
  • webserver: nginx, php8 fpm
  • stand-alone & fully separate image from 'glftpd'
  • logs: nginx logs to stderr/stdout
  • view access logs with docker logs glftpd-web

* debian image available for using systemd and dbus broker, not needed usually

Variables

Options can be set with environment variables, or (permanently) in docker-run.sh or docker-compose.yml.

Example:

env var in shell: WEBUI_AUTH_MODE="both"

edit docker-run.sh: WEBUI_AUTH_MODE="both" (default: "./glftpd")

docker compose:

# add to docker-compose.yml
services:
  web:
    image: ghcr.io/silv3rr/docker-glftpd-web:latest
    # <...>
    environment:
        WEBUI_AUTH_MODE="both"

Troubleshooting

See docs/Troubleshooting.md

Stack

Cutting-edge tech used:

Screenshots

Notification about added gadmin

notification

Terminal modal showing bot

bot


View more images