Dane Everitt
b779c98717
Fix files unarchiving to the root; closes pterodactyl/panel#2333
2020-09-12 19:25:29 -07:00
Dane Everitt
4ac19bd29d
Refactor confusing & fragile event bus logic to use callbacks and not channels; ref pterodactyl/panel#2298
2020-09-12 09:26:17 -07:00
Dane Everitt
8407ea21da
Fix state retrevial race condition
2020-09-12 09:12:30 -07:00
Dane Everitt
5a62f83ec8
Don't run pre-boot actions if the server is already running
2020-09-11 23:11:57 -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
57221bdd30
Make disk checking timeout configurable
2020-09-11 20:24:23 -07:00
Dane Everitt
c415abf971
Safety logic check, don't try to stop a stopped server when suspending; closes #2318
...
Couldn't actually reproduce this, but a good sanity check I guess.
2020-09-10 20:16:16 -07:00
Dane Everitt
0cd8dc2b5f
avoid deadlocks while processing tons of data over server event listeners; closes pterodactyl/panel#2298
2020-09-10 20:05:01 -07:00
Dane Everitt
001bbfad1b
avoid panic from environment; ref pterodactyl/panel#2307
2020-09-07 15:37:35 -07:00
Dane Everitt
5bead443ad
Handle port bindings correctly when using 127.0.0.1
...
closes pterodactyl/panel#2307
2020-09-07 15:33:47 -07:00
Dane Everitt
d743d8cfeb
Merge pull request #54 from cyberkitsune/fast-unlimited-disk
...
Speed up server power on for servers with unlimited size
2020-09-07 13:05:37 -07:00
Matthew Penner
a81146d730
Potential fix for console becoming unresponsive ( #55 )
...
* Potentially fix console logs not being pulled after a server has been running for a while
* Add container_id to resource polling debug logs
2020-09-07 13:04:56 -07:00
Matthew Penner
7ba32aca84
Fix some typos and run gofmt on all .go files
2020-09-05 13:08:40 -06:00
Dane Everitt
490f874128
Prevent bungee output breaking my CLI output...
...
Theres enough magic ANSI codes in here to kill a horse... this also causes logging ouput to get truncated
2020-09-03 21:18:55 -07:00
CyberKitsune
1d22e84f21
Allow a stale value on startup for disk size if the disk is unlimited.
2020-08-31 22:10:57 -07:00
Dane Everitt
481df3d543
Only create the directory structure if it is a file being renamed; closes pterodactyl/panel#2292
2020-08-31 21:02:06 -07:00
Dane Everitt
cbf914e7a1
Additional code cleanup for #53
2020-08-31 20:46:28 -07:00
CyberKitsune
d742acf308
Minimize blocking in Filesystem.getCachedDiskUsage ( #53 )
2020-08-31 20:27:41 -07:00
Dane Everitt
5f1d9ff151
Don't throw a 500 error if the backup is missing; closes pterodactyl/panel#2280
2020-08-31 20:24:07 -07:00
Dane Everitt
c69a0bb107
Don't run install scripts if disabled; closes pterodactyl/panel#2265
2020-08-30 09:41:14 -07:00
CyberKitsune
f1343c1d77
Publish console message on initial startup for disk sizing
2020-08-29 19:45:47 -07:00
Dane Everitt
7d8710824c
Fix startup variables not being properly updated on server reboot; closes pterodactyl/panel#2255
2020-08-27 21:08:33 -07:00
Dane Everitt
711ee2258c
Minimize code duplication for environment variables; ref pterodactyl/panel#2255
2020-08-27 20:28:29 -07:00
Dane Everitt
0dde54fc8f
Don't blow up if a file gets removed during the backup
2020-08-27 19:57:35 -07:00
Dane Everitt
0e474c8b24
Better error captures
2020-08-27 19:57:22 -07:00
Dane Everitt
68ab705aac
Don't push directories into the backup unless associated with a file
2020-08-27 19:55:43 -07:00
Dane Everitt
a7ca6b2e34
Correctly report backup API errors; ref pterodactyl/panel#2271
2020-08-27 19:35:57 -07:00
Dane Everitt
5f1ceeff90
Add ability for users to disable checking file permissions when starting a server; closes pterodactly/panel#2272
2020-08-27 19:02:22 -07:00
Dane Everitt
c7e732d084
2.5 minutes for lookups, not every minute
2020-08-24 20:52:05 -07:00
Dane Everitt
9eb795b1bb
Re-add disk space function
2020-08-24 20:46:19 -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
f82c91afbe
Merge branch 'develop' of https://github.com/pterodactyl/wings into develop
2020-08-24 19:45:25 -07:00
Dane Everitt
b35ac76720
Optimizations to the filepath walker function to reduce CPU and I/O issues
2020-08-24 19:45:24 -07:00
Matthew Penner
9f27119044
Fix log directory not being created, again..
2020-08-24 20:22:19 -06:00
Dane Everitt
7aaa51a14f
Less random temp dir locations; cleanup when done
2020-08-23 20:45:07 -07:00
Dane Everitt
3489088703
Update output from socket to use checksum
2020-08-23 18:06:17 -07:00
Dane Everitt
7287b8e198
Pass the checksum type along in the request
2020-08-23 17:52:46 -07:00
Dane Everitt
d1485d7c5f
Limit the number of threads to avoid pinning a host machine
2020-08-23 17:46:35 -07:00
Matthew Penner
08bcb31b9e
Change compression level to BestSpeed and use sha1 instead of sha256
2020-08-23 18:34:48 -06:00
Dane Everitt
09826fc7ad
Performance improvements by using a smaller buffer size
2020-08-23 17:18:40 -07:00
Dane Everitt
999947e387
Adjust sizes on the fly when files are written/decompressed
2020-08-23 15:58:56 -07:00
Dane Everitt
3b33e803e3
Handle deleting a directory
2020-08-23 14:34:42 -07:00
Dane Everitt
37fbae0fcd
closes #2241
2020-08-23 14:18:59 -07:00
Dane Everitt
ebc0e82772
Handle errors during the before install process a little better
2020-08-23 14:07:03 -07:00
Dane Everitt
1e39487240
poc: when deleting a file automatically adjust the current disk space being tracked in the cache
2020-08-22 22:56:44 -07:00
Dane Everitt
c73a53dbe3
Replace cache with single int64
2020-08-22 22:50:49 -07:00
Dane Everitt
138080d5e2
return success state of the backup from wings
2020-08-20 21:28:06 -07:00
Dane Everitt
43d8bd656a
Don't actually try to start a server that is already running
2020-08-19 19:20:46 -07:00
Dane Everitt
9d2321f357
Correctly set the server state on install; closes pterodactyl/panel#2236
2020-08-19 19:08:15 -07:00
Dane Everitt
4d3a860604
Use environment namespace for power state, don't duplicate them across server
2020-08-19 18:58:48 -07:00
Dane Everitt
b9fb922e91
Fix the race condition where the race is actually happening
2020-08-18 21:46:17 -07:00
Dane Everitt
0fc1f300f8
Use helper func
2020-08-18 21:43:39 -07:00
Dane Everitt
60212bb08e
Fix race condition when booting wings
2020-08-18 21:42:57 -07:00
Dane Everitt
5b241fdf36
Correctly send stats & proc information back for servers
2020-08-18 21:38:42 -07:00
Dane Everitt
956e87eb93
Handle restarting correctly, ensure power state propagates correctly
2020-08-18 20:43:28 -07:00
Dane Everitt
4a2a0b25bb
Run chown when starting a server
2020-08-18 20:27:42 -07:00
Dane Everitt
a24a5466e5
Remove restart from environment, handle at a server level; also fix pre-boot logic
2020-08-13 21:36:23 -07:00
Dane Everitt
63c09adaa1
Better handling of stop & restart without releasing process locks too soon
2020-08-13 21:10:33 -07:00
Dane Everitt
5fcec86e98
Allow sending a termination signal even if another power action is being processed
2020-08-13 20:37:35 -07:00
Dane Everitt
cf1c671e68
Support changing the /tmp volume size in the config
2020-08-12 20:38:02 -07:00
Dane Everitt
cc52954a2a
Refactor environment handling logic to separate a server from the environment handler itself
...
This change makes the environment handling logic execute independent of the server itself and should make it much easier for people to contribute changes and additional environment handlers down the road without polluting the server object even more.
There is still a lot of work to do on this front to make things easier to work with, and there are some questionable design decisions at play I'm sure.
Welcome to additional modifications and cleanup to make this code easier to reason about and work with.
2020-08-10 21:38:42 -07:00
Dane Everitt
919bec2f87
Dependency updates
2020-08-06 18:55:29 -07:00
Matthew Penner
ff7f92895c
Fix race condition on startup
2020-08-05 21:13:01 -06:00
Dane Everitt
642e6e6a96
Different implementation of multi-check for done
...
Co-Authored-By: Matthew Penner <me@matthewp.io>
2020-08-04 21:29:43 -07:00
Matthew Penner
9bd10f1043
Changes to ProcessConfiguration
2020-08-04 21:41:09 -06:00
Matthew Penner
eb975e0cbd
Add option to strip ansi colors and split the done line in egg startup configuration
2020-08-04 17:39:54 -06:00
Matthew Penner
234fbfa8ec
Fix servers getting marked as Stopping when they should be Offline
2020-08-04 17:19:13 -06:00
Dane Everitt
a9c81f37b2
Code cleanup for server mounts; mount more timezone data; closes pterodactyl/panel#2073
2020-08-01 20:24:43 -07:00
Dane Everitt
834bcf251e
Avoid race conditions due to stream not being completely detached correctly
2020-08-01 15:34:14 -07:00
Dane Everitt
78c5fd219a
Remove use of semaphore while restarting; covered by changed power actions handling
2020-08-01 15:22:39 -07:00
Dane Everitt
177aa8e436
Refactor power handling logic to be more robust and able to handle spam clicking and duplicate power actions
2020-08-01 15:20:39 -07:00
Dane Everitt
ecb2cb05ce
Rewrite the file/dir chowing to be less intense on the system and use walker function
2020-07-31 22:06:00 -07:00
Dane Everitt
03ef52c0db
More use of workerpools for loading servers from the API
2020-07-31 21:40:43 -07:00
Dane Everitt
f889a193bf
Use NumCPU and not GOMAXPROCS
2020-07-31 21:31:53 -07:00
Dane Everitt
5366d0f652
Use a workerpool for configuration file updates
...
Co-Authored-By: Jakob <schrej@users.noreply.github.com>
2020-07-31 21:25:57 -07:00
Dane Everitt
38efb68e8a
Merge branch 'develop' of https://github.com/pterodactyl/wings into develop
2020-07-31 21:02:27 -07:00
Dane Everitt
cf33a2464a
Code cleanup for event listening and publishing
...
Co-Authored-By: Jakob <schrej@users.noreply.github.com>
2020-07-31 21:02:25 -07:00
Dane Everitt
cecc72110c
Merge pull request #46 from pterodactyl/feature/docker-repo-auth
...
Add Docker registry authentication
2020-07-31 20:27:35 -07:00
Dane Everitt
da26b4c5c7
Merge pull request #41 from pterodactyl/fix/race-1
...
Fix a possible race condition when Unsubscribing from the EventBus
2020-07-31 20:11:21 -07:00
Dane Everitt
5889d0585b
Merge pull request #45 from pterodactyl/fix/disk-usage
...
Force disk usage calculation when loading servers
2020-07-31 20:06:58 -07:00
Dane Everitt
8af26ac864
Merge pull request #43 from pterodactyl/impl/2194
...
Add the ability to define additional allowed origins
2020-07-31 20:04:10 -07:00
Matthew Penner
5b999db7f3
Add Docker registry authentication
2020-07-31 18:28:40 -06:00
Matthew Penner
afa6fb200e
Force disk usage calculation when loading servers
2020-07-31 17:01:02 -06:00
Matthew Penner
b811d2474e
Add the ability to define additional allowed origins
2020-07-31 16:19:09 -06:00
Matthew Penner
e85b1cecb7
Fix 500 errors on file routes when accessing a file that doesn't exist
2020-07-31 16:01:32 -06:00
Matthew Penner
5036077152
Hopefully fix a possible race condition when Unsubscribing from the EventBus while an event is being Published
2020-07-29 23:18:11 -06:00
Dane Everitt
373dbd355e
Better handling of subscribers to avoid a slice panic
2020-07-29 21:56:22 -07:00
Dane Everitt
7f9ec4402a
Add emitters for install started/stopped
2020-07-29 21:39:27 -07:00
Dane Everitt
db0dc17937
Fix exception when writing install logs
2020-07-29 20:54:15 -07:00
Dane Everitt
cb850fd81a
Update all of the old UUID refs to new
2020-07-19 17:53:41 -07:00
Dane Everitt
5079c67aee
Code cleanup and avoid server race
2020-07-19 17:50:39 -07:00
Dane Everitt
e28c05ae56
Address some race conditions
2020-07-19 17:46:39 -07:00
Dane Everitt
21e58b57a1
Whoops, sync correctly
2020-07-19 17:26:53 -07:00
Dane Everitt
16467fa7ff
Code cleanup
2020-07-19 17:09:38 -07:00
Dane Everitt
0cbaad5c72
Completely re-work the server configuration to be separated out better
2020-07-19 16:27:55 -07:00
Dane Everitt
a00288aa64
Require a lock on the restart process to avoid double restarts causing unexpected behavior
2020-07-18 16:46:41 -07:00
Dane Everitt
8315ff8ae1
Misc mutex locking things to avoid data races
2020-07-18 16:03:25 -07:00
Dane Everitt
0b9d923d15
Allow the deletion of a file or directory that is a symlink pointing outside the data dir
2020-07-18 12:19:54 -07:00
Dane Everitt
f0eeaae747
Remove debugging
2020-07-18 11:58:55 -07:00
Dane Everitt
085a02726b
Handle path resolution errors better in the file walker
2020-07-18 11:57:50 -07:00
Dane Everitt
4f1b0c67d6
Address security vulnerabilities allowing certain internal processes to potentiallty escape server data directory
2020-07-18 11:40:38 -07:00
Dane Everitt
6e1844a8c9
Skip over when not exist
2020-07-18 10:54:37 -07:00
Dane Everitt
7c3da84248
chown the cleaned location, not the original path
2020-07-18 10:49:28 -07:00
Dane Everitt
1b5684e6f8
Make sure errors are handled
2020-07-18 10:47:15 -07:00
Dane Everitt
21303dc517
Address race conditions when booting a server process
2020-07-18 10:10:34 -07:00
Dane Everitt
daf682b991
Handle errors and cancel process when encountered
2020-07-16 22:18:47 -07:00
Dane Everitt
a72d6f3768
Make the walk processor act the same as Go's walker
2020-07-16 22:01:50 -07:00
Dane Everitt
d262c12b43
Less confusing waitgroup positioning
2020-07-16 21:53:05 -07:00
Dane Everitt
f3c8220bd9
Change filewalker implementation to use a pool
2020-07-16 21:51:31 -07:00
Dane Everitt
7e1b7e7f36
Prevent race conditions when generating archives
2020-07-16 19:56:53 -07:00
Dane Everitt
b2d34cf8e7
Don't cause a race condition
2020-07-15 21:35:40 -07:00
Dane Everitt
a635cdd6b2
Support unarching in a better fashion with zip-slip protections and size checking
2020-07-15 21:16:08 -07:00
Dane Everitt
ae46add8ef
Remove unnecessary logic
2020-07-15 19:24:13 -07:00
Matthew Penner
f4c10e5a23
Add some missing error handling, fix a few typos
2020-07-15 13:11:12 -06:00
Matthew Penner
b64f1897fb
Add endpoint for decompressing archives
2020-07-15 12:28:45 -06:00
Matthew Penner
a98e376593
Calculate disk usage even if server has 'unlimited' disk space
2020-07-12 12:28:38 -06:00
Dane Everitt
eefc11bd0d
Remove accidental debug line
2020-07-12 10:26:26 -07:00
Dane Everitt
b3eba78743
Merge pull request #21 from pterodactyl/feature/server-mounts
...
Add configurable server mounts
2020-07-11 17:19:51 -07:00
Dane Everitt
233cefd129
Fix renaming to correctly create the base files if missing
2020-07-11 16:19:51 -07:00
Dane Everitt
c1e591c99b
Support generating a compressed archive for a server via the API
2020-07-11 13:13:49 -07:00
Matthew Penner
93228933bf
Merge branch 'develop' into feature/server-mounts
2020-07-11 12:32:34 -06:00
Matthew Penner
f7948939eb
Log if a mount isn't allowed
2020-07-04 16:20:58 -06:00
Matthew Penner
f3419495cd
Get the logger to log the cleaned mount paths as well
2020-07-04 15:38:50 -06:00
Matthew Penner
9f95efa3ae
Clean the source and target paths when adding a mount
2020-07-04 15:37:52 -06:00
Matthew Penner
3a6050446f
Add AllowedMounts configuration option, block any custom mounts if they are not in the AllowedMounts list
2020-07-04 15:32:53 -06:00
Matthew Penner
63e7bde39c
Merge branch 'develop' into feature/server-mounts
2020-07-04 15:17:59 -06:00
Matthew Penner
d339996b4e
Tweaks to environment_docker.go, change container hostnames to use the server's uuid, add Domainname option
2020-07-04 15:14:22 -06:00
Dane Everitt
65809b5731
Don't crash when passing in an environment variable that isn't a string value
2020-07-02 20:32:17 -07:00
Dane Everitt
ea2630946a
Sync server state with Panel before performing installation to ensure information is up to date
2020-06-30 20:56:55 -07:00
Dane Everitt
79a582a5f2
Generate a nicer install log with more detailed information
2020-06-30 20:45:36 -07:00
Dane Everitt
1f6789cba3
Acquire exclusive lock when installing a server
...
Also allows aborting a server install mid-process when the server is deleted before the process finishes.
2020-06-22 21:38:16 -07:00
Dane Everitt
073247e4e1
Use 15 minute context timeout for pulling, not 10 seconds... closes #2130
2020-06-22 20:56:55 -07:00
Dane Everitt
a3d83d23bd
Don't try to send space available when loading from a configuration
...
Server is not always installed when this function is called, this will cause errors in those cases.
2020-06-22 20:52:23 -07:00
Dane Everitt
db31722cfc
Don't cause a double stacktrace on certain errors
2020-06-22 20:51:41 -07:00
Dane Everitt
7d4a8d7f7e
Update everything expect transfers & sftp to not use zap
2020-06-13 10:40:26 -07:00
Dane Everitt
198a22f446
Replace even more zap occurences
2020-06-13 10:26:35 -07:00
Dane Everitt
0ae286d617
Correctly handle empty values from the API requests; mergo by default thinks these "empty" values should be skipped
2020-05-31 12:42:10 -07:00
Dane Everitt
62e5547c6d
Merge pull request #32 from pterodactyl/issue/1796
...
Send disk usage when server is offline
2020-05-31 10:54:21 -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
4b366ae19e
Don't cause a crash loop when part of the pre-server-boot process fails
2020-05-28 19:53:12 -07:00
Dane Everitt
54510057bb
Don't block server boot if there is an error pulling an image
...
Obviously this requires the image to exist locally, but should avoid widespread issues when Quay inevitably goes down again.
closes pterodactyl/panel#2076
2020-05-28 19:26:41 -07:00
Matthew Penner
74097cc4ad
Fix sending status event to all subscribers, send disk usage when server is offline
2020-05-22 11:01:27 -06:00
Matthew Penner
4483bfa2aa
Make mounts not get overridden when a server is updated
2020-05-21 15:13:27 -06:00
Matthew Penner
662eb17241
Pass server mounts into docker
2020-05-21 14:53:00 -06:00
Dane Everitt
276bd2be33
Don't quote environment variables; it is not needed in docker for this; closes pterodactyl/panel#2030
2020-05-17 17:06:01 -07:00
Dane Everitt
3fe884670d
Fix handling of files with special characters and spaces
...
closes pterodactyl/panel#2040
closes pterodactyl/panel#2038
2020-05-17 15:07:11 -07:00
Dane Everitt
804f3d5ca9
Always clean up the installer containers, even if there is an error during the process; closes pterodactyl/panel#2015
2020-05-09 19:57:29 -07:00
Dane Everitt
0bd28a4480
Cleanup S3 support; send actual backup details in response
2020-05-09 19:24:30 -07:00
Kawaii Neko Lolis
cfca0d7f07
Added network option to docker configuration
2020-05-10 03:29:56 +02:00
Dane Everitt
d178a0d96b
Don't fail deletion if container doesn't exist; closes pterodactyl/panel#2001
2020-05-09 17:16:41 -07:00