Nicola Murino
afd312f26a
add a basic web interface
...
The builtin web interface allows to manage users and connections
2019-10-07 18:19:01 +02:00
Nicola Murino
00dd5db226
add support for users' default base dir
2019-09-28 22:48:52 +02:00
Nicola Murino
0d8506c93d
set version to 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
Nicola Murino
018b10808d
improve SQL provider availability check adding a timeout
2019-09-14 16:18:31 +02:00
Jo Vandeginste
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
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
6b33d3d9f1
add version to the default server banner
2019-09-12 09:21:58 +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
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
3441b75a58
allow empty log file, use the standard output in this case
...
Fixes #34
2019-09-03 23:13:33 +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
2019-09-02 09:36:02 +02:00
Nicola Murino
838426b3a4
improve docs
2019-08-29 13:52:22 +02:00
Nicola Murino
0e6113eef6
remove uneeded deps using go mod tidy
2019-08-27 15:59:00 +02:00
Nicola Murino
d4969cde03
scp: add test case and document remote to remote transfers
2019-08-25 13:51:54 +02:00
Nicola Murino
e50c521c33
add SCP support
...
SCP is an experimental feature, we have our own SCP implementation
since we can't rely on scp system command to proper handle permissions,
quota and user's home dir restrictions. The SCP protocol is quite simple
but there is no official docs about it, so we need more testing and
feedbacks before enabling it by default.
We may not handle some borderline cases or have sneaky bugs.
This commit contains some breaking changes to the REST API.
SFTPGo API should be stable now and I hope no more breaking changes
before the first stable release.
2019-08-24 14:41:15 +02:00
Nicola Murino
2c05791624
document how to store passwords using bcrypt or pbkdf2 using REST API
2019-08-18 12:52:29 +02:00
Nicola Murino
133f2e8601
add support for checking pbkdf2 passwords
2019-08-17 15:20:49 +02:00
Nicola Murino
9d342cb125
dataprovider: remove clear text password checking
...
passwords must be stored using argon2id or bcrypt
2019-08-17 08:44:43 +02:00
Nicola Murino
0bcc97aef6
add Awesome Go badge
...
SFTPGo is an awesome project now!
2019-08-12 23:38:43 +02:00
Nicola Murino
96a39a36bb
dataprovider: add support for bbolt key/value store
...
This way there is an alternative for embedded/small systems if CGO
is disabled at build time and so SQLite support cannot be compiled
2019-08-12 18:31:31 +02:00
Nicola Murino
cb87fe811a
dataprovider move db handle to provider struct
...
This is needed to support non SQL providers
2019-08-11 14:53:37 +02:00
Nicola Murino
51aacae3c5
version: only git commit and build date must be modifiable
...
Improved some test cases too
2019-08-08 21:42:07 +02:00
Nicola Murino
90607d4f86
sftpd stats: add file path for active upload/download
2019-08-08 19:33:16 +02:00
Nicola Murino
4d3c8fb6c4
add get version example
2019-08-08 10:13:32 +02:00
Nicola Murino
4f4489d3f1
add version info
2019-08-08 10:01:33 +02:00
Nicola Murino
5ad222fc53
python cli: add a flag to ignore verifying the SSL certificate
2019-08-07 23:06:26 +02:00
Nicola Murino
8f421b7d0f
switch to viper for configuration and use cobra for cli
2019-08-07 22:46:52 +02:00
Nicola Murino
80b9c40489
add support for atomic upload
...
Atomic uploads are now configurable. The default upload mode remains
non atomic
2019-08-04 09:37:58 +02:00
Nicola Murino
b8dafecdd9
transfer: initialize lastActivity
...
This avoid a random value for transfer of empty file where no reads or writes happen
2019-08-02 15:49:51 +02:00
Nicola Murino
ba3f9d891a
allow to set default arguments values from env vars
2019-08-02 09:47:14 +02:00
Nicola Murino
73c61cda31
arguments: document --arg form
...
go flag library supports one or two minus signs, they are equivalent.
Other Go command line parsers such as kingpin only support the -- variant
2019-08-02 00:26:20 +02:00
Nicola Murino
266216e372
Add sample cli client for REST API
...
It isn't written in Go to show interoperability with other programming languages
2019-08-02 00:00:48 +02:00
Nicola Murino
8d4964c16d
convert public key from newline delimited string to a real array
...
Added a compatibility layer that will convert newline delimited keys to array
when the user is fetched from the database.
This code will be removed in future versions please update your public keys,
you only need to resave the users using the REST API.
2019-08-01 22:42:46 +02:00
Nicola Murino
788e068e13
Improve documentation
2019-08-01 15:39:30 +02:00
Jo Vandeginste
bd7b6a785e
Support multiple private (host) keys
...
With this patch, one can configure one or more private (host) keys in
the configuration file.
I made it a nested struct, so we can add more options later. Eg. host
certificates might be a useful addition if I can figure out how this is
done in golang's crypto/ssh...
Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2019-08-01 14:57:15 +02:00
Nicola Murino
1566e43cd7
set track_quota to 2 as default
2019-08-01 09:24:35 +02:00
Nicola Murino
a7a3d533e7
Add documentation and tests for multiple public keys support
2019-07-31 17:06:12 +02:00
Jo Vandeginste
99e89f59c9
Add missing newline, add code highlighting hint
2019-07-31 14:49:21 +02:00
Nicola Murino
2a8ab620f3
improve logger
...
log file size, rotation policy and compression are now configurable
2019-07-31 14:06:55 +02:00
Nicola Murino
8058178ea0
Improve documentation
2019-07-30 20:51:29 +02:00