- Explicit TLS support by @crazy-max in #477
- FTP path encoding option support for legacy servers by @crazy-max in #498
- Honor FTP and SFTP timeouts during stalled transfers by @crazy-max in #478
- Stage
tempFirstdownloads under a destination-local directory by @crazy-max in #481 - Close FTP and SFTP connections on init failures by @crazy-max in #480
- Make log file output follow the
log-jsonsetting by @crazy-max in #476 - Make shutdown safe before initialization by @crazy-max in #479
- Go 1.26 by @crazy-max in #497
- MkDocs Materials 9.7.5 by @crazy-max in #499
- Bump github.com/alecthomas/kong to 1.15.0 in #490
- Bump github.com/crazy-max/gonfig to 0.8.0 in #489
- Bump github.com/go-playground/validator/v10 to 10.30.2 in #445 #488
- Bump github.com/rs/zerolog to 1.35.0 in #485
- Bump golang.org/x/crypto to 0.49.0 in #464
- Bump golang.org/x/sys to 0.43.0 in #494
- Go 1.25 by @crazy-max in #443
- Alpine Linux 3.23 by @crazy-max in #444
- MkDocs Materials 9.6.20 by @crazy-max in #428
- Bump github.com/alecthomas/kong to 1.13.0 in #438
- Bump github.com/go-playground/validator/v10 to 10.30.0 in #440
- Bump github.com/pkg/sftp to 1.13.10 in #437
- Bump github.com/rs/zerolog to 1.34.0 in #422
- Bump github.com/stretchr/testify to 1.11.1 in #439
- Bump golang.org/x/crypto to 0.46.0 in #432
- Bump go.etcd.io/bbolt to 1.4.3 in #434
- Go 1.23 by @crazy-max in #397
- Alpine Linux 3.21 by @crazy-max in #397
- Bump github.com/alecthomas/kong to 1.6.0 in #323 #354 #393
- Bump github.com/go-playground/validator/v10 to 10.23.0 in #350 #370 #394
- Bump github.com/pkg/sftp to 1.13.7 in #326 #395
- Bump github.com/rs/zerolog to 1.33.0 in #344 #366
- Bump github.com/stretchr/testify to 1.10.0 in #351 #396
- Bump go.etcd.io/bbolt to 1.3.11 in #325 #348 #365 #377
- Bump golang.org/x/crypto to 0.31.0 in #324 #337 #352 #391
- Bump golang.org/x/net to 0.28.0 in #360 #353 #392
- Go 1.21 by @crazy-max in #322
- Alpine Linux 3.18 by @crazy-max in #322
- Bump github.com/alecthomas/kong to 0.8.0 in #306
- Bump github.com/crazy-max/gonfig to 0.7.0 in #291
- Bump github.com/jlaffaye/ftp to 0.2.0 by @crazy-max in #297 #301
- Bump github.com/go-playground/validator/v10 to 10.16.0 in #295 #321
- Bump github.com/rs/zerolog to 1.31.0 in #294 #320
- Bump github.com/stretchr/testify to 1.8.4 in #283 #302
- Bump golang.org/x/crypto to 0.8.0 in #293 #310
- Bump golang.org/x/net to 0.17.0 in #318
- Bump golang.org/x/sys to 0.15.0 in #287 #292 #319
- Bump go.etcd.io/bbolt to 1.3.7 in #277
- Option to escape all regular expression metacharacters by @crazy-max in #270
- Fix file mode type by @crazy-max in #269
- Move from
io/ioutiltoioandospackages by @crazy-max in #219 - Move
syscalltogolang.org/x/sysby @crazy-max in #220 - Go 1.19 by @crazy-max in #262 #253
- Alpine Linux 3.17 by @crazy-max in #268 #254 #223
- MkDocs Material 8.3.9 by @crazy-max in #256
- Enhance workflow by @crazy-max in #263 #218 #255
- Bump github.com/crazy-max/gonfig to 0.6.0 in #257
- Bump github.com/pkg/sftp to 1.13.5 in #208 #210 #246
- Bump github.com/rs/zerolog to 1.28.0 in #209 #211 #217 #245 #258
- Bump github.com/alecthomas/kong to 0.7.1 in #212 #215 #222 #230 #248 #266
- Bump github.com/go-playground/validator/v10 to 10.11.1 in #221 #229 #236 #261
- Bump github.com/stretchr/testify to 1.8.1 in #251 #264
- Bump github.com/docker/go-units to 0.5.0 in #259
- Bump golang.org/x/crypto to 0.4.0 by @crazy-max in #272
- Bump golang.org/x/sys to 0.3.0 by @crazy-max in #271
- Go 1.17 by @crazy-max in #203
- Wrong remaining time displayed by @crazy-max in #204
- Add
windows/arm64artifact by @crazy-max in #205 - MkDocs Material 7.2.6
- Bump github.com/rs/zerolog to 1.24.0 in #207
- Bump github.com/crazy-max/gonfig to 0.5.0 in #206
- Bump github.com/gorilla/websocket to v1.4.2
- Bump github.com/go-playground/validator/v10 to 10.9.0 in #200 #202
- Add
linux/riscv64artifact - Alpine Linux 3.14
- MkDocs Materials 7.2.0
- GitHub Action cache backend by @crazy-max in #198
- Enhance issue template
- Bump github.com/pkg/sftp to 1.13.2 in #193 #196
- Bump github.com/go-playground/validator/v10 to 10.7.0 in #187 #195
- Bump go.etcd.io/bbolt to 1.3.6 in #190
- Bump github.com/rs/zerolog to 1.23.0 in #188 #194
- Bump github.com/alecthomas/kong to 0.2.17 in #191
- Add
disableMLSDftp option by @crazy-max in #176 - Fix Dockerfile
- Add
darwin/arm64artifact by @crazy-max in #175 - Bump github.com/go-playground/validator/v10 to 10.5.0 in #171
- Use logger
PartsExcludeby @crazy-max in #174 - Go 1.16 by @crazy-max in #167
- Switch to goreleaser-xx by @crazy-max in #163
- MkDocs Materials 7.1.3
- Bump github.com/alecthomas/kong to 0.2.16 in #165
- Bump github.com/pkg/sftp to 1.13.0 in #164
- Bump github.com/rs/zerolog to 1.21.0 in #166
- Refactor CI and dev workflow with buildx bake by @crazy-max in #161
- Add
image-localtarget - Single job for artifacts and image
- Add
armv5,ppc64leands390xartifacts - Upload artifacts
- Validate
- Add
- Remove
linux/s390xDocker platform support for now - MkDocs Materials 6.2.8
- Bump github.com/stretchr/testify to 1.7.0 in #154 Bump github.com/alecthomas/kong to 0.2.15 in #160
- Allow downloading files to a temp dir first by @crazy-max in #149
- Allow disabling log timestamp by @crazy-max in #148
- Add script notification by @crazy-max in #147
- Bump github.com/crazy-max/gonfig to 0.4.0 in #140
- Use embedded tzdata package
- Remove
--timezoneflag - Docker image also available on GitHub Container Registry
- Use Docker meta action to handle tags and labels
- Allow disabling
OPTS UTF8 ONcommand - Refactor to start working on #48
- Switch to Docker actions
- Go 1.15
- Update
GOPROXYsetting - Update deps
- Fix SFTP not taken into account
- Repository moved to crazy-max/ftpgrab
- DockerHub repository moved to crazymax/ftpgrab
- Configuration transposed into environment variables by @crazy-max in #90
FTPGRAB_DBenv var renamedFTPGRAB_DB_PATHkeyfield for SFTP authentication has been renamedkeyFile- Add
keyPassphraseto provide a passphrase linked tokeyFile - Improve configuration validation
- All fields in configuration now camelCased
- Add tests and coverage
- Seek configuration file from default places
- Configuration file not required anymore
- Switch to gonfig
- Add fields to load sensitive values from file
- Update deps
- Docs website with mkdocs
- Move documentation to main repository
- Update deps
- Use kong command-line parser
- Switch to Open Container Specification labels as label-schema.org ones are deprecated
- Update deps
- Only accept duration as timeout value for FTP, SFTP and Webhook notif config in #69
- Update pkg/sftp module
- Add Slack notifier
- Update deps
- Go 1.13.5
- Seconds field optional for schedule
- Multi-platform Docker image
- Move ftpgrab/docker repo here
- Go 1.12.10
- Use GOPROXY
- Stop publishing Docker image on Quay
- Switch to GitHub Actions
- Add instructions to create a Linux service
- Remove
--dockerflag - Allow overriding database path through
FTPGRAB_DBenv var - Allow overriding download output path through
FTPGRAB_DOWNLOAD_OUTPUTenv var
- Use
io.Copyto avoid crash due to insufficient memory
- Fix cron stopped after first trigger
- Log skip status
- Set ServerName field if implicit TLS
- Switch to jlaffaye/ftp module
- Fix race condition
- Performance improvement
- Switch to crazy-max/goftp in #55
- Fix durafmt runtime error
- Improve logging
- Display next execution time
- Use v3 robfig/cron
- Always run on startup
- Go 1.12.4
- Escape all regexp metacharacters on read dir in #49
- Remove unused field
- Go 1.12
- Update deps
- Add webhook notification method
- Remove unnecessary
connections_per_hostfield in #48 - Fix log folder creation
- Blackfriday module fixed through hermes v2.0.2 (matcornic/hermes#51)
- Add SFTP support in #42
- Fix high CPU load on schedule
- Add support for FreeBSD
- BIG rewrite in #36
- Multiplatform : Linux, macOS and Windows on architectures like amd64, 386, ARM and others
- Modern CLI interactions
- Yaml Configuration file
- Detect and merge configuration
- Handle defaults
- Add Goreleaser
- Bolt db to audit files already downloaded
- Native FTP client
- Logging with zerolog
- Send reports through email
- Generate responsive and beautiful email reports through hermes
- Lightweight Docker image (~6MB)
- Docker image moved to a dedicated organization on Docker Hub and Quay.
- Embedded cron using go routines
- Manage base dir
- Set original modtime
- Include/exclude based on regexp
- Ignore files by date in #39
- Handle mutex
- Switch to Travis CI (com)
- Empty folder leeds to spinlock in #33
- nawk and gawk not required anymore in #38
- Detect if file size is currently changing and hold for download in #37
- Fix issue while checking source hash in #35
- Add an exclude filter for files through
DL_EXCLUDE_REGEXin #27
- Do not exit if connection failed
- Fix files download again in #32
- Rebuild PATH
- Add ssmtp on Docker image to send emails
- Use sendmail instead of mail command
- Add Docker image (more info on docker repository)
- Remove init script
- Fix issue while resuming downloads
- Move script to
/usr/bin - Coding style
- Add tests in #30
- Use type instead of which in #29
- Fix error prone and performance issues
- Coding style
- Add default config
- Add Codacy
- Rename the project ftpgrab ! in #28
- Shuffle file/folder listing by @bwibwi13 in #25
- Allow multiple instances in #22
- Add messages for permission issue in #19
- Move some instructions to Wiki in #18
- MIT License
You have to edit the config file ftp-sync.conf if you upgrade from a previous release!
- Add multiple ftp sources paths in #18
- Sed not escaping
&char in #17 - Add
DL_CREATE_BASEDIRoption to create basename of a ftp source path in the destination folder.
You have to edit the config file ftp-sync.conf if you upgrade from a previous release!
- MD5 file not created with text mode in #16
- Implement FTPS support for Curl in #15
- Implement resume downloads support in #14
- Add DEBUG option
- Full Curl implementation when selected for file size and list files
- Bug with ftpsyncGetHumanSize function
- Display download regex
- Add sha1 hash type
- Bug with special chars for curl method
- Bug with bash condition
- Change location of MD5 file
- Bug checking MD5 in #11
- Bug download with sqlite3 in #10
- Add SQLite method to store MD5 hash in #8
- Bug trailing slash in #6
- Bug replacing destination folder
- Adding hide progress option
- Bug with the config file
- Adding curl download method
- Remove progress filter on wget
- Bug with empty folders
- Adding external config file
- Add gawk as required package
- Update README.md with awk problem
- Change perms recursively when downloads are finished
- Misspelling
- Decoding wget problem
- Alternative to kill old and sub process
- Add synology example
- Check process already running
- Use wget instead of curlftpfs
- Adding email var to receive logs
- Remove dualEcho
- Improvement of the error log with exec and tail
- Change MD5 filter
- Filter bug and add grep search for hash
- Initial version