SFTPGo provides official Docker images. They are available here.
Starting a SFTPGo instance is simple:
docker run --name some-sftpgo -p 127.0.0.1:8080:8080 -p 2022:2022 -d "ghcr.io/drakkan/sftpgo:edge"
Now visit http://localhost:8080/ and create a new SFTPGo user. The SFTP service is available on port 2022.
The logs are available through Docker's container log:
docker logs some-sftpgo
The runtime configuration can be customized via environment variables that you can set passing the -e option to the docker run command or inside the environment section if you are using docker stack deploy or docker-compose.
Please take a look here to learn how to configure SFTPGo via environment variables.
Important note: There are several ways to store data used by applications that run in Docker containers. We encourage users of the SFTPGo images to familiarize themselves with the options available, including:
1000 as uid and gid.The Docker documentation is a good starting point for understanding the different storage options and variations, and there are multiple blogs and forum postings that discuss and give advice in this area. We will simply show the basic procedure here for the latter option above:
/my/own/sftpgodata.Start your SFTPGo container like this:
docker run --name some-sftpgo \
-p 127.0.0.1:8080:8090 \
-p 2022:2022 \
--mount type=bind,source=/my/own/sftpgodata,target=/var/lib/sftpgo \
-e SFTPGO_HTTPD__BIND_PORT=8090 \
-d "ghcr.io/drakkan/sftpgo:edge"
The --mount type=bind,source=/my/own/sftpgodata,target=/var/lib/sftpgo part of the command mounts the /my/own/sftpgodata directory from the underlying host system as /var/lib/sftpgo inside the container, where SFTPGo will store its data.