Dane Everitt
34c0db9dff
Replace encoding/json with goccy/go-json for cpu and memory usage improvement
...
This new package has significant better resource usage, and we do a _lot_ of JSON parsing in this application, so any amount of improvement becomes significant
2022-01-23 15:17:40 -05:00
Matthew Penner
d8df353ce8
replace deprecated ioutil function calls
2021-11-15 10:24:52 -07:00
Dane Everitt
0cfd72e1d1
Use ED25519 keys for SSH host key authentication purposes
...
closes pterodactyl/panel#3658
2021-10-03 11:31:39 -07:00
Matthew Penner
3c54c1f840
break everything
...
- upgrade dependencies
- run gofmt and goimports to organize code
- fix typos
- other small tweaks
2021-08-02 15:07:00 -06:00
Matthew Penner
f422081695
change minimum go version to 1.16, add multiplatform docker image
2021-07-12 11:06:22 -06:00
Dane Everitt
ddfd6d9cce
Modify backup process to utilize contexts and exponential backoffs
...
If a request to upload a file part to S3 fails for any 5xx reason it will begin using an exponential backoff to keep re-trying the upload until we've reached a minute of trying to access the endpoint.
This should resolve temporary resolution issues with URLs and certain S3 compatiable systems such as B2 that sometimes return a 5xx error and just need a retry to be successful.
Also supports using the server context to ensure backups are terminated when a server is deleted, and removes the http call without a timeout, replacing it with a 2 hour timeout to account for connections as slow as 10Mbps on a huge file upload.
2021-05-02 12:28:36 -07:00
Matthew Penner
d5605abc15
update minimum go version, run go mod tidy
2021-02-25 13:55:05 -07:00
Jakob Schrettenbrunner
e396b88cb5
remote: a few basic tests
2021-01-10 23:47:22 +00:00
Matthew Penner
a4c8b8714b
Bump all dependencies
2020-12-27 11:49:08 -07:00
Matthew Penner
901ab1157d
Rework archiving logic to be more consistent and less impactful on disk IO ( #79 )
...
Co-authored-by: Dane Everitt <dane@daneeveritt.com>
2020-12-25 11:52:57 -08:00
Dane Everitt
59a111de39
Invite our lord and savior emperror back to the table
2020-12-15 21:56:53 -08:00
Dane Everitt
c0a641247b
Different handling of errors on routes; push towards using middleware
2020-12-15 21:53:34 -08:00
Matthew Penner
8e29ffed50
Add configurable disk write speed limit for backups ( #74 )
...
* Add configurable disk write speed limit for backups
2020-12-08 09:13:48 -07:00
Matthew Penner
de51fd1c51
Error handling improvements ( #71 )
...
* Remove `emperror.dev/errors`, remove all `errors#Wrap` and `errors#WithStack` calls
* Improve logging in `server/backup.go`
2020-11-28 16:57:10 -07:00
Dane Everitt
be9d1a3986
Replace error handling package with emperror; add better reporting for errors escaping server root
2020-11-08 13:52:20 -08:00
Dane Everitt
9b7c0fb7f3
Steal tests from other branch that is being discarded, attempt to get at least one of them to pass; WIP
2020-09-30 21:46:32 -07:00
Dane Everitt
8bcb3d7c62
Remove deadlock specific code
2020-09-11 23:03:35 -07:00
Dane Everitt
b2eebcaf6d
Fix deadlocks in event listener system; closes pterodactyl/panel#2298
...
Fixes deadlocks that occurred when events were registered while other events were being unsubscribed and data was being flooded to these listeners. A complete mess, I hate this code, it is going to break again, but jesus I'm so tired.
2020-09-11 23:01:54 -07:00
Dane Everitt
70afbbfc68
Remove last zap references
2020-09-03 20:29:53 -07:00
Dane Everitt
e09cc3d2dd
Automatically write a logrotate file to the disk when wings boots if directory exists; closes pterodactyl/panel#2312
2020-09-03 20:13:51 -07:00
Dane Everitt
1e633ae302
Bring the sftp server code into the package itself
2020-08-31 20:14:04 -07:00
Dane Everitt
a1288565f0
Significant CPU and syscall performance improvements when iterating large directories
2020-08-24 20:45:54 -07:00
Dane Everitt
e87e8848e6
I don't want to know what the hell happened in a minor point release to completely brick this code
2020-08-06 19:29:01 -07:00
Dane Everitt
919bec2f87
Dependency updates
2020-08-06 18:55:29 -07:00
Dane Everitt
0a612a71d9
Clean up logging, ensure logs write to disk
2020-08-03 20:35:48 -07:00
Dane Everitt
f3c8220bd9
Change filewalker implementation to use a pool
2020-07-16 21:51:31 -07:00
Dane Everitt
60ebde4447
Fix deps?
2020-07-12 10:26:20 -07:00
vagrant
c5f4c3cfcb
update github.com/docker/docker
2020-07-04 20:57:48 +00:00
Dane Everitt
82912595b7
Update SFTP logic for authentication to avoid brute forces; replicates logic from #9
...
Co-Authored-By: Stepan Fedotov <trixterthetux@users.noreply.github.com>
2020-07-02 21:03:11 -07:00
Dane Everitt
e5b844d2c4
Support automatically generating SSL certificates
2020-06-30 21:34:47 -07:00
Dane Everitt
f8bffd8391
Start the process of migrating from zap to a cleaner CLI output for logs
2020-05-28 22:07:53 -07:00
Dane Everitt
bd063682dc
Better match handling I think?
2020-05-17 18:22:06 -07:00
Dane Everitt
5e60cb2eb0
Update to latest version of sftp-server; closes pterodactyl/panel#2014
2020-05-09 17:47:12 -07:00
Dane Everitt
a6645aa741
Bump to 1.13 in mod to support underscores in numeric literals
2020-05-08 20:58:34 -07:00
Dane Everitt
507d0100cf
Hilariously rough code to get a backup pushed into S3
2020-04-26 17:20:26 -07:00
Dane Everitt
df6d98bbda
Add support for ignoring directories/files; fix compression of archives
2020-04-18 23:26:23 -07:00
Dane Everitt
71d38ff62e
Cleanup logic for getting a directory size; support cancelation during goroutine
2020-04-18 15:31:34 -07:00
Dane Everitt
4279fa510e
Cleanup data storage locations for daemon
2020-04-17 14:27:06 -07:00
Michael Parker
12c97c41b0
fixes distro matching
...
Adds osrelease to get distro name
2020-04-13 13:12:49 -04:00
Matthew Penner
28c8f3f400
Add the ability to fetch all servers, fix cpu usage leak again..
2020-04-10 15:39:07 -06:00
vagrant
1c5f30f5be
add configure command
2020-04-10 15:25:06 +00:00
vagrant
59b11eb80c
use cobra for cli
...
reorganize a bit to be able to use it
2020-04-10 13:12:18 +00:00
Dane Everitt
cf2ef1a173
Port most of the HTTP code over to gin
2020-04-05 18:00:33 -07:00
Matthew Penner
3dba11ac6f
Add ability to create archives of servers, add GET and POST /api/servers/:server/archive routes to get and request an archive of a server
2020-04-03 23:17:26 -06:00
Dane Everitt
beec5723e6
Update SFTP server dependency
2019-12-24 17:11:54 -08:00
Dane Everitt
189289ad5f
Correctly handle updating server data
2019-12-21 21:02:02 -08:00
Dane Everitt
89806427f9
Fix SFTP server integration
2019-12-08 10:29:10 -08:00
Dane Everitt
865c1b3bad
Begin implementing SFTP server code
2019-12-07 15:53:07 -08:00
Dane Everitt
52ca0667ca
Add base support for internalizing the SFTP server
2019-12-07 14:01:40 -08:00
Dane Everitt
1be21b7078
[#3896bk] Support parsing XML files
2019-12-01 15:04:03 -08:00