Commit graph

604 commits

Author SHA1 Message Date
Mickael Kerjean
339e9486e5 feature (plg_image_thumbnail): improvement over thumbnailing 2022-12-05 00:42:02 +11:00
Mickael Kerjean
a78e817657 feature (thumbnailer): add plugin type for thumbnail generation 2022-12-02 07:09:11 +11:00
Mickael Kerjean
1bd6aebe45 feature (ebook): support for epub reader 2022-12-02 02:56:08 +11:00
Mickael Kerjean
f5df1445d2 feature (plg_backend_ftp): handle various connection strategy 2022-12-01 01:32:55 +11:00
Mickael Kerjean
3ca1c1ec9a improve (plg_video_transcode): ffmpeg improvements 2022-11-29 21:50:30 +11:00
Mickael Kerjean
849b00ba36 clean (plg_video_transcode): more readable ffmpeg command
The idea is to play with the params in ffmpeg until we find the
perfect setup for HLS and have everything version control by git
2022-11-29 20:48:06 +11:00
Mickael Kerjean
ec575d68b1 fix (#522): issue handling certain kind of mkv
whenever too many audio are available, videojs wouldn't be able to
load the hls stream
2022-11-29 08:25:58 +11:00
Mickael Kerjean
8d34848c8a fix (timeout): bigger timeout on FTP backend 2022-11-28 17:13:47 +11:00
Mickael Kerjean
5c9c85ff2a fix (middleware): disable auth middleware 2022-11-26 01:59:28 +11:00
Mickael Kerjean
32fe6a8674 cleanup (debug): remove debug 2022-11-26 00:38:30 +11:00
Mickael Kerjean
8eb9ab0719 fix (404): 404 page issue in firefox 2022-11-25 16:45:25 +11:00
Mickael Kerjean
1d4773302e improve (static): server static file from fs in dev mode 2022-11-25 16:44:51 +11:00
Mickael Kerjean
ea88b6ee14 fix (origin): better UX for hostname verification 2022-11-25 16:44:10 +11:00
Mickael Kerjean
e7bb5b052a feature (s3): s3 secret key as password field 2022-11-25 16:39:10 +11:00
Mickael Kerjean
b6762ddd4c feature (input): password fields with view button 2022-11-25 16:38:00 +11:00
Mickael Kerjean
ac7bf9f173 feature (dev): server static file from fs in dev mode 2022-11-23 15:19:18 +11:00
Mickael Kerjean
7d5719445c feature (standalone): reasonable default for standalone usage
we can now create fat binary build, we've optimise a few corner case
to make it nice to do so
2022-11-23 01:09:19 +11:00
Mickael Kerjean
1eea60cfb0 feature (embed): embed frontend assets from the binary 2022-11-22 23:03:33 +11:00
Mickael Kerjean
cb7f1693bd feature (config): encrypt sensitive fields in config.json 2022-11-22 08:12:36 +11:00
Mickael Kerjean
6eb26e9a70 refactoring (plg_authenticate): setup placeholders instead of values 2022-11-21 08:10:05 +11:00
Mickael Kerjean
df5371c7ee maintain (plugin): interface name for authorisation plugin 2022-11-14 19:54:22 +11:00
Mickael Kerjean
e585be579a feature (htpasswd): enlarge scope of htpasswd auth plugin 2022-11-12 23:26:39 +11:00
Mickael Kerjean
81af97acd2 improve (css): form design for page 2022-11-12 22:46:15 +11:00
Mickael Kerjean
10daf893cd improve (plg_authenticate_htpasswd): support additional algorithm 2022-11-12 00:50:45 +11:00
Mickael Kerjean
3b5bc80565 improve (UX): eye candy 2022-11-10 02:39:29 +11:00
Mickael Kerjean
9a98da7978 feature (config): toggle for config file encryption
optin config encryption #482
2022-11-10 00:19:45 +11:00
Mickael Kerjean
c828b22f7a improve (middleware): content for description fields 2022-11-10 00:16:08 +11:00
Mickael Kerjean
7b4e3eba79 feature (admin): simplify admin backend page 2022-11-09 08:09:01 +11:00
Mickael Kerjean
e0f2f29307 feature (htpasswd): new authentication middleware 2022-11-09 14:00:48 +11:00
Mickael Kerjean
92219db637 feature (middleware): passthrough middleware 2022-11-09 13:59:35 +11:00
Mickael Kerjean
98ef1d64e7 fix (fs): recursive removal in local and tmp backend 2022-11-03 00:12:09 +11:00
Mickael Kerjean
34d8f0e44f improve (/about): add links to installed plugins 2022-10-12 00:10:54 +11:00
Mickael Kerjean
f3eaf35d84 fix (backendID): hide home when using shared link 2022-10-11 08:08:38 +11:00
Mickael Kerjean
ce935525db fix (config): concurrent issue
fatal error: sync: unlock of unlocked mutex

goroutine 6 [running]:
runtime.throw(0x1420562, 0x1e)
	/usr/local/go/src/runtime/panic.go:1117 +0x72 fp=0xc0000b5ec8 sp=0xc0000b5e98 pc=0x439e92
sync.throw(0x1420562, 0x1e)
	/usr/local/go/src/runtime/panic.go:1103 +0x35 fp=0xc0000b5ee8 sp=0xc0000b5ec8 pc=0x46e395
sync.(*Mutex).unlockSlow(0x1f97138, 0xffffffff)
	/usr/local/go/src/sync/mutex.go:196 +0xd8 fp=0xc0000b5f10 sp=0xc0000b5ee8 pc=0x47d458
sync.(*Mutex).Unlock(...)
	/usr/local/go/src/sync/mutex.go:190
github.com/mickael-kerjean/filestash/server/common.(*Configuration).Get(0x1f97120, 0x140a506, 0x14, 0x0)
	/home/mickael/Documents/projects/filestash/server/common/config.go:438 +0x113 fp=0xc0000b5f90 sp=0xc0000b5f10 pc=0x7ba313
github.com/mickael-kerjean/filestash/server/common.init.0.func1(0x0)
	/home/mickael/Documents/projects/filestash/server/common/api.go:16 +0x46 fp=0xc0000b5fc0 sp=0xc0000b5f90 pc=0x7c7906
github.com/mickael-kerjean/filestash/server/common.init.0.func3()
	/home/mickael/Documents/projects/filestash/server/common/api.go:40 +0x29 fp=0xc0000b5fe0 sp=0xc0000b5fc0 pc=0x7c7c49
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:1371 +0x1 fp=0xc0000b5fe8 sp=0xc0000b5fe0 pc=0x4733e1
created by github.com/mickael-kerjean/filestash/server/common.init.0
	/home/mickael/Documents/projects/filestash/server/common/api.go:39 +0x5a

goroutine 1 [runnable, locked to thread]:
os.(*File).Read(0xc000186000, 0xc000280400, 0x100, 0x100, 0x401, 0xc000280000, 0x400)
	/usr/local/go/src/os/file.go:113 +0x265
io.ReadAll(0x1677e40, 0xc000186000, 0x0, 0x1ff, 0xc000186000, 0x0, 0x0)
	/usr/local/go/src/io/io.go:633 +0xdf
io/ioutil.ReadAll(...)
	/usr/local/go/src/io/ioutil/ioutil.go:27
github.com/mickael-kerjean/filestash/server/common.LoadConfig(0x0, 0x0, 0x0, 0x1fc66e0, 0x0)
	/home/mickael/Documents/projects/filestash/server/common/config_state.go:32 +0x85
github.com/mickael-kerjean/filestash/server/common.(*Configuration).Load(0x1f97120)
	/home/mickael/Documents/projects/filestash/server/common/config.go:214 +0x34
github.com/mickael-kerjean/filestash/server/common.init.1()
	/home/mickael/Documents/projects/filestash/server/common/config.go:53 +0x85
2022-10-10 08:22:45 +11:00
Mickael Kerjean
9a6e24c296 feature (tagging): prepare the ground for a new tagging feature 2022-10-06 23:33:58 +11:00
Mickael Kerjean
9f083ea94c improve (logger): logger interface for tests or plugin swap 2022-10-06 08:02:25 +11:00
Mickael Kerjean
3d3b59524a improve (template): contains function in template 2022-10-05 08:35:50 +11:00
Mickael Kerjean
8ad705b70c feature (tmpl): enable contains function in tmpl filter 2022-10-05 07:54:03 +11:00
Mickael Kerjean
70884300a3 fix (plg_image_thumbnail): broken build 2022-10-04 17:49:04 +11:00
Mickael Kerjean
9b5af40f32 maintain (plg_security_scanner): new endpoint ideas
with new ideas coming from the hn thread https://news.ycombinator.com/item?id=33054379
2022-09-04 07:39:20 +10:00
Mickael Kerjean
42b2435c16 fix (plg_image_thumbnail): build issue 2022-10-04 00:26:40 +11:00
Mickael Kerjean
46b67d6711 feature (thumbnail): complete revamp of thumbnail generation 2022-10-03 23:40:46 +11:00
Mickael Kerjean
9a1045cb02 feature (plg_image_thumbnail): clean before release 2022-10-03 22:28:58 +11:00
Mickael Kerjean
01b418b608 fix (contentType): disable js in file cat API 2022-10-03 00:06:41 +11:00
Mickael Kerjean
918965ddbe feature (plg_image_thumbnail): new thumbnail generation
This plugin will replace plg_image_light once it has the same
features. It is much easier to install, fixing #507, #368 and every
other ticket that mention issues to compile Filestash
2022-10-03 00:01:24 +11:00
Mickael Kerjean
7a76f7dcda maintain (logging): improve some log message 2022-09-28 22:52:33 +10:00
Mickael Kerjean
e8968d824a fix (window): cross compile for windows 2022-09-28 21:16:10 +10:00
Mickael Kerjean
706adc3475 fix (config): remove useless / buggy option 2022-09-28 21:03:21 +10:00
Mickael Kerjean
21a72b2048 maintain (generator): simplify build command
Before this commit our build had this option:
-ldflags "-X github.com/mickael-kerjean/filestash/server/common.BUILD_DATE=`date -u +%Y%m%d` -X github.com/mickael-kerjean/filestash/server/common.BUILD_REF=`git rev-parse HEAD`"

Doing this via a generator is much easier for people getting started
with Filestash
2022-09-28 18:11:58 +10:00
Mickael Kerjean
3013141999 clean (sqlite): sqlite without cgo
We want to make it easier to compile the project for newcomers
2022-09-28 13:58:25 +10:00
Mickael Kerjean
b9a177aa26 maintain (404): change 404 page 2022-09-21 17:01:12 +10:00
Mickael Kerjean
9d596704e7 feature (api): public api 2022-09-20 17:43:26 +10:00
Mickael Kerjean
548b057d6a fix (selfsigned): self signed certificate issues 2022-09-15 22:38:54 +10:00
Mickael Kerjean
1844c6d33e maintain (debug): add debug statements 2022-09-15 19:32:17 +10:00
Mickael Kerjean
0748e56092 fix (recover): recover from possible panic 2022-09-15 18:53:36 +10:00
Mickael Kerjean
7a9f94ce6d fix (middleware): "cannot parse time" issue causing infinite loop 2022-09-15 07:32:04 +10:00
Mickael Kerjean
e2874f2a9b improve (404): 404 errors 2022-09-14 23:55:11 +10:00
Mickael Kerjean
d0c8f75b01 fix (rate limit): update default value for rate limit 2022-09-13 17:34:42 +10:00
Mickael Kerjean
d0e2c4a227 maintain (error): add internal error 2022-09-13 17:28:53 +10:00
Mickael Kerjean
87443235a2 fix (backend): clean up caching 2022-09-13 15:24:21 +10:00
Mickael Kerjean
720073a181 Merge branch 'master' of ssh://github.com/mickael-kerjean/filestash 2022-09-13 14:50:25 +10:00
thielepaul
0d55704031
fix (sftp_backend): wait until all requests are finished before closing (#506) 2022-09-13 14:49:15 +10:00
Mickael Kerjean
865442ea59 fix (vet): go vet - #505 2022-09-13 14:12:13 +10:00
Mickael Kerjean
76bf595e22 feature (token): token generation for API 2022-09-13 13:25:17 +10:00
Mickael Kerjean
18279dcb4e fix (middleware): broken build 2022-09-13 13:21:21 +10:00
Mickael Kerjean
3f933e08db feature (preflight): preflight to /api/files 2022-09-13 13:12:26 +10:00
Mickael Kerjean
ccb156678b fix (cache): RLock instead of lock 2022-09-13 13:01:03 +10:00
Mickael Kerjean
66c6788b94 feature (doc): embed documentation 2022-09-13 12:53:02 +10:00
Mickael Kerjean
fa84e37df2 refactor (api): move rm/mv/touch/mkdir to http post 2022-09-13 12:51:27 +10:00
Mickael Kerjean
0acf94ce0c fix (middleware): bodyparser must not return an error if no body 2022-09-12 01:05:44 +10:00
Mickael Kerjean
bd9deb858d feature (crypto): nonce generator as a counter 2022-09-09 23:22:47 +10:00
Mickael Kerjean
7e5ec42f6c maintain (config): openup 2 methods for Config for plugins
This is for plugins to do more fine grained stuff with the global
Config object
2022-09-09 15:12:14 +10:00
Mickael Kerjean
d53cbefc54 fix (plg_image_ascii): reasonable content type 2022-09-08 15:19:10 +10:00
Mickael Kerjean
bb7ea98f02 fix (sync): concurrent map read and map write 2022-09-08 14:55:26 +10:00
Mickael Kerjean
bfe809d5ab cleanup (plugin): disable plugin that don't seem to be used 2022-09-07 00:51:32 +10:00
Mickael Kerjean
b1c1f9e0f2 feature (api): api configuration 2022-09-07 00:50:23 +10:00
Mickael Kerjean
3a63eb0777 feature (plg_image_ascii): image ascii transform
The idea here is to be able to use curl and have Filestash to render
image in a terminal friendly fashion
2022-09-06 22:27:12 +10:00
Mickael Kerjean
549d6805f0 feature (api): prepare api for public use 2022-09-05 11:59:28 +10:00
Mickael Kerjean
c7e40e42db feature (429): rate limit authentication endpoints 2022-09-04 22:26:03 +10:00
Mickael Kerjean
952f45097e feature (rest): setup for rest api 2022-09-04 18:39:34 +10:00
Mickael Kerjean
dd6f0ca407 feature (cancellation): logic to cancel request in client and server 2022-09-02 17:26:32 +10:00
Mickael Kerjean
0bfab6eff2 feature (report): activity report plugin 2022-09-02 00:58:43 +10:00
Mickael Kerjean
bb9fb89d44 fix (concurrency): prevent concurrent map writes
when booting up, we have a lot of Set in the Config alongside a lot of
Get, Let's block all the concurrent Set
2022-09-01 23:28:29 +10:00
Mickael Kerjean
231e5ba18d feature (auditing): pluggable auditing in admin console 2022-09-01 07:37:59 +10:00
Mickael Kerjean
75696a8088 fix (plg_backend_tmp): incorrect permission when creating folder 2022-08-31 00:40:23 +10:00
Mickael Kerjean
a82177e719 maintain (ctx): pass app context as pointer 2022-08-30 17:27:23 +10:00
Mickael Kerjean
b62a9dd423 fix (os): wrapper for file related operation via the os package 2022-08-30 01:46:06 +10:00
Mickael Kerjean
8bbd4a2f57 fix (symlink): evaluate symlinks before opening file 2022-08-29 20:10:14 +10:00
Mickael Kerjean
28c2e5070d fix (#500): ldap issue as reported in #500 2022-08-28 23:41:20 +10:00
Mickael Kerjean
bb91f589e1 fix (open): handle non existing local file 2022-08-28 22:18:38 +10:00
Mickael Kerjean
4f0741111b feature (auth): add machine_id in template binding 2022-08-28 22:04:50 +10:00
Mickael Kerjean
812446ac23 fix (symlink): wrap os.OpenFile to prevent symlinks expansion
os.Open and os.OpenFile make it possible to open a wide range of
files as seen in https://cs.opensource.google/go/go/+/refs/tags/go1.19:src/os/types.go;l=35

We only want to handle regular files and folders, no socket, device,
symlink, ....
2022-08-28 21:43:43 +10:00
Mickael Kerjean
633f17a63b feature (plg_authenticate_passthrough): populate session data 2022-08-26 21:03:26 +10:00
Mickael Kerjean
4f4fcfc16e fix (ftp): prevent connection close when uploading / downloading 2022-08-26 15:53:49 +10:00
Mickael Kerjean
f7484b7aab fix (plg_backend_tmp): sanity check for user input 2022-08-23 18:07:44 +10:00
Mickael Kerjean
8f7ac67db7 fix (plg_backend_tmp): prevent local filesystem access 2022-08-23 17:33:52 +10:00
Mickael Kerjean
fea8c024c9 feature (middleware): add environment variable in template bind
This enable binding environment variable for things like hostname that
would look like '{{ .ENV_NAME }}.example.com'
2022-08-19 23:10:06 +10:00
Mickael Kerjean
77767af252 maintain (plg_backend_nop): additional debug log 2022-08-19 12:13:52 +10:00
Mickael Kerjean
ee6256e075 fix (plg_plugin_webdav): IIS compat 2022-08-09 19:08:14 +10:00
Mickael Kerjean
a75a33d49b fix (share): access shared link multiple times issue
When trying to access a shared link protected with a password many
times over, user would see an ErrNotValid (case 2 from ShareVerifyProof in
ctrl/share.go). With this commit, we are making sure the proof cookie
doesn't grow more when trying to access the same link over and over again
2022-07-20 00:25:39 +10:00