All templates

SFTPGo

v1.0.0

Managed SFTP file transfer with a web administration console.

files by getarcaneapp
x-arcane:
  icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/sftpgo.svg
  urls:
    - https://github.com/sftpgo/docs/blob/main/docs/docker.md

services:
  sftpgo:
    image: drakkan/sftpgo:latest
    restart: unless-stopped
    ports:
      - "${BIND_ADDRESS:-127.0.0.1}:${PORT:-8080}:8080"
      - "${BIND_ADDRESS:-127.0.0.1}:${SFTP_PORT:-2022}:2022"
    labels:
      com.getarcaneapp.arcane.icon: https://cdn.jsdelivr.net/gh/selfhst/icons@main/svg/sftpgo.svg
    environment:
      SFTPGO_DATA_PROVIDER__CREATE_DEFAULT_ADMIN: "true"
      SFTPGO_DEFAULT_ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
      SFTPGO_DEFAULT_ADMIN_PASSWORD: ${ADMIN_PASSWORD:?Set a strong SFTPGo administrator password}
    volumes:
      - data:/srv/sftpgo
      - state:/var/lib/sftpgo

volumes:
  data:
  state:

README

Managed SFTP file transfer with a web administration console.

Copy .env.example to .env, replace every example secret with a unique generated value, adjust the settings, then deploy with docker compose up -d or import this template in Arcane. Open http://localhost:8080 on the Docker host. Ports bind to localhost by default; set BIND_ADDRESS to a trusted interface for LAN access, or use a reverse proxy with HTTPS.

Set administrator credentials before deploying, then open /web/admin and create file transfer users. Administrator credentials initialize a new database only; use the UI for later password changes. Only SFTP and the HTTP UI are exposed.

Named volumes retain internal application state across container upgrades. Keep a backup before updating images; docker compose down -v deletes named volume data.

Upstream: installation and configuration.