137 Commits
Author SHA1 Message Date
Nicola Murino 0d8506c93d set version to 0.9.2 0.9.2 2019-09-18 22:19:34 +02:00
Nicola Murino df96ea7e9f add a new permission for overwriting existing files
The upload permission is required to allow file overwrite
2019-09-17 08:53:45 +02:00
Nicola Murino 580fae7a8f minor improvements 2019-09-16 18:11:35 +02:00
Nicola Murino 4a1baaee69 windows service: improve doc 2019-09-16 09:22:27 +02:00
Nicola Murino f3f38f5f09 add Windows Service support 2019-09-16 08:52:58 +02:00
Nicola Murino bba78763e1 add a test case and document sha512crypt passwords support 2019-09-15 12:23:27 +02:00
Seunghoon Yeonanddrakkan b5211fd31b Added sha512crypt support 2019-09-15 12:08:28 +02:00
Nicola Murino 360f32a91b fixed some typos 2019-09-14 17:06:21 +02:00
Nicola Murino 018b10808d improve SQL provider availability check adding a timeout 2019-09-14 16:18:31 +02:00
Jo VandeginsteandNicola Murino 29aadbf3e3 log redacted passwords
Closes #48
2019-09-13 21:57:52 +02:00
Nicola Murino 7eb5b01169 add Prometheus support
some basic counters and gauges are now exposed
2019-09-13 18:45:36 +02:00
Nicola Murino fd59f35108 update pkg/sftp to the latest master
Our pull request to handle transfer errors is now merged, so updating
pkg/sftp should fix #36
2019-09-13 08:30:22 +02:00
Nicola Murino e7eb3476b7 dataprovider: remove transaction for quota update
The update is atomic so no transaction is needed.
Addionally a transaction will ask for a new connection to the pool
and this can deadlock if the pool has a max connection limit too low.

Also make configurable the pool size instead of hard code to the cpu number.

Fixes #47
2019-09-13 08:14:07 +02:00
Nicola Murino bf00ca334d mysql data provider: add read and write timeout
This should hopefully fix #47
2019-09-12 16:26:47 +02:00
Nicola Murino 6b33d3d9f1 add version to the default server banner 2019-09-12 09:21:58 +02:00
Nicola Murino 3d13fe15c3 connections: close the ssh channel before the network connection
This way if pkg/sftp is stuck in Serve() method should be unlocked.
2019-09-11 16:29:56 +02:00
Nicola Murino 9794ca7ee0 connection: add a close method
and use it instead of netConn directly
2019-09-11 12:46:21 +02:00
Nicola Murino 784f75f45b use net.Conn instead of ssh.Conn to close connections 2019-09-11 09:41:46 +02:00
Nicola Murino c1effdf701 atomic upload mode: remove temporary file on error
If a transfer error is detected, then the partial temporary file will
be removed and not renamed to requested path
2019-09-10 18:47:21 +02:00
Nicola Murino 7010f513e3 macOS: add launchd sample plist 2019-09-10 08:03:53 +02:00
Nicola Murino e2e122169d docker alpine: improve README
The volume configuration is not required anymore, we have
a default config in /etc/sftpgo and the volume config is
mounted on /srv/sftpgo/config so we always have a default
config in /etc/sftpgo/sftpgo.json.

Anyway to persist server's keys after an image rebuild a
configuration volume is highly recommended
2019-09-09 13:24:48 +02:00
Nicola Murino e79f7010b4 docker alpine: use the latest stable docker tag for both run and build env
so we don't need to update our Dockerfile each time a new alpine or golang
version is released
2019-09-09 12:58:07 +02:00
Nicola Murino f4507aeec2 improve transfer error log and TestSCPErrors 2019-09-09 08:57:11 +02:00
Nicola Murino bd0eb2f0a8 docker alpine README: fix project name 2019-09-07 23:34:59 +02:00
Nicola Murino e09ea00d8b improve transfer error log 2019-09-07 23:27:37 +02:00
Nicola Murino bc5779e26f actions: don't execute actions on errors
detect upload/download errors and don't execute actions if a transfer
error happen.

To detect SFTP errors this patch is needed:

https://github.com/pkg/sftp/pull/307
2019-09-07 23:10:20 +02:00
Nicola Murino 2a7e56ed29 docker: minor fixes 2019-09-07 18:21:03 +02:00
Binouanddrakkan 29f69876fe Docker alpine multiuser (#39)
* SFTPgo with docker alpine image and init systemD

* Permissions entrypoint script + ENTRYPOINT directive

* Drakkan's reviewed fix

Move Dockerfile into docker/sftpgo/

* Add Default Configuration File in image

Add -R to chown default config file in the directory

Move systemD init file for the alpine image
2019-09-07 17:20:44 +02:00
Nicola Murino 4f1c2c094f improve logging
this partially revert #45
2019-09-06 15:19:01 +02:00
Jo Vandeginsteanddrakkan abbb7f272b Refactor the logging system
* created a "Log" function for type "Connection"
* created a "log" function for type "Provider"
* replace logger calls to Log/log where possible

I also renamed PGSSQL to PGSQL, as this seemed to be a typo

Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2019-09-06 13:43:21 +02:00
Nicola Murino a7363a16be add sample Dockerfiles 2019-09-06 13:20:21 +02:00
Nicola Murino a26343a694 improve more logs 2019-09-05 23:42:00 +02:00
Jo Vandeginsteanddrakkan 25260297aa Show info about public key during login
This will show the key fingerprint and the associated comment, or
"password" when password was used, during login.

Eg.:

```
message":"User id: 1, logged in with: \"public_key:SHA256:FV3+wlAKGzYy7+J02786fh8N8c06+jga/mdiSOSPT7g:jo@desktop\",
```

or

```
message":"User id: 1, logged in with: \"password\",
...`

Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2019-09-05 22:58:14 +02:00
Jo Vandeginsteanddrakkan bb589c6fc8 Show user info, remove some extraneous connection ids
Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2019-09-05 22:58:14 +02:00
Jo Vandeginsteanddrakkan 0737c672f5 Add connectionID to as many entries as possible
Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2019-09-05 22:58:14 +02:00
Nicola Murino 53d70b68d8 config: add configDir before additional search paths
This way the configuration will be searched in the following order:

- config dir
- $HOME/.config/sftpgo
- /etc/sftpgo
- current directory
2019-09-05 22:07:59 +02:00
Jo Vandeginsteanddrakkan 795ffc4c5f Add quotes to certain strings
Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2019-09-05 16:14:31 +02:00
Nicola Murino e8db7d8539 improve configuration docs
viper will not use env vars if no configuration file is found

https://github.com/spf13/viper/issues/584

As workaround we could manually bind/set a default for each configuration
option using viper.SetDefault("key") and then generate a default config
using viper.Get("key").
This manual solution is error prone and it will become increasingly
difficult to maintain since the configuration options will grow, so
we avoid it for now.

Let's see if viper will solve this issue

Fixes #35
2019-09-04 09:09:17 +02:00
Nicola Murino c6343ee095 travis: add go 1.13 2019-09-04 08:29:23 +02:00
Nicola Murino 3441b75a58 allow empty log file, use the standard output in this case
Fixes #34
2019-09-03 23:13:33 +02:00
Nicola Murino cc2ccb3dd7 go.sum cleanup 2019-09-03 12:18:19 +02:00
Nicola Murino 49a40f7a0b sftpd: add configuration options for allowed ciphers, MACs and KEX algorithms
add support for login banner too

Fixes #32
2019-09-03 12:08:09 +02:00
Nicola Murino dc5eeb54fd scp: fix quota update after file overwrite
added a test case too
2019-09-02 23:12:41 +02:00
Nicola Murino 4a1b67454e set version to 0.9.1 0.9.1 2019-09-02 09:36:02 +02:00
Nicola Murino 25fb639465 actions: properly release resources once the external command exits 2019-08-30 03:58:54 +02:00
Nicola Murino 838426b3a4 improve docs 2019-08-29 13:52:22 +02:00
Nicola Murino 35b0566c0e squash database migrations 2019-08-28 10:26:15 +02:00
Nicola Murino 0e6113eef6 remove uneeded deps using go mod tidy 2019-08-27 15:59:00 +02:00
Nicola Murino 2785a1c7c7 update modules deps 2019-08-27 10:26:04 +02:00
Nicola Murino d4969cde03 scp: add test case and document remote to remote transfers 2019-08-25 13:51:54 +02:00