flysystem Documentation

Abstraction for local and remote filesystems

13,594 stars PHP PHP 1 file ยท ~939 tokens #filesystem#filesystem-library#php#thephpleague
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy flysystem on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name flysystem -p 27017:27017 --restart always mongo:7
Configured Services & Ports
โš™๏ธ mongodb
image: mongo:7
๐Ÿ”Œ Ports: 27017:27017
โš™๏ธ sabredav
image: php:8.1-alpine3.15
๐Ÿ”Œ Ports: 4040:4040
โš™๏ธ webdav
image: bytemark/webdav
๐Ÿ”Œ Ports: 4080:80
โš™๏ธ sftp
image: atmoz/sftp
๐Ÿ”Œ Ports: 2222:22
โš™๏ธ sftp_eddsa_only
image: atmoz/sftp
๐Ÿ”Œ Ports: 2223:22
โš™๏ธ ftp
image: delfer/alpine-ftp-server
๐Ÿ”Œ Ports: 2121:21, 21000-21010:21000-21010
โš™๏ธ ftpd
image: stilliard/pure-ftpd
๐Ÿ”Œ Ports: 2122:21, 30000-30009:30000-30009
โš™๏ธ toxiproxy
image: ghcr.io/shopify/toxiproxy
๐Ÿ”Œ Ports: 8474:8474, 8222:8222, 8121:8121, 8122:8122
docker-compose.yml
yaml (docker-compose.yml)
---
version: "3"
services:
  mongodb:
    image: mongo:7
    ports:
      - "27017:27017"
  sabredav:
    image: php:8.1-alpine3.15
    restart: always
    volumes:
      - ./:/var/www/html/
    ports:
      - "4040:4040"
    command: php -S 0.0.0.0:4040 /var/www/html/src/WebDAV/resources/server.php
  webdav:
    image: bytemark/webdav
    restart: always
    ports:
      - "4080:80"
    environment:
      AUTH_TYPE: Digest
      USERNAME: alice
      PASSWORD: secret1234
      ANONYMOUS_METHODS: 'GET,OPTIONS'
  sftp:
    container_name: sftp
    restart: always
    image: atmoz/sftp
    volumes:
      - ./test_files/sftp/users.conf:/etc/sftp/users.conf
      - ./test_files/sftp/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key
      - ./test_files/sftp/ssh_host_rsa_key:/etc/ssh/ssh_host_rsa_key
      - ./test_files/sftp/id_rsa.pub:/home/bar/.ssh/keys/id_rsa.pub
    ports:
      - "2222:22"
  sftp_eddsa_only:
    container_name: sftp_eddsa_only
    restart: always
    image: atmoz/sftp
    volumes:
      - ./test_files/sftp/users.conf:/etc/sftp/users.conf
      - ./test_files/sftp/sshd_custom_configs.sh:/etc/sftp.d/sshd_custom_configs.sh
      - ./test_files/sftp/ssh_host_ed25519_key:/etc/ssh/ssh_host_ed25519_key
    ports:
      - "2223:22"
  ftp:
    container_name: ftp
    restart: always
    image: delfer/alpine-ftp-server
    environment:
      USERS: 'foo|pass|/home/foo/upload'
      ADDRESS: 'localhost'
    ports:
      - "2121:21"
      - "21000-21010:21000-21010"
  ftpd:
    container_name: ftpd
    restart: always
    environment:
      PUBLICHOST: localhost
      FTP_USER_NAME: foo
      FTP_USER_PASS: pass
      FTP_USER_HOME: /home/foo
    image: stilliard/pure-ftpd
    ports:
      - "2122:21"
      - "30000-30009:30000-30009"
    command: "/run.sh -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -P localhost"
  toxiproxy:
    container_name: toxiproxy
    restart: unless-stopped
    image: ghcr.io/shopify/toxiproxy
    command: "-host 0.0.0.0 -config /opt/toxiproxy/config.json"
    volumes:
      - ./test_files/toxiproxy/toxiproxy.json:/opt/toxiproxy/config.json:ro
    ports:
      - "8474:8474" # HTTP API
      - "8222:8222" # SFTP
      - "8121:8121" # FTP
      - "8122:8122" # FTPD

Technical Documentation: thephpleague/flysystem

โ„น๏ธ Provenance: Multi-Tier Ingestion ยท CodeWiki Reference

Overview (`readme.md`)

League\Flysystem






About Flysystem

Flysystem is a file storage library for PHP. It provides one interface to
interact with many types of filesystems. When you use Flysystem, you're
not only protected from vendor lock-in, you'll also have a consistent experience
for which ever storage is right for you.

Getting Started

Officially supported adapters

Third party Adapters

You can always create an adapter yourself.

Security

If you discover any security related issues, please email [email protected] instead of using the issue tracker.

Enjoy

Oh, and if you've come down this far, you might as well follow me on twitter.


--- METRICS ---