Replies: 11 comments 23 replies
-
Do you believe it's really viable to develop "all-in-one" solution supporting sftp and ftp? I am worried that this project can get too big and complex down the road, and loses its initial idea - SFTP. I had already seen projects go south because they expanded their initial focus too wide and wanted to fit everyone's needs. |
Beta Was this translation helpful? Give feedback.
-
Hi, I'll try to answer your question and also to share my vision about the future of SFTPGo, sorry for the long post. The SFTPGo code could still be improved a lot but it is already modular enough:
All the improvements to the common package will be automatically available to all the supported protocols, for example implementing #241 will not require specific code for FTP or WebDAV. If a method within Most optional features such as data providers and vfs can be disabled using build tags. The FTP and WebDAV libraries are pure Go libraries without external dependencies, so adding a build tag for disabling them will only reduce the binary size by a few bytes and you can already disable these protocols within the configuration file. This to say that you can still customize your build and have an SFTP only server very similar, in size, to the initial implementation (for example 0.9.x versions) building SFTPGo with a command like this one:
I must admit that supporting also FTP, WebDAV and trying to improve the user experience leaves me less time to develop specific SFTP features: for example I could have already added SFTP v6 support in pkg/sftp instead of improving ftpserverlib or optimizing WebDAV library and/or improving other things. I'll try to add v6 support to pkg/sftp too at some point, it is a feature on my personal roadmap. So answering to you question: support for protocols other than SFTP is slowing down the development of specific SFTP features but it shouldn't interfere with SFTP only usage. You will only have a larger binary but you can still customize the build by removing the optional features and thus reducing the size of the SFTPGo executable. The different protocols have very few specific implementations, most of the code they use is already inside the I don't use SFTPGo in production and I don't have a main sponsor or use case that dictates new features. I add new features based on the matching between my personal technical interest and user requests. Initially my focus was SFTP only and I never imagined adding support for things like Cloud backends. I'm also quite ambitious and I would like to make SFTPGo a viable/better alternative to similar free and (obscure) commercial products. Regarding commercial products if you do a quick search you can see that all of them support FTP/SFTP and WebDAV or a built-in WebClient. Regarding free alternatives, ProFTPD supports both FTP and SFTP and if you use SFTPGo for SFTP you can already understand what SFTPGo do better than ProFTPD/mod_sftp. I agree that FTP is a legacy protocol and it has many pitfails (for example ASCII mode support I recently added to ftpserverlib) but it could be still used for many years, so I improved ftpserverlib to bring feature parity with ProFTPD and the commercial FTP products out there. The Go ftpserver you linked is based on ftpserverlib too so it will automatically benefit from all the recent improvements but it has different features than SFTPGo and it is probably aimed to a different user base/use cases. You are likely a system integrator and so you have no issues to integrate different software into your own custom system. I think other users could appreciate a more "all-in-one" solution. Unwanted protocols can still be disabled within the configuration file. Having said that, I am fortunate to have a good job, I am highly appreciated by my boss and colleagues and I earn a good salary (by Italian standards) so I can devote a lot of my free time to improve SFTPGo but this cannot go on forever. My main goal is not to make money with SFTPGo, it is to work on technically interesting things unrelated to my daily work, but the project will also have to be financially viable at some point. Let's see how the GitHub sponsorship will go. |
Beta Was this translation helpful? Give feedback.
-
Hi @drakkan Thanks for sftpgo and implementing FTP in it! I am facing issues connecting via FTPs, tested on Arch Linux - FTP client Filezilla log:
sftpgo config:
sftpgo log:
sftpgo is configured with an Amazon S3 backend if that makes any difference. Please let me know what other information I could provide to assist in troubleshooting this. |
Beta Was this translation helpful? Give feedback.
-
A quick update.. disabled TLS, sftpgo/plain FTP works fine. So the issue might seem to be with TLS, however, with TLS enabled, I see: |
Beta Was this translation helpful? Give feedback.
-
Hello, I am using FTP (active, I am not allowed to use passive) with SFTPGo and a S3 storage backend and experiencing some intermittent problems and wondering if anyone recognizes this... I can always login fine and then I can do a list (ls) which always works the first time as expected. When I try list (ls) again it fails with (edit example):
My next step was to turn off SFTPGo and download the binary for "fclairamb/ftpserver" and see how that would work. I was surprised as same results. Testing locally with no changes to its auto created config: login good, first LS is good and then next attempt to LS is;
I then tried "fclairamb/ftpserver" on a different server and same results. So it seems like my issue is with the ftpserver component, both servers are Ubuntu 18. Summary: SFTPGo or ftpserver: FTP Thanks much for any insight or ideas, cheers |
Beta Was this translation helpful? Give feedback.
-
Hello, this patch fixes the problem for me, thank you! |
Beta Was this translation helpful? Give feedback.
-
Using sftpgo with Docker and cannot connect to plain FTP with either passive, nor active mode. I tried setting the Connection instantly fails after successfully authenticating. SFTP works fine. Upgrading from 2.1 to 2.2 didn't fix the issue either. SFTPGo Log
docker-compose.ymlversion: '3'
services:
sftp:
image: drakkan/sftpgo:latest
container_name: sftpgo
restart: always
networks:
web:
ports:
- ${SFTP_PORT}:2022
- ${FTP_PORT}:2121
- 50000-50100:50000-50100
environment:
- SFTPGO_FTPD__BINDINGS__0__PORT=2121
- SFTPGO_FTPD__BINDINGS__0__FORCE_PASSIVE_IP=<wan-ipv4>
- SFTPGO_FTPD__BINDINGS__0__TLS_MODE=0
- SFTPGO_HTTPD__BINDINGS__0__PROXY_ALLOWED=192.168.80.0/20
- SFTPGO_PUID=1000
- SFTPGO_PGID=1000
- TZ=${TZ:-Europe/Berlin}
labels:
- traefik.enable=true
- traefik.docker.network=web
- traefik.http.routers.sftpgo.rule=Host(`${SERVICE_HOSTNAME}`)
- traefik.http.routers.sftpgo.entrypoints=websecure
- traefik.http.routers.sftpgo.tls=true
- traefik.http.routers.sftpgo.priority=420
- traefik.http.services.sftpgo-svc.loadbalancer.server.port=8080
- traefik.http.routers.sftpgo.service=sftpgo-svc
volumes:
- ${INSTANCE_PATH}/app:/var/lib/sftpgo
- ${INSTANCE_PATH}/config:/etc/sftpgo
- ${INSTANCE_PATH}/backups:/srv/sftpgo/backups
- /opt/docker/vol1/app:/srv/sftpgo/data/vol1
networks:
web:
external: true FileZilla Log with passive+active
|
Beta Was this translation helpful? Give feedback.
-
No, it cannot work because the connection is established via the WAN IPv4 (e.g. I also set
|
Beta Was this translation helpful? Give feedback.
-
Hello! I know this thread is getting a little old, but I've been bashing my head against this all day and hoping to just ask for the solution. Today I subscribed to one of the AWS Marketplace images for SFTPGo, and I'm trying to get it all configured and running. I've managed to get Let's Encrypt on, and I've setup an S3 bucket and a user that can SFTP in to the S3 bucket and upload files, etc. However, I need to be able to FTPS in and do the same, but that isn't working for some reason, and try as I might I can't seem to work out what's going wrong. I'm wanting to use SFTPGo so that my security camera NVR system can upload video files to S3 via SFTPro, using the FTPS protocol. Any help appreciated! |
Beta Was this translation helpful? Give feedback.
-
@Japh Thank you for subscribing to our Marketplace offer. To get support, write to the dedicated support email you see in the offer page providing your AWS subscription ID, so we can check your subscription, and describe in more detail the problem you are experiencing. With resource-based billing you have basic email support |
Beta Was this translation helpful? Give feedback.
-
@drakkan Emailed! Thank you for the quick response! |
Beta Was this translation helpful? Give feedback.
-
Hi all,
in the last few weeks I have beed working on ftpserverlib to improve FTP support, several features and fixes have been added:
if you use FTP with SFTPGo you are encouraged to test the current git master and report any issues found, thank you!
Beta Was this translation helpful? Give feedback.
All reactions