crushftp/crushftp11

By crushftp

Updated about 15 hours ago

CrushFTP: Enterprise Grade File Transfer For Everyone

Image
Networking
Security
Integration & delivery
0

100K+

crushftp/crushftp11 repository overview

CrushFTP is an extremely powerful, easy to use solution that runs on almost everything: macOS 10.9+/11/12+, Win2012+, Linux, Solaris, BSD, Unix, etc! Any OS that can run Java 8 at a minimum can run CrushFTP.

Usage

Arguments for initial admin user are defined with the "-ad" flag like:

"-ad", "crushadmin", "PASSFILE"

The "crushadmin" is the default username for the first admin user, and "PASSFILE" is an environment variable pointing to the path of a password file. By default, PASSFILE is set to /app/CrushFTP11/passfile, which should contain a single password string (without quotes).

This password is used only during the initial creation of the admin user. After setup, you can delete the password file if needed. Subsequent changes to the password file are ignored when using the -ad flag.

The latest image tags use distroless containers (no shell or execution environment), while latest-dev and -dev tags include a shell for debugging. If the second argument to -ad is a string instead of a variable name, it directly sets the initial password for the "crushadmin" user.

Run CrushFTP11 with docker compose

Production image:

export PUID=$(id -u) PGID=$(id -g)
docker compose up

Run app with shell

docker compose -f docker-compose-dev.yaml up

docker compose latest example:

services:
  crushftp-init:
    image: 'crushftp/crushftp11:latest-dev'
    container_name: crushftp-init
    environment:
      - INIT=true
    volumes:
    - ./CrushFTP11/:/app/CrushFTP11
    user: "${PUID:-1000}:${PGID:-1000}"
  crushftp:
    image: 'crushftp/crushftp11:latest'
    container_name: crushftp
    ports:
      - '8081:8080'
      - '9091:9090'
      - '8443:443'
    volumes:
    - ./CrushFTP11/:/app/CrushFTP11
    working_dir: "/app/CrushFTP11"
    entrypoint: ["java", "-Ddir=/app/CrushFTP11", "-Xmx512M", "-jar", "/app/CrushFTP11/plugins/lib/CrushFTPJarProxy.jar", "-ad", "crushadmin", "PASSFILE"]
    user: "${PUID:-1000}:${PGID:-1000}"
    depends_on:
      crushftp-init:
        condition: service_completed_successfully
volumes:
  local_folder:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: ${PWD}

docker-copmpose-dev.yaml

services:
  crushftp:
    user: "${PUID:-1000}:${PGID:-1000}"
    image: 'crushftp/crushftp11:latest-dev'
    container_name: crushftp
    ports:
      - '8081:8080'
      - '9091:9090'
      - '8443:443'
    environment:
      CRUSHFTP_ADMIN_PASSWORD: "changeme"
    volumes:
    - ./CrushFTP11/:/app/CrushFTP11:rw
volumes:
  CrushFTP11:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: ${PWD}

Note: The CrushFTP11/ bind mount holds users, jobs, prefs, and TLS certs across restarts. By default the containers run as UID:GID 1000:1000 — if that doesn't match your host user, either set PUID/PGID before docker compose up (as shown above), or after the first run take ownership of the mount: sudo chown -R $(id -u):$(id -g) CrushFTP11.

Install with crushftp helm chart:

See chart: https://artifacthub.io/packages/helm/crushftp/crushftp

Tag summary

Content type

Image

Digest

sha256:0c5a99495

Size

145.2 MB

Last updated

about 15 hours ago

docker pull crushftp/crushftp11:latest-dev