Compare commits
5 Commits
d0a57e76f4
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f327da93fc | ||
|
|
33379f1ba7 | ||
|
|
b54ca14a1e | ||
|
|
07c2220f81 | ||
|
|
eab97c1e21 |
48
README.md
48
README.md
@@ -1,2 +1,50 @@
|
||||
# OpenWebUI-RAG
|
||||
|
||||
This repository contains resources, scripts, and outputs related to **OpenWebUI** with RAG (Retrieval-Augmented Generation) support.
|
||||
|
||||
> ⚠️ **Content Notice:** If you see material here that you own and want it removed, please **DM me on Discord: NekoMonci**. I will remove it promptly.
|
||||
|
||||
---
|
||||
|
||||
## About
|
||||
|
||||
OpenWebUI-RAG is designed to:
|
||||
|
||||
- Integrate knowledge bases into **OpenWebUI** for enhanced question answering.
|
||||
- Allow dynamic loading of `.md` or `.mdx` documents as RAG sources.
|
||||
- Support multiple LLM providers for retrieval-based generation.
|
||||
This repository is part of my ongoing development projects under **YueMi-Development**.
|
||||
|
||||
---
|
||||
|
||||
## Usage
|
||||
|
||||
1. Clone the repository:
|
||||
```bash
|
||||
git clone https://git.yuemi.org/YueMi-Development/OpenWebUI-RAG.git
|
||||
```
|
||||
2. Add your knowledge base files (.md or .mdx) into the designated folder.
|
||||
3. Configure your .env or CLI parameters for your LLM provider (OpenAI, Gemini, Anthropic).
|
||||
4. Start the OpenWebUI server with RAG enabled.
|
||||
|
||||
---
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are welcome! You can help improve this project by submitting Pull Requests:
|
||||
- Fork the repository
|
||||
- Create a new branch for your feature or fix
|
||||
- Make your changes and test them
|
||||
- Submit a Pull Request to the main repository
|
||||
Please ensure your contributions are compatible with AGPL-3.0 licensing.
|
||||
|
||||
---
|
||||
|
||||
## License
|
||||
|
||||
This project’s code is licensed under AGPL-3.0. Any included content that originates from external sources remains the property of the respective owners.
|
||||
|
||||
---
|
||||
|
||||
## Contact
|
||||
- Discord: NekoMonci (for removal requests or questions)
|
||||
@@ -0,0 +1,46 @@
|
||||
### Chunk Garbage Collection Period
|
||||
If `chunk-gc.period-in-ticks >= 600`
|
||||
Chunks stay loaded too long, increasing memory usage.
|
||||
**Recommended:** 400
|
||||
|
||||
---
|
||||
|
||||
### Monster Spawn Tick Rate
|
||||
If `ticks-per.monster-spawns = 1`
|
||||
Monsters try to spawn every tick → CPU pressure.
|
||||
**Recommended:** 4
|
||||
|
||||
---
|
||||
|
||||
### Monster Spawn Limits
|
||||
If `spawn-limits.monsters >= 70`
|
||||
Too many hostile entities active → TPS drops.
|
||||
**Recommended:** 15
|
||||
|
||||
---
|
||||
|
||||
### Water Ambient Spawn Limits
|
||||
If `spawn-limits.water-ambient >= 20`
|
||||
Excessive fish/small water mobs impact performance.
|
||||
**Recommended:** 5
|
||||
|
||||
---
|
||||
|
||||
### Ambient Spawn Limits
|
||||
If `spawn-limits.ambient >= 15`
|
||||
Bats and small mobs waste processing.
|
||||
**Recommended:** 1
|
||||
|
||||
---
|
||||
|
||||
### Animal Spawn Limits
|
||||
If `spawn-limits.animals >= 10`
|
||||
Livestock growth creates ticking load.
|
||||
**Recommended:** 5
|
||||
|
||||
---
|
||||
|
||||
### Water Animal Spawn Limits
|
||||
If `spawn-limits.water-animals >= 15`
|
||||
Too many dolphins/turtles → pathfinding stress.
|
||||
**Recommended:** 5
|
||||
@@ -0,0 +1,74 @@
|
||||
```markdown
|
||||
# JVM Tuning: Optimized G1GC for Minecraft
|
||||
|
||||
## Introduction
|
||||
|
||||
After extensive research and testing, a set of Garbage Collection flags optimized for Minecraft using the G1GC collector has been developed. These flags ensure consistent server performance with minimal garbage collection spikes, making servers more reliable and stable in terms of TPS (Ticks Per Second).
|
||||
|
||||
## Recommended JVM Startup Flags
|
||||
|
||||
Use the following flags for Minecraft 1.15 and Java 8+:
|
||||
|
||||
```shell
|
||||
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paperclip.jar nogui
|
||||
```
|
||||
|
||||
- **Note:** Adjust `Xmx` and `Xms` according to your available memory. Do not use all allocated memory to avoid OOM errors.
|
||||
|
||||
## Memory Recommendations
|
||||
|
||||
- **Minimum Memory:** 6-10GB
|
||||
- **Memory Usage:** Leave room for the operating system by not using the full allocated memory.
|
||||
- **For Memory > 12GB:** Adjust the following:
|
||||
- `-XX:G1NewSizePercent=40`
|
||||
- `-XX:G1MaxNewSizePercent=50`
|
||||
- `-XX:G1HeapRegionSize=16M`
|
||||
- `-XX:G1ReservePercent=15`
|
||||
- `-XX:InitiatingHeapOccupancyPercent=20`
|
||||
|
||||
## Recommended Server Software
|
||||
|
||||
Switch to **Paper**, an optimized version of Spigot:
|
||||
- Benefits: Performance improvements, bug and exploit fixes, new features, and enhanced API.
|
||||
|
||||
## Java GC Logging
|
||||
|
||||
- **Java 8-10:**
|
||||
```shell
|
||||
-Xloggc:gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1M
|
||||
```
|
||||
|
||||
- **Java 11+:**
|
||||
```shell
|
||||
-Xlog:gc*:logs/gc.log:time,uptime:filecount=5,filesize=1M
|
||||
```
|
||||
|
||||
## Technical Explanation of the Flags
|
||||
|
||||
- **-Xms matching -Xmx:** Ensure the server can use the entire `-Xmx` memory allocation.
|
||||
- **G1NewSizePercent & G1MaxNewSizePercent:** Allocate a larger portion of memory to the New Generation for better performance.
|
||||
- **G1MixedGCLiveThresholdPercent:** Set to 90 to reclaim old generation garbage quickly.
|
||||
- **G1ReservePercent:** Increase to 20 to prevent memory allocation issues.
|
||||
- **MaxTenuringThreshold:** Set to 1 to prevent transient data from moving to old generation.
|
||||
- **SurvivorRatio:** Set to 32 to free up more regions for Eden.
|
||||
- **AlwaysPreTouch:** Ensures memory is contiguous at start-up.
|
||||
- **DisableExplicitGC:** Prevents plugins from triggering full garbage collections.
|
||||
- **MaxGCPauseMillis:** Controls pause time during collections for minimal TPS impact.
|
||||
- **ParallelRefProcEnabled:** Uses multiple threads for weak reference checking.
|
||||
|
||||
## Changelog
|
||||
|
||||
- **5/2/2020:** Added `+PerfDisableSharedMem`, adjusted `MixedGCTarget` to 4.
|
||||
- **4/25/2020:** Removed `OmitStackTraces`.
|
||||
- **4/5/2020:** Major refactor of flag suggestions.
|
||||
- **10/4/2018:** Removed `AggressiveOpts` and `InitiatingHeapOccupancyPercent`.
|
||||
- **8/18/2018:** Adjusted `MixedGCLiveThreshold` to 35.
|
||||
|
||||
## About Aikar
|
||||
|
||||
Daniel Ennis (Aikar) is a Senior Software Engineer and Entrepreneur, passionate about development and community building. He is the founder of Starlis LLC and operates Empire Minecraft.
|
||||
|
||||
---
|
||||
|
||||
**Copyright © 2007-2025 Aikar's Thoughts - All rights reserved**
|
||||
```
|
||||
@@ -0,0 +1,103 @@
|
||||
|
||||
## Compatibility
|
||||
My flags are only compatible and tested with:
|
||||
- Java 24+,
|
||||
- GraalVM JVM,
|
||||
- Linux,
|
||||
- Minecraft 1.20+
|
||||
> [!TIP]
|
||||
> Using MeowIce's Flags with [Leaf](https://github.com/Winds-Studio/Leaf) as server software can boost more performance !
|
||||
# TL;DR: The flags
|
||||
## G1GC version (for server below 32GB allocated heap)
|
||||
> [!NOTE]
|
||||
> This is recommended for servers allocated below 32GB RAM with basic resource usage. Balanced between memory usage and performance.
|
||||
|
||||
`--add-modules=jdk.incubator.vector -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=28 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1MixedGCCountTarget=3 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:SurvivorRatio=32 -XX:G1HeapWastePercent=5 -XX:MaxTenuringThreshold=1 -XX:+PerfDisableSharedMem -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:NmethodSweepActivity=1 -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:AllocatePrefetchStyle=3 -XX:+AlwaysActAsServerClassMachine -XX:+UseTransparentHugePages -XX:LargePageSizeInBytes=2M -XX:+UseLargePages -XX:+EagerJVMCI -XX:+UseStringDeduplication -XX:+UseAES -XX:+UseAESIntrinsics -XX:+UseFMA -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseFPUForSpilling -XX:+UseFastStosb -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+AlignVector -XX:+OptimizeFill -XX:+EnableVectorSupport -XX:+UseCharacterCompareIntrinsics -XX:+UseCopySignIntrinsic -XX:+UseVectorStubs -XX:UseAVX=2 -XX:UseSSE=4 -XX:+UseFastJNIAccessors -XX:+UseInlineCaches -XX:+SegmentedCodeCache -Djdk.nio.maxCachedBufferSize=262144 -Djdk.graal.UsePriorityInlining=true -Djdk.graal.Vectorization=true -Djdk.graal.OptDuplication=true -Djdk.graal.DetectInvertedLoopsAsCounted=true -Djdk.graal.LoopInversion=true -Djdk.graal.VectorizeHashes=true -Djdk.graal.EnterprisePartialUnroll=true -Djdk.graal.VectorizeSIMD=true -Djdk.graal.StripMineNonCountedLoops=true -Djdk.graal.SpeculativeGuardMovement=true -Djdk.graal.TuneInlinerExploration=1 -Djdk.graal.LoopRotation=true -Djdk.graal.CompilerConfiguration=enterprise
|
||||
`
|
||||
## ZGC version (for server with 32GB+ allocated heap)
|
||||
> [!NOTE]
|
||||
> This is recommended for servers with more than 32GB of allocated memory and many CPU cores, allowing for minimizing the delay between each GC run with a larger heap size in an intensive environment.
|
||||
|
||||
> [!WARNING]
|
||||
> Only use this if you have more than 10 CPU cores; using ZGC on systems with fewer than 8 cores may cause a significant performance impact !
|
||||
|
||||
`--add-modules=jdk.incubator.vector -XX:+UseZGC -XX:-ZProactive -XX:SoftMaxHeapSize=$((Memory - 2048))M -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:+PerfDisableSharedMem -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:NmethodSweepActivity=1 -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:AllocatePrefetchStyle=1 -XX:+AlwaysActAsServerClassMachine -XX:+UseTransparentHugePages -XX:LargePageSizeInBytes=2M -XX:+UseLargePages -XX:+EagerJVMCI -XX:+UseStringDeduplication -XX:+UseAES -XX:+UseAESIntrinsics -XX:+UseFMA -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseFPUForSpilling -XX:+UseFastStosb -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+AlignVector -XX:+OptimizeFill -XX:+EnableVectorSupport -XX:+UseCharacterCompareIntrinsics -XX:+UseCopySignIntrinsic -XX:+UseVectorStubs -XX:UseAVX=2 -XX:UseSSE=4 -XX:+UseFastJNIAccessors -XX:+UseInlineCaches -XX:+SegmentedCodeCache -Djdk.nio.maxCachedBufferSize=262144 -Djdk.graal.UsePriorityInlining=true -Djdk.graal.Vectorization=true -Djdk.graal.OptDuplication=true -Djdk.graal.DetectInvertedLoopsAsCounted=true -Djdk.graal.LoopInversion=true -Djdk.graal.VectorizeHashes=true -Djdk.graal.EnterprisePartialUnroll=true -Djdk.graal.VectorizeSIMD=true -Djdk.graal.StripMineNonCountedLoops=true -Djdk.graal.SpeculativeGuardMovement=true -Djdk.graal.TuneInlinerExploration=1 -Djdk.graal.LoopRotation=true -Djdk.graal.CompilerConfiguration=enterprise`
|
||||
|
||||
# What is MeowIce's Flags ?
|
||||
MeowIce's Flags aimed to blend Aikar's Flags optimization with new JVM features to further boost the overall performance, while allowing it to use advanced CPU instructions to accelerate some workloads.
|
||||
> [!NOTE]
|
||||
> Hey don't forget to leave a star !
|
||||
> <img width="756" height="157" alt="image" src="https://github.com/user-attachments/assets/4db8d2e9-e2fa-448e-9a52-7af7a6c7369a" />
|
||||
|
||||
# Why would I have to... switch ?
|
||||
Almost 99% of Minecraft servers use Aikar's Flags, and it is recommended by many people (some use nothing !). But why use other flags ?
|
||||
The answer is: We have now developed to Minecraft 1.21.x and Java 24 (at the time of writing this), and Aikar's Flags **was written mainly to optimize Minecraft's Garbage Collector** and Java version at that time (Java 8 and Java 11, around 2018 - 2020). Later Java versions (from Java 17 and above) have added many optimization options for the JVM. So I wrote a separate flag to support these optimizations and integrate new features of Java 17+ while still keeping Aikar's flags mainly to optimize GC. <ins>There's no risk in trying my flags !</ins>
|
||||
# Why GraalVM but not AdoptiumJDK or OpenJDK ?
|
||||
GraalVM with better JIT performance and more aggressive optimizations compared to traditional `HotSpot C2` found in many JDKs (including OpenJDK and AdoptiumJDK (aka. Eclipse Temurin)). This change makes inlining, loop unrolling, escape analysis, and vectorization work better while maintaining lower CPU usage.
|
||||
Furthermore, the GraalVM compiler compiles plugins and server code faster and smarter, adapting to actual usage and environment on the fly.
|
||||
> [!TIP]
|
||||
> GraalVM allows you to inspect memory usage and trace down naughty plugins using VisualVM !
|
||||
|
||||
# Flags explanation
|
||||
- `--add-modules=jdk.incubator.vector` Enables advanced vector computation capabilities for Pufferfish/Purpur 1.18+. Useful for optimizing chunk loading and rendering.
|
||||
- ` -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=28 -XX:G1MaxNewSizePercent=50 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=15 -XX:G1MixedGCCountTarget=3 -XX:InitiatingHeapOccupancyPercent=20 -XX:G1MixedGCLiveThresholdPercent=90 -XX:SurvivorRatio=32 -XX:G1HeapWastePercent=5 -XX:MaxTenuringThreshold=1 -XX:+PerfDisableSharedMem -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5 -XX:G1RSetUpdatingPauseTimePercent=0` These are very generic G1GC flags, based on [Aikar's Flags](https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/).
|
||||
- `-XX:+UseNUMA` Enables NUMA or (Non Uniform Memory Access) for supported architecture.
|
||||
- `-XX:-DontCompileHugeMethods` Allows the JVM to compile larger methods to optimize performance.
|
||||
- `-XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000` Sets the maximum number of nodes for the compiler's intermediate representation.
|
||||
- `-XX:ReservedCodeCacheSize=400M` Sets the cache size for compiled codes. This will ensure the JIT have enough space for compiling.
|
||||
- `-XX:NonNMethodCodeHeapSize=12M` Sets the code heap size for non-method codes.
|
||||
- `-XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M` Same as above but for profiled and non profiled methods.
|
||||
- `-XX:NmethodSweepActivity=1` Helps managing code cache more efficiently by keeping "cold" code in the cache for a longer time. There is no risk of "filling up" the code cache either, as cold code is more aggressively removed as it fills up.
|
||||
## Advanced Performance Tuning
|
||||
- `-XX:+UseFastUnorderedTimeStamps` This option enables the usage of fast unordered timestamps for time-related operations in the JVM.
|
||||
- `-XX:+UseCriticalJavaThreadPriority` This option assigns a higher priority to critical Java threads, which can improve responsiveness and reduce latency in critical parts of the application.
|
||||
- `-XX:AllocatePrefetchStyle=3` This will instruct JVM to use code style 3 for faster memory allocation. A value of 3 enables the most aggressive prefetching. More aggressive prefetching is generally useful on newer CPUs with large caches.
|
||||
- `-XX:+AlwaysActAsServerClassMachine` Forces the JVM to act as if it's running on a server-class machine.
|
||||
- `-XX:+UseTransparentHugePages` As it name said.
|
||||
- `-XX:LargePageSizeInBytes=2M` Size of huge (large) pages.
|
||||
- `-XX:+UseLargePages` Enables the usage of large pages for the JVM's memory allocation. Large pages can improve performance by reducing Translation Lookaside Buffer misses.
|
||||
- `-XX:+EagerJVMCI` Enables the JVM Compiler Interface as early as needed, especially with GraalVM.
|
||||
- `-XX:+UseStringDeduplication` Reduces memory ussage by deduping identical strings. Might reduce frequent GCs.
|
||||
- `-XX:+UseAES -XX:+UseAESIntrinsics` Enables Hardware accelerated Advanced Encryption Standart intrinsics.
|
||||
- `-XX:+UseFMA` Enables Fused Multiply Add instructions.
|
||||
- `-XX:+UseLoopPredicate` Enables loop predicate optimization.
|
||||
- `-XX:+RangeCheckElimination` Enables the elimination of range checks.
|
||||
- `-XX:+OptimizeStringConcat` Enables optimization of string concatenation in the JVM, which can lead to improved performance when working with string concatenation operations.
|
||||
- `-XX:+UseCompressedOops` Enables the use of compressed object pointers (Oops) which reduces memory usage on 64-bit systems.
|
||||
- `-XX:+UseThreadPriorities` Enables the use of thread priorities.
|
||||
- `-XX:+OmitStackTraceInFastThrow` Omits the stack trace for exceptions that are frequently thrown.
|
||||
- `-XX:+RewriteBytecodes -XX:+RewriteFrequentPairs` Improves performance by actively rewriting byte codes and its pairs.
|
||||
- `-XX:+UseFPUForSpilling` Provides a faster temporary storage for spills, so when we need just a few additional spill slots, we can avoid tripping to L1 cache-backed stack for this.
|
||||
- `-XX:+UseFastStosb` Enables support for fast string operations.
|
||||
- `-XX:+UseNewLongLShift` Use optimized bitwise shift left.
|
||||
- `-XX:+UseVectorCmov` This option enables the usage of vectorized compare and move (cmov) instructions for better performance on CPUs that support these instructions.
|
||||
- `-XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmRegToRegMoveAll` Uses XMM registers for Array Copy, int2double, int2float, register2register move operations
|
||||
- `-XX:+UseXmmLoadAndClearUpper` Same as above but to load and clear upper registers.
|
||||
- `-XX:+EliminateLocks` Improves single-threaded performance.
|
||||
- `-XX:+DoEscapeAnalysis` Escape analysis is a technique by which the Java Hotspot Server Compiler can analyze the scope of a new object's uses and decide whether to allocate it on the Java heap.
|
||||
- `-XX:+AlignVector` Aligns vectors for optimization.
|
||||
- `-XX:+OptimizeFill` Enables optimization of memory fill operations.
|
||||
- `-XX:+EnableVectorSupport` Its name suggested.
|
||||
- `-XX:+UseCharacterCompareIntrinsics` Enables intrinsification of java.lang.Character functions.
|
||||
- `-XX:+UseCopySignIntrinsic` Enables intrinsification of Math.copySign.
|
||||
- `-XX:+UseVectorStubs` Optimizes vector operations.
|
||||
- `-XX:UseAVX=2 -XX:UseSSE=4` Enable supported AVX, SSE instructions set on x86/x64 compatible CPUs.
|
||||
- `-XX:+UseFastJNIAccessors` Use optimized versions of GetField.
|
||||
- `-XX:+UseInlineCaches` Use Inline Caches for virtual calls
|
||||
- `-XX:+SegmentedCodeCache` Enables the segmented code cache, which improves code cache management.
|
||||
## GraalVM Compiler Specific Flags
|
||||
- `-Djdk.nio.maxCachedBufferSize=262144` Sets the maximum size for cached direct buffers.
|
||||
- `-Djdk.graal.UsePriorityInlining=true` Enables priority inlining in the Graal compiler.
|
||||
- `-Djdk.graal.Vectorization=true` Enables vectorization in the Graal compiler.
|
||||
- `-Djdk.graal.OptDuplication=true` Enables optimization duplication in the Graal compiler.
|
||||
- `-Djdk.graal.DetectInvertedLoopsAsCounted=true` Enables detection of inverted loops as counted loops.
|
||||
- `-Djdk.graal.LoopInversion=true` Enables loop inversion in the Graal compiler.
|
||||
- `-Djdk.graal.VectorizeHashes=true` Enables vectorization of hash computations.
|
||||
- `-Djdk.graal.VectorizeSIMD=true` Enables SIMD (Single Instruction - Multiple Data) vectorization.
|
||||
- `-Djdk.graal.StripMineNonCountedLoops=true` Enables strip mining of non-counted loops.
|
||||
- `-Djdk.graal.SpeculativeGuardMovement=true` Enables speculative guard movement in the Graal compiler.
|
||||
- `-Djdk.graal.TuneInlinerExploration=1` Tunes the inliner exploration parameter in the Graal compiler.
|
||||
- `-Djdk.graal.LoopRotation=true` Enables loop rotation in the Graal compiler.
|
||||
- `-Djdk.graal.UseCountedLoopSafepoints=true` Enables safepoint insertion in counted loops.
|
||||
- `-Djdk.graal.EnterprisePartialUnroll=true` Enables partial unrolling optimizations in enterprise mode.
|
||||
- `-Djdk.graal.CompilerConfiguration=enterprise` Enables Enterprise mode optimizations in the Graal compiler.
|
||||
168
games/minecraft/develoment/configuration/optimization/paper.md
Normal file
168
games/minecraft/develoment/configuration/optimization/paper.md
Normal file
@@ -0,0 +1,168 @@
|
||||
### Max Auto Save Chunks Per Tick
|
||||
If `max-auto-save-chunks-per-tick >= 24`
|
||||
Too many chunks saving per tick causes stutters.
|
||||
**Recommended:** 6
|
||||
|
||||
---
|
||||
|
||||
### Optimize Explosions
|
||||
If `optimize-explosions = false`
|
||||
Explosion physics consume unnecessary CPU.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
### Mob Spawner Tick Rate
|
||||
If `mob-spawner tick-rate = 1`
|
||||
Spawner updates every tick → heavy load.
|
||||
**Recommended:** 2
|
||||
|
||||
---
|
||||
|
||||
### Disable Chest Cat Detection
|
||||
If `disable-chest-cat-detection = false`
|
||||
Cats constantly check for chests → wasted processing.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
### Container Update Tick Rate
|
||||
If `container-update = 1`
|
||||
Containers (hoppers, chests) tick too frequently.
|
||||
**Recommended:** 3
|
||||
|
||||
---
|
||||
|
||||
### Grass Spread Tick Rate
|
||||
If `grass-spread = 1`
|
||||
Grass updates too often in large areas.
|
||||
**Recommended:** 4
|
||||
|
||||
---
|
||||
|
||||
## Despawn Ranges
|
||||
|
||||
### Ambient Mobs (bats etc.)
|
||||
Soft ≥ 32 or Hard ≥ 128 is too far.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Axolotls
|
||||
Soft ≥ 32 or Hard ≥ 128 wastes pathfinding cycles.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Creatures (passive mobs)
|
||||
Soft ≥ 32 or Hard ≥ 128 → excess ticking.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Misc Entities
|
||||
Soft ≥ 32 or Hard ≥ 128 → extra tracking.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Monsters
|
||||
Soft ≥ 32 or Hard ≥ 128 keeps mobs active far away.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Underground Water Creatures
|
||||
Soft ≥ 32 or Hard ≥ 128 → intensive underwater AI.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Water Ambient
|
||||
Soft ≥ 32 or Hard ≥ 128 → too many small water mobs.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Water Creatures (dolphins, turtles)
|
||||
Soft ≥ 32 or Hard ≥ 128 causes pathfinding stress.
|
||||
**Recommended:** Soft 28 / Hard 96
|
||||
|
||||
---
|
||||
|
||||
### Hopper Move Event
|
||||
If `disable-move-event = false`
|
||||
Hoppers trigger events constantly → lag.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
### Arrow Despawn (Non-Player)
|
||||
If `non-player-arrow-despawn-rate = -1`
|
||||
Arrows never despawn → entity buildup.
|
||||
**Recommended:** 60
|
||||
|
||||
---
|
||||
|
||||
### Arrow Despawn (Creative Mode)
|
||||
If `creative-arrow-despawn-rate = -1`
|
||||
Infinite arrows remain in world.
|
||||
**Recommended:** 60
|
||||
|
||||
---
|
||||
|
||||
### Prevent Moving into Unloaded Chunks
|
||||
If `prevent-moving-into-unloaded-chunks = false`
|
||||
Players can glitch into unfinished terrain → lag spikes.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
### Redstone Implementation
|
||||
If `redstone-implementation != ALTERNATE_CURRENT`
|
||||
Vanilla redstone is less efficient.
|
||||
**Recommended:** Set to `ALTERNATE_CURRENT`
|
||||
|
||||
---
|
||||
|
||||
### Fix Climbing Bypassing Cramming Rule
|
||||
If `fix-climbing-bypassing-cramming-rule = false`
|
||||
Entities bypass cramming and cause mob stacks.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
### Armor Stand Collision Lookups
|
||||
If `armor-stands.do-collision-entity-lookups = true`
|
||||
Armor stands trigger expensive collision searches.
|
||||
**Recommended:** Disable
|
||||
|
||||
---
|
||||
|
||||
### Armor Stand Tick (with certain plugins)
|
||||
If animated plugins exist (PetBlocks, BlockBalls, ArmorStandTools)
|
||||
Armor stands tick constantly.
|
||||
**Recommended:** Disable
|
||||
|
||||
---
|
||||
|
||||
### Per-Player Mob Spawns
|
||||
If `per-player-mob-spawns = false`
|
||||
One player can hog mob cap → uneven performance.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
### Alt Item Despawn Rate
|
||||
If `alt-item-despawn-rate.enabled = false`
|
||||
All dropped items stay too long by default.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
## Entity-Per-Chunk Save Limits
|
||||
|
||||
If any of below = -1 (unlimited):
|
||||
Experience Orbs, Snowballs, Ender Pearls, Arrows
|
||||
Entity spam can corrupt chunks and harm TPS.
|
||||
**Recommended:** 16 each
|
||||
@@ -0,0 +1,79 @@
|
||||
### ❌ Plugins to Avoid or Replace
|
||||
|
||||
These plugins often duplicate server-side optimizations already handled by Paper/Purpur or they introduce new performance issues.
|
||||
|
||||
---
|
||||
|
||||
#### ClearLag / NoMobLag / ServerBooster / AntiLag
|
||||
Plugins that claim to magically reduce lag usually **cause more lag** by forcing large cleanup ticks and interrupting natural game logic.
|
||||
**Recommendation:** Remove them.
|
||||
|
||||
---
|
||||
|
||||
#### LagAssist
|
||||
Useful **only** for analytics and prevention insights.
|
||||
Disable all “performance optimization” and “lag removal” modules.
|
||||
**Recommendation:** Keep minimal or remove.
|
||||
|
||||
---
|
||||
|
||||
#### BookLimiter
|
||||
Paper already patches book-related crash exploits.
|
||||
**Recommendation:** Remove.
|
||||
|
||||
---
|
||||
|
||||
#### LimitPillagers / VillagerOptimiser
|
||||
Obsolete for **Minecraft 1.15+** due to internal AI and spawn behavior improvements.
|
||||
**Recommendation:** Remove.
|
||||
|
||||
---
|
||||
|
||||
#### All Mob Stacking Plugins
|
||||
(StackMob, Stacker, MobStacker, WildStacker)
|
||||
Mob stacking increases CPU load, reduces AI batching, and introduces dupe bugs.
|
||||
**Recommendation:** Remove.
|
||||
|
||||
---
|
||||
|
||||
#### FastAsyncWorldEdit (FAWE)
|
||||
Can corrupt chunks and break block updates in complex edits.
|
||||
**Recommendation:** Replace with **WorldEdit**.
|
||||
|
||||
---
|
||||
|
||||
#### IllegalStack / ExploitFixer
|
||||
Paper already patches most duplication and crash exploits.
|
||||
**Recommendation:** Remove.
|
||||
|
||||
---
|
||||
|
||||
#### EntityTrackerFixer
|
||||
Paper includes modern tracking optimizations natively.
|
||||
**Recommendation:** Remove.
|
||||
|
||||
---
|
||||
|
||||
#### Orebfuscator
|
||||
Paper already offers **anti-Xray** systems.
|
||||
**Recommendation:** Remove.
|
||||
|
||||
---
|
||||
|
||||
#### GroupManager / PermissionsEx / bPermissions
|
||||
Heavily outdated permission systems.
|
||||
**Recommendation:** Replace with **LuckPerms**.
|
||||
|
||||
---
|
||||
|
||||
### PhantomSMP
|
||||
Phantom behavior control exists in Paper:
|
||||
`phantoms-only-attack-insomniacs = true`
|
||||
Regardless of the current setting — plugin is unnecessary.
|
||||
**Recommendation:** Remove.
|
||||
|
||||
---
|
||||
|
||||
#### PacketLimiter
|
||||
Duplicate of Paper network protection systems.
|
||||
**Recommendation:** Remove.
|
||||
@@ -0,0 +1,18 @@
|
||||
### 🔌 Plugin Redundancy (Remove if using Purpur)
|
||||
|
||||
#### SilkSpawners
|
||||
Purpur already provides spawner mining and pickup support.
|
||||
**Recommended:** Remove this plugin.
|
||||
|
||||
---
|
||||
|
||||
#### MineableSpawners
|
||||
Functionality overlaps entirely with Purpur’s built-in spawner mechanics.
|
||||
**Recommended:** Remove this plugin.
|
||||
|
||||
---
|
||||
|
||||
#### VillagerLobotomizatornator
|
||||
Purpur includes optimized villager lobotomization features.
|
||||
Enable: `villager.lobotomize.enabled` in `purpur.yml`
|
||||
**Recommended:** Remove plugin.
|
||||
@@ -0,0 +1,13 @@
|
||||
### 📌 Pufferfish Configuration
|
||||
|
||||
#### Projectile: Max Loads Per Projectile
|
||||
If set to **9 or higher**
|
||||
Excessive projectile physics can increase entity workload.
|
||||
**Recommended:** 8
|
||||
|
||||
---
|
||||
|
||||
#### DAB Feature Disabled
|
||||
If `dab.enabled = false`
|
||||
Disabling DAB removes optimizations that reduce block updates.
|
||||
**Recommended:** Enable in `pufferfish.yml`
|
||||
@@ -0,0 +1,43 @@
|
||||
### Alternate Keepalive
|
||||
If `use-alternate-keepalive = false` and no TCPShield installed
|
||||
Server keepalive may behave poorly and cause disconnect issues.
|
||||
**Recommended:** Enable in purpur.yml
|
||||
|
||||
If `use-alternate-keepalive = true` and TCPShield is installed
|
||||
TCPShield compatibility issues may occur.
|
||||
**Recommended:** Disable in purpur.yml
|
||||
|
||||
---
|
||||
|
||||
### Useless Entity Packet Filtering
|
||||
If `dont-send-useless-entity-packets = false`
|
||||
Server still sends unnecessary packets → wasted bandwidth.
|
||||
**Recommended:** Enable in purpur.yml
|
||||
|
||||
---
|
||||
|
||||
### Villager Brain Ticks
|
||||
If `villager.brain-ticks = 1`
|
||||
Villager AI becomes too active, increasing CPU load.
|
||||
**Recommended:** 4
|
||||
|
||||
---
|
||||
|
||||
### Villager Iron Golem Spawn Radius
|
||||
If `spawn-iron-golem.radius = 0`
|
||||
May trigger excessive golem spawning and pathfinding load.
|
||||
**Recommended:** 5
|
||||
|
||||
---
|
||||
|
||||
### Zombies Aggressive Toward Villagers When Lagging
|
||||
If `aggressive-towards-villager-when-lagging = true`
|
||||
Adds extra logic during TPS drops → counterproductive.
|
||||
**Recommended:** Disable
|
||||
|
||||
---
|
||||
|
||||
### Player Teleport Outside World Border
|
||||
If `teleport-if-outside-border = false`
|
||||
Players stuck outside border can cause ticking issues.
|
||||
**Recommended:** Enable
|
||||
@@ -0,0 +1,11 @@
|
||||
### Network Compression Threshold
|
||||
If `network-compression-threshold <= 256` and `bungeecord = false`
|
||||
Low compression threshold increases bandwidth usage and CPU load.
|
||||
**Recommended:** 512
|
||||
|
||||
---
|
||||
|
||||
### Simulation Distance
|
||||
If `simulation-distance >= 9`
|
||||
Large simulation radius causes heavy ticking load on server threads.
|
||||
**Recommended:** 5 or lower
|
||||
125
games/minecraft/develoment/configuration/optimization/spigot.md
Normal file
125
games/minecraft/develoment/configuration/optimization/spigot.md
Normal file
@@ -0,0 +1,125 @@
|
||||
## 📘 Spigot Optimization Knowledge Base
|
||||
|
||||
### Entity Activation Range — Animals
|
||||
If `entity-activation-range.animals >= 32`
|
||||
This range is too high and wastes server performance.
|
||||
**Recommended:** 16
|
||||
|
||||
---
|
||||
|
||||
### Entity Activation Range — Monsters
|
||||
If `entity-activation-range.monsters >= 32`
|
||||
Monster ticking costs rise significantly.
|
||||
**Recommended:** 16
|
||||
|
||||
---
|
||||
|
||||
### Entity Activation Range — Misc
|
||||
If `entity-activation-range.misc >= 16`
|
||||
Unnecessary processing for miscellaneous entities.
|
||||
**Recommended:** 12
|
||||
|
||||
---
|
||||
|
||||
### Entity Activation Range — Water
|
||||
If `entity-activation-range.water >= 16`
|
||||
Water mobs cause extra chunk activity.
|
||||
**Recommended:** 12
|
||||
|
||||
---
|
||||
|
||||
### Entity Activation Range — Villagers
|
||||
If `entity-activation-range.villagers >= 32`
|
||||
Villagers wake up far chunks → lag.
|
||||
**Recommended:** 16
|
||||
|
||||
---
|
||||
|
||||
### Tick Inactive Villagers
|
||||
If `tick-inactive-villagers = true`
|
||||
Villagers continue logic even when inactive.
|
||||
**Recommended:** Disable
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Villagers For
|
||||
If `villagers-max-per-tick >= 1 AND villagers-for >= 100`
|
||||
Villagers waking too often stresses CPU.
|
||||
**Recommended:** 20
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Flying Monsters For
|
||||
If `flying-monsters-max-per-tick >= 1 AND flying-monsters-for >= 100`
|
||||
Causes ticking of distant mobs.
|
||||
**Recommended:** 60
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Villagers Max Per Tick
|
||||
If `villagers-max-per-tick >= 4`
|
||||
Too many villagers regain full AI at once.
|
||||
**Recommended:** 1
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Animals For
|
||||
If `animals-max-per-tick >= 1 AND animals-for >= 100`
|
||||
Animal inactive chunks wake too often.
|
||||
**Recommended:** 40
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Monsters Max Per Tick
|
||||
If `monsters-max-per-tick >= 8`
|
||||
Large spikes in AI processing.
|
||||
**Recommended:** 4
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Flying Monsters Max Per Tick
|
||||
If `flying-monsters-max-per-tick >= 8`
|
||||
Causes unstable performance in caves/sky.
|
||||
**Recommended:** 1
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Animals Max Per Tick
|
||||
If `animals-max-per-tick >= 4`
|
||||
More entity AI waking per tick = CPU waste.
|
||||
**Recommended:** 2
|
||||
|
||||
---
|
||||
|
||||
### Wake Up Inactive — Monsters For
|
||||
If `monsters-max-per-tick >= 1 AND monsters-for >= 100`
|
||||
Monsters activate too frequently.
|
||||
**Recommended:** 60
|
||||
|
||||
---
|
||||
|
||||
### Arrow Despawn Rate
|
||||
If `arrow-despawn-rate >= 1200`
|
||||
Arrows remain too long → memory clutter.
|
||||
**Recommended:** 300
|
||||
|
||||
---
|
||||
|
||||
### Merge Radius — Items
|
||||
If `merge-radius.item <= 2.5`
|
||||
Item clutter increases unnecessary entity load.
|
||||
**Recommended:** 4.0
|
||||
|
||||
---
|
||||
|
||||
### Merge Radius — XP Orbs
|
||||
If `merge-radius.exp <= 3.0`
|
||||
XP entities pile up and cause lag.
|
||||
**Recommended:** 6.0
|
||||
|
||||
---
|
||||
|
||||
### Max Entity Collisions
|
||||
If `max-entity-collisions >= 8`
|
||||
Mass collisions slow physics operations.
|
||||
**Recommended:** 2
|
||||
@@ -0,0 +1,43 @@
|
||||
### 🧱 Spawner Optimization
|
||||
|
||||
#### Spawner Particles Enabled
|
||||
If **true**
|
||||
Particles from spawners add unnecessary client render load.
|
||||
**Recommended:** Disable
|
||||
|
||||
#### Max Nearby Entities High
|
||||
If **greater than 6**
|
||||
Too many mobs spawn per spawner, increasing tick pressure.
|
||||
**Recommended:** 6 or lower
|
||||
|
||||
---
|
||||
|
||||
### 👹 Mob Performance Settings
|
||||
|
||||
#### Entity Collisions Enabled
|
||||
If **true**
|
||||
Physical mob collisions significantly increase entity calculations.
|
||||
**Recommended:** Disable
|
||||
|
||||
#### Optimize Mobs Disabled
|
||||
If **false**
|
||||
Skipping optimization wastes server performance.
|
||||
**Recommended:** Enable
|
||||
|
||||
---
|
||||
|
||||
### 🌍 Regionized Chunk Ticking
|
||||
|
||||
#### Regionized Chunk Ticking Enabled
|
||||
If **true**
|
||||
Still experimental and known to introduce instability.
|
||||
**Recommended:** Keep disabled
|
||||
|
||||
---
|
||||
|
||||
### ⚙ System Optimization
|
||||
|
||||
#### Virtual Threads Disabled
|
||||
If **false**
|
||||
Virtual threads improve async handling (Java 21+ runtime strongly recommended).
|
||||
**Recommended:** Enable
|
||||
776
software/pterodactyl-panel/pterodactyl-docs.md
Normal file
776
software/pterodactyl-panel/pterodactyl-docs.md
Normal file
@@ -0,0 +1,776 @@
|
||||
```markdown
|
||||
# Pterodactyl Knowledge Base
|
||||
|
||||
## Table of Contents
|
||||
- [Introduction](#introduction)
|
||||
- [About Pterodactyl](#about-pterodactyl)
|
||||
- [Key Features](#key-features)
|
||||
- [Installation Guides](#installation-guides)
|
||||
- [Panel Installation](#panel-installation)
|
||||
- [Wings Installation](#wings-installation)
|
||||
- [Webserver Configuration](#webserver-configuration)
|
||||
- [Community Guides and Tutorials](#community-guides-and-tutorials)
|
||||
- [Creating a New Node](#creating-a-new-node)
|
||||
- [Creating a Custom Docker Image](#creating-a-custom-docker-image)
|
||||
- [Creating a Custom Egg](#creating-a-custom-egg)
|
||||
- [Operating System Specific Installations](#operating-system-specific-installations)
|
||||
- [Enterprise Linux 8 and Fedora Server 40](#enterprise-linux-8-and-fedora-server-40)
|
||||
- [Debian 11, 12 & 13](#debian-11-12-13)
|
||||
- [CentOS 7](#centos-7)
|
||||
- [Advanced Configurations](#advanced-configurations)
|
||||
- [Using Mounts](#using-mounts)
|
||||
- [Upgrading PHP](#upgrading-php)
|
||||
- [Development and Customization](#development-and-customization)
|
||||
- [Building Wings](#building-wings)
|
||||
- [Building Panel Assets](#building-panel-assets)
|
||||
- [Legacy Upgrades](#legacy-upgrades)
|
||||
- [Kernel Modifications](#kernel-modifications)
|
||||
|
||||
## Introduction
|
||||
Welcome to the Pterodactyl Knowledge Base. This document provides structured information on installing, configuring, and using Pterodactyl, a game server management panel.
|
||||
|
||||
## About Pterodactyl
|
||||
**Pterodactyl®** is a free, open-source game server management panel built with PHP, React, and Go. It runs all game servers in isolated Docker containers for security, providing a user-friendly interface.
|
||||
|
||||
## Key Features
|
||||
- **Security First**: Uses bcrypt hashing, AES-256-CBC encryption, and HTTPS support.
|
||||
- **Modern Tooling**: Built on a modern stack with best design practices.
|
||||
- **Docker to the Core**: Runs all servers in isolated Docker containers.
|
||||
- **Free & Open Source**: Fully open source under a MIT license.
|
||||
- **User Friendly**: Intuitive interface for easy management.
|
||||
- **Scalable**: Suitable for hosting companies and personal use.
|
||||
|
||||
## Installation Guides
|
||||
|
||||
### Panel Installation
|
||||
- **Current Version**: 1.11
|
||||
- **Getting Started**: Includes webserver configuration, additional configuration, updating, and troubleshooting.
|
||||
|
||||
### Wings Installation
|
||||
- **Current Version**: 1.11
|
||||
- **Installation**: Instructions for installing, upgrading, and migrating to Wings.
|
||||
|
||||
### Webserver Configuration
|
||||
- Prepare SSL certificates before configuring NGINX or Apache.
|
||||
- Use Caddy for automatic SSL management if needed.
|
||||
- Specific configurations provided for NGINX and Apache.
|
||||
|
||||
## Community Guides and Tutorials
|
||||
|
||||
### Creating a New Node
|
||||
- **Location Information Required**: Name, description, location, FQDN, SSL communication, server directory, memory, and disk space allocations.
|
||||
- **Installation**: Install the Daemon and configure the node.
|
||||
|
||||
### Creating a Custom Docker Image
|
||||
- **Dockerfile Creation**: Use Alpine Linux, install dependencies, create a container user, and set the work directory and entrypoint.
|
||||
- **Entrypoint Script**: Modify startup commands and run the server.
|
||||
|
||||
### Creating a Custom Egg
|
||||
- **Service Creation**: Create new options, configure process management, stop commands, log storage, and configuration files.
|
||||
- **Variables**: Define specific variables and permissions for users.
|
||||
|
||||
## Operating System Specific Installations
|
||||
|
||||
### Enterprise Linux 8 and Fedora Server 40
|
||||
- **Dependencies**: Install Docker and configure firewall.
|
||||
- **Wings Installation**: Follow official documentation.
|
||||
|
||||
### Debian 11, 12 & 13
|
||||
- **Dependencies**: Install PHP, MariaDB, Redis, and other necessary packages.
|
||||
- **Installation**: Follow official documentation for further steps.
|
||||
|
||||
### CentOS 7
|
||||
- **Dependencies**: Install Docker, configure SELinux, and set up the firewall.
|
||||
- **Panel Installation**: Follow official documentation for further steps.
|
||||
|
||||
## Advanced Configurations
|
||||
|
||||
### Using Mounts
|
||||
- **Configuration**: Specify mountable directories in the Wings configuration.
|
||||
- **Panel Setup**: Configure mounts in the admin panel for server use.
|
||||
|
||||
### Upgrading PHP
|
||||
- **Version Requirements**: Reference table for PHP versions by panel version.
|
||||
- **Installation**: Commands to add repositories and install PHP 8.3.
|
||||
|
||||
## Development and Customization
|
||||
|
||||
### Building Wings
|
||||
- **Build Requirements**: Requires Go programming knowledge.
|
||||
- **Process**: Compile Wings and install the binary.
|
||||
|
||||
### Building Panel Assets
|
||||
- **Dependencies**: NodeJS and Yarn required.
|
||||
- **Build Process**: Rebuild the Panel frontend using Yarn.
|
||||
|
||||
## Legacy Upgrades
|
||||
- **Version Transition**: Guide for upgrading from 0.7.X to 1.3.x.
|
||||
- **Maintenance Mode**: Enter maintenance mode before upgrading dependencies.
|
||||
|
||||
## Kernel Modifications
|
||||
- **Update Process**: Install new kernels and update GRUB.
|
||||
- **Verification**: Confirm kernel installation and set default boot.
|
||||
|
||||
For more detailed information and additional sections, please refer to the official Pterodactyl documentation and community guides.
|
||||
```
|
||||
|
||||
```markdown
|
||||
# Pterodactyl Knowledge Base
|
||||
|
||||
This structured knowledge base provides detailed instructions and information for installing, configuring, and troubleshooting Pterodactyl Panel and related components.
|
||||
|
||||
## Table of Contents
|
||||
|
||||
- [Installation](#installation)
|
||||
- [Download Files](#download-files)
|
||||
- [Installation Process](#installation-process)
|
||||
- [Environment Configuration](#environment-configuration)
|
||||
- [Queue Listeners](#queue-listeners)
|
||||
- [Enterprise Linux 8 and Fedora Server 40](#enterprise-linux-8-and-fedora-server-40)
|
||||
- [Install Dependencies](#install-dependencies)
|
||||
- [PHP Configuration](#php-configuration)
|
||||
- [Additional Configuration](#additional-configuration)
|
||||
- [Backups](#backups)
|
||||
- [Reverse Proxy Setup](#reverse-proxy-setup)
|
||||
- [reCAPTCHA](#recaptcha)
|
||||
- [Telemetry](#telemetry)
|
||||
- [Updating the Panel](#updating-the-panel)
|
||||
- [Panel Version Requirements](#panel-version-requirements)
|
||||
- [Manual Upgrade](#manual-upgrade)
|
||||
- [Standalone SFTP Server](#standalone-sftp-server)
|
||||
- [Webserver Configuration](#webserver-configuration)
|
||||
- [Community Standards](#community-standards)
|
||||
- [Terminology](#terminology)
|
||||
- [Migrating to Wings](#migrating-to-wings)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [About](#about)
|
||||
- [Core Project Team](#core-project-team)
|
||||
- [Sponsors](#sponsors)
|
||||
- [License](#license)
|
||||
- [Creating SSL Certificates](#creating-ssl-certificates)
|
||||
|
||||
## Installation
|
||||
|
||||
### Download Files
|
||||
|
||||
1. **Create Directory**: Create a directory for the panel and navigate to it.
|
||||
```bash
|
||||
mkdir -p /var/www/pterodactyl
|
||||
cd /var/www/pterodactyl
|
||||
```
|
||||
|
||||
2. **Download Panel Files**: Use `curl` to download the panel files and set permissions.
|
||||
```bash
|
||||
curl -Lo panel.tar.gz https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz
|
||||
tar -xzvf panel.tar.gz
|
||||
chmod -R 755 storage/* bootstrap/cache/
|
||||
```
|
||||
|
||||
### Installation Process
|
||||
|
||||
1. **Database Setup**: Create a database and user with the necessary permissions.
|
||||
```sql
|
||||
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'yourPassword';
|
||||
CREATE DATABASE panel;
|
||||
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1' WITH GRANT OPTION;
|
||||
```
|
||||
|
||||
2. **Install Core Dependencies**: Copy environment settings and install dependencies.
|
||||
```bash
|
||||
cp .env.example .env
|
||||
COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev --optimize-autoloader
|
||||
```
|
||||
|
||||
3. **Generate Encryption Key**: Generate a new encryption key.
|
||||
```bash
|
||||
php artisan key:generate --force
|
||||
```
|
||||
|
||||
4. **Environment Setup**: Configure sessions, caching, and email sending.
|
||||
```bash
|
||||
php artisan p:environment:setup
|
||||
php artisan p:environment:database
|
||||
php artisan p:environment:mail
|
||||
```
|
||||
|
||||
5. **Database Migration**: Set up the database tables.
|
||||
```bash
|
||||
php artisan migrate --seed --force
|
||||
```
|
||||
|
||||
6. **Create Admin User**: Create an administrative user.
|
||||
```bash
|
||||
php artisan p:user:make
|
||||
```
|
||||
|
||||
7. **Set File Permissions**: Set the correct permissions for the webserver.
|
||||
```bash
|
||||
chown -R www-data:www-data /var/www/pterodactyl/*
|
||||
```
|
||||
|
||||
### Queue Listeners
|
||||
|
||||
- **Crontab Configuration**: Add a cronjob for processing tasks.
|
||||
```bash
|
||||
* * * * * php /var/www/pterodactyl/artisan schedule:run >> /dev/null 2>&1
|
||||
```
|
||||
|
||||
- **Queue Worker**: Create a systemd worker for the queue process.
|
||||
|
||||
## Enterprise Linux 8 and Fedora Server 40
|
||||
|
||||
### Install Dependencies
|
||||
|
||||
1. **Update System**:
|
||||
```bash
|
||||
sudo dnf update -y
|
||||
```
|
||||
|
||||
2. **Install Repositories**:
|
||||
```bash
|
||||
sudo dnf install -y epel-release
|
||||
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
|
||||
```
|
||||
|
||||
3. **Enable PHP 8.3**:
|
||||
```bash
|
||||
sudo dnf module reset php
|
||||
sudo dnf module enable php:remi-8.3 -y
|
||||
```
|
||||
|
||||
4. **Install Dependencies**:
|
||||
```bash
|
||||
sudo dnf install -y php php-{common,cli,gd,mysql,mbstring,bcmath,xml,fpm,curl,zip} mariadb mariadb-server nginx redis zip unzip tar
|
||||
```
|
||||
|
||||
5. **Enable Services**:
|
||||
```bash
|
||||
sudo systemctl enable --now mariadb nginx redis
|
||||
```
|
||||
|
||||
6. **Firewall Configuration**:
|
||||
```bash
|
||||
sudo firewall-cmd --add-service=http --permanent
|
||||
sudo firewall-cmd --add-service=https --permanent
|
||||
sudo firewall-cmd --reload
|
||||
```
|
||||
|
||||
### PHP Configuration
|
||||
|
||||
- **Create PHP-FPM Configuration**:
|
||||
```ini
|
||||
[pterodactyl]
|
||||
user = nginx
|
||||
group = nginx
|
||||
listen = /var/run/php-fpm/pterodactyl.sock
|
||||
listen.owner = nginx
|
||||
listen.group = nginx
|
||||
listen.mode = 0750
|
||||
pm = ondemand
|
||||
pm.max_children = 9
|
||||
pm.process_idle_timeout = 10s
|
||||
pm.max_requests = 200
|
||||
```
|
||||
|
||||
- **Start PHP-FPM**:
|
||||
```bash
|
||||
sudo systemctl enable --now php-fpm
|
||||
```
|
||||
|
||||
## Additional Configuration
|
||||
|
||||
### Backups
|
||||
|
||||
- **Local Backups**: Set the backup driver in `.env`.
|
||||
```env
|
||||
APP_BACKUP_DRIVER=wings
|
||||
```
|
||||
|
||||
- **S3 Backups**: Configure S3 settings in `.env`.
|
||||
```env
|
||||
APP_BACKUP_DRIVER=s3
|
||||
AWS_DEFAULT_REGION=
|
||||
AWS_ACCESS_KEY_ID=
|
||||
AWS_SECRET_ACCESS_KEY=
|
||||
AWS_BACKUPS_BUCKET=
|
||||
AWS_ENDPOINT=
|
||||
```
|
||||
|
||||
### Reverse Proxy Setup
|
||||
|
||||
- **Modify `.env` for Proxies**:
|
||||
```env
|
||||
TRUSTED_PROXIES=127.0.0.1
|
||||
```
|
||||
|
||||
- **NGINX Configuration**:
|
||||
```nginx
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
```
|
||||
|
||||
### reCAPTCHA
|
||||
|
||||
- **Configuring reCAPTCHA**: Generate and apply your own keys in the admin panel.
|
||||
|
||||
- **Disable reCAPTCHA**: Use the admin panel to disable reCAPTCHA if necessary.
|
||||
|
||||
### Telemetry
|
||||
|
||||
- **How It Works**: Telemetry collects anonymous usage data to help improve the software.
|
||||
|
||||
- **Enabling/Disabling Telemetry**:
|
||||
```env
|
||||
PTERODACTYL_TELEMETRY_ENABLED=true
|
||||
```
|
||||
|
||||
## Updating the Panel
|
||||
|
||||
### Panel Version Requirements
|
||||
|
||||
- Ensure your Wings version matches the Panel version. Supported PHP versions vary by Panel version.
|
||||
|
||||
### Manual Upgrade
|
||||
|
||||
1. **Enter Maintenance Mode**:
|
||||
```bash
|
||||
php artisan down
|
||||
```
|
||||
|
||||
2. **Download Update**:
|
||||
```bash
|
||||
curl -L https://github.com/pterodactyl/panel/releases/latest/download/panel.tar.gz | tar -xzv
|
||||
```
|
||||
|
||||
3. **Update Dependencies**:
|
||||
```bash
|
||||
composer install --no-dev --optimize-autoloader
|
||||
```
|
||||
|
||||
4. **Clear Cache**:
|
||||
```bash
|
||||
php artisan view:clear
|
||||
php artisan config:clear
|
||||
```
|
||||
|
||||
5. **Database Updates**:
|
||||
```bash
|
||||
php artisan migrate --seed --force
|
||||
```
|
||||
|
||||
6. **Set Permissions**:
|
||||
```bash
|
||||
chown -R www-data:www-data /var/www/pterodactyl/*
|
||||
```
|
||||
|
||||
7. **Restart Queue Workers**:
|
||||
```bash
|
||||
php artisan queue:restart
|
||||
```
|
||||
|
||||
8. **Exit Maintenance Mode**:
|
||||
```bash
|
||||
php artisan up
|
||||
```
|
||||
|
||||
## Standalone SFTP Server
|
||||
|
||||
- **Disable Daemon's SFTP**: Modify your Daemon's `core.json`.
|
||||
```json
|
||||
"sftp": {
|
||||
"enabled": false
|
||||
}
|
||||
```
|
||||
|
||||
- **Download and Start Standalone Server**:
|
||||
```bash
|
||||
curl -Lo sftp-server https://github.com/pterodactyl/sftp-server/releases/download/v1.0.5/sftp-server
|
||||
chmod +x sftp-server
|
||||
./sftp-server
|
||||
```
|
||||
|
||||
## Webserver Configuration
|
||||
|
||||
- **Remove Default Configuration**: Remove default NGINX configuration.
|
||||
```bash
|
||||
rm /etc/nginx/sites-enabled/default
|
||||
```
|
||||
|
||||
- **Create NGINX Configuration File**: Replace `<domain>` with your domain.
|
||||
```nginx
|
||||
server {
|
||||
listen 80;
|
||||
server_name <domain>;
|
||||
return 301 https://$server_name$request_uri;
|
||||
}
|
||||
```
|
||||
|
||||
- **Enable Configuration**: Symlink and restart NGINX.
|
||||
```bash
|
||||
sudo ln -s /etc/nginx/sites-available/pterodactyl.conf /etc/nginx/sites-enabled/pterodactyl.conf
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
## Community Standards
|
||||
|
||||
- **Be Mature**: Maintain maturity and respect in all interactions.
|
||||
|
||||
- **Limit Drama**: Avoid negative discussions about others.
|
||||
|
||||
- **Be Patient**: Understand that support is community-driven and voluntary.
|
||||
|
||||
- **Commercial Services**: Avoid discussing paid services unless noted.
|
||||
|
||||
## Terminology
|
||||
|
||||
- **Panel**: The Pterodactyl Panel itself.
|
||||
- **Node**: A machine running an instance of Wings.
|
||||
- **Wings**: Service interfacing with Docker and the Panel.
|
||||
- **Server**: A running instance created by the panel.
|
||||
- **Docker**: Platform for running containerized applications.
|
||||
- **Nest/Egg**: Configuration for specific games or services.
|
||||
|
||||
## Migrating to Wings
|
||||
|
||||
1. **Install Wings**:
|
||||
```bash
|
||||
mkdir -p /etc/pterodactyl
|
||||
curl -L -o /usr/local/bin/wings https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_amd64
|
||||
chmod u+x /usr/local/bin/wings
|
||||
```
|
||||
|
||||
2. **Copy Configuration File**: Create `config.yml` in `/etc/pterodactyl`.
|
||||
|
||||
3. **Remove Old Daemon**:
|
||||
```bash
|
||||
systemctl stop wings
|
||||
rm -rf /srv/daemon
|
||||
apt -y remove nodejs
|
||||
```
|
||||
|
||||
4. **Daemonize Wings**: Update `wings.service` and start Wings.
|
||||
```systemd
|
||||
[Unit]
|
||||
Description=Pterodactyl Wings Daemon
|
||||
After=docker.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=/etc/pterodactyl
|
||||
ExecStart=/usr/local/bin/wings
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Reading Error Logs
|
||||
|
||||
- **Retrieve Logs**:
|
||||
```bash
|
||||
tail -n 100 /var/www/pterodactyl/storage/logs/laravel-$(date +%F).log
|
||||
```
|
||||
|
||||
- **Understand Errors**: Focus on the human-readable exception line.
|
||||
|
||||
### Cannot Connect to Server Errors
|
||||
|
||||
- **Check Wings Status**:
|
||||
```bash
|
||||
systemctl status wings
|
||||
```
|
||||
|
||||
- **Browser Console Check**: Use developer tools to inspect errors.
|
||||
|
||||
### Invalid MAC Exception
|
||||
|
||||
- **Restore `APP_KEY`**: Ensure original `APP_KEY` is restored from `.env`.
|
||||
|
||||
### SELinux Issues
|
||||
|
||||
- **Allow Redis**:
|
||||
```bash
|
||||
audit2allow -a -M redis_t
|
||||
semodule -i redis_t.pp
|
||||
```
|
||||
|
||||
- **Allow HTTP Port**:
|
||||
```bash
|
||||
audit2allow -a -M http_port_t
|
||||
semodule -i http_port_t.pp
|
||||
```
|
||||
|
||||
## About
|
||||
|
||||
### Core Project Team
|
||||
|
||||
- **Dane Everitt**: Founder & Former Project Maintainer
|
||||
- **Matthew Penner**: Project Maintainer
|
||||
- **Stepan Fedotov**: WHMCS Module Maintainer
|
||||
- **Michael Parker**: Egg Developer, Docker Integration
|
||||
|
||||
### Sponsors
|
||||
|
||||
- **Aussie Server Hosts**: High Performance Server Hosting
|
||||
- **CodeNode LLC**: Affordable hosting with dedicated IPs
|
||||
- **BisectHosting**: Reliable server hosting since 2012
|
||||
- **MineStrator**: Highend French hosting company
|
||||
- **HostEZ**: US & EU Hosting with DDoS Protection
|
||||
|
||||
### License
|
||||
|
||||
- **MIT License**: Code released under the MIT License.
|
||||
|
||||
## Creating SSL Certificates
|
||||
|
||||
1. **Install Certbot**:
|
||||
```bash
|
||||
sudo apt update
|
||||
sudo apt install -y certbot python3-certbot-nginx
|
||||
```
|
||||
|
||||
2. **Generate Certificate**:
|
||||
```bash
|
||||
certbot certonly --nginx -d example.com
|
||||
```
|
||||
|
||||
3. **Auto Renewal**:
|
||||
```bash
|
||||
0 23 * * * certbot renew --quiet --deploy-hook "systemctl restart nginx"
|
||||
```
|
||||
|
||||
4. **Troubleshooting**: Renew certificates and restart services if expired.
|
||||
```bash
|
||||
certbot renew
|
||||
systemctl restart nginx
|
||||
```
|
||||
```
|
||||
|
||||
```markdown
|
||||
# Knowledge Base
|
||||
|
||||
## Reconfiguring Caddy to Use Cloudflare DNS
|
||||
|
||||
### Steps to Create an API Token
|
||||
1. Under **Zone Resources**, select your DNS zone.
|
||||
2. Click "Continue to summary".
|
||||
3. Review the API token summary and click "Create Token".
|
||||
4. Copy the API token to the clipboard.
|
||||
|
||||
### Configuring Caddy
|
||||
- Create an environment variable file (e.g., `.env`) at `/etc/caddy/.secrets.env`.
|
||||
- Store the Cloudflare API token:
|
||||
```env
|
||||
CLOUDFLARE_API_TOKEN=<your cloudflare api token>
|
||||
```
|
||||
- Set permissions to 0600 for security:
|
||||
```bash
|
||||
chown caddy:caddy /etc/caddy/.secrets.env
|
||||
chmod 0600 /etc/caddy/.secrets.env
|
||||
```
|
||||
- Modify the systemd unit file at `/etc/systemd/system/caddy.service`:
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Caddy
|
||||
Documentation=https://caddyserver.com/docs/
|
||||
After=network.target network-online.target
|
||||
Requires=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=notify
|
||||
User=caddy
|
||||
Group=caddy
|
||||
ExecStart=/usr/bin/caddy run --environ --envfile /etc/caddy/.secrets.env --config /etc/caddy/Caddyfile
|
||||
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
|
||||
TimeoutStopSec=5s
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=512
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
AmbientCapabilities=CAP_NET_BIND_SERVICE
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
- Add a TLS block to your Caddyfile at `/etc/caddy/Caddyfile`:
|
||||
```caddyfile
|
||||
<domain> {
|
||||
# ...
|
||||
tls {
|
||||
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Installing Wings | Pterodactyl
|
||||
|
||||
### Overview
|
||||
- Wings is the next-generation server control plane from Pterodactyl.
|
||||
|
||||
### Supported Systems
|
||||
- **Ubuntu**: 20.04, 22.04, 24.04
|
||||
- **RHEL / Rocky Linux / AlmaLinux**: 8, 9
|
||||
- **Debian**: 11, 12, 13
|
||||
- **Windows**: Not supported
|
||||
|
||||
### System Requirements
|
||||
- Requires Linux capable of running Docker containers.
|
||||
- KVM is guaranteed to work.
|
||||
- Check virtualization with `systemd-detect-virt`.
|
||||
|
||||
### Installing Docker
|
||||
- Quick install:
|
||||
```bash
|
||||
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
|
||||
```
|
||||
- Ensure Docker starts on boot:
|
||||
```bash
|
||||
sudo systemctl enable --now docker
|
||||
```
|
||||
|
||||
### Setting Up Swap
|
||||
- For kernels 6.1 or newer, swap is enabled by default.
|
||||
- Enable swap:
|
||||
```bash
|
||||
GRUB_CMDLINE_LINUX_DEFAULT="swapaccount=1"
|
||||
sudo update-grub
|
||||
sudo reboot
|
||||
```
|
||||
|
||||
### Installing Wings
|
||||
- Create directory structure and download Wings:
|
||||
```bash
|
||||
sudo mkdir -p /etc/pterodactyl
|
||||
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
|
||||
sudo chmod u+x /usr/local/bin/wings
|
||||
```
|
||||
|
||||
### Configure and Start Wings
|
||||
- Create a node on the Panel and configure with `config.yml`.
|
||||
- Start Wings in debug mode:
|
||||
```bash
|
||||
sudo wings --debug
|
||||
```
|
||||
|
||||
### Daemonizing Wings
|
||||
- Create `wings.service` in `/etc/systemd/system`:
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Pterodactyl Wings Daemon
|
||||
After=docker.service
|
||||
Requires=docker.service
|
||||
PartOf=docker.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
WorkingDirectory=/etc/pterodactyl
|
||||
LimitNOFILE=4096
|
||||
PIDFile=/var/run/wings/daemon.pid
|
||||
ExecStart=/usr/local/bin/wings
|
||||
Restart=on-failure
|
||||
StartLimitInterval=180
|
||||
StartLimitBurst=30
|
||||
RestartSec=5s
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
- Enable and start Wings:
|
||||
```bash
|
||||
sudo systemctl enable --now wings
|
||||
```
|
||||
|
||||
### Node Allocations
|
||||
- Create allocations via Nodes > Allocation.
|
||||
- Avoid using 127.0.0.1 for allocations.
|
||||
|
||||
## Introduction to Pterodactyl
|
||||
|
||||
### Overview
|
||||
- Pterodactyl is an open-source game server management panel.
|
||||
- Built with PHP, React, and Go.
|
||||
- Uses Docker containers for game server isolation.
|
||||
|
||||
### Supported Games
|
||||
- Minecraft, Rust, Terraria, Team Fortress 2, and more.
|
||||
- Community-supported games include Factorio, FiveM, and others.
|
||||
|
||||
### Responsible Disclosure
|
||||
- Open-source and open to security audits.
|
||||
- Report concerns to [email protected].
|
||||
|
||||
## Upgrading Wings
|
||||
|
||||
### Overview
|
||||
- Upgrading Wings is simple and quick.
|
||||
|
||||
### Version Requirements
|
||||
- Panel and Wings versions must match.
|
||||
|
||||
### Steps to Upgrade
|
||||
1. Stop Wings:
|
||||
```bash
|
||||
systemctl stop wings
|
||||
```
|
||||
2. Download the updated binary:
|
||||
```bash
|
||||
curl -L -o /usr/local/bin/wings "https://github.com/pterodactyl/wings/releases/latest/download/wings_linux_$([[ "$(uname -m)" == "x86_64" ]] && echo "amd64" || echo "arm64")"
|
||||
chmod u+x /usr/local/bin/wings
|
||||
```
|
||||
3. Restart Wings:
|
||||
```bash
|
||||
systemctl restart wings
|
||||
```
|
||||
|
||||
## Setting up MySQL for Pterodactyl
|
||||
|
||||
### Creating a Database for Pterodactyl
|
||||
- Login to MySQL:
|
||||
```bash
|
||||
mysql -u root -p
|
||||
```
|
||||
- Create a user and database:
|
||||
```sql
|
||||
CREATE USER 'pterodactyl'@'127.0.0.1' IDENTIFIED BY 'somePassword';
|
||||
CREATE DATABASE panel;
|
||||
GRANT ALL PRIVILEGES ON panel.* TO 'pterodactyl'@'127.0.0.1';
|
||||
```
|
||||
|
||||
### Creating a Database Host for Nodes
|
||||
- Create a MySQL user with permissions:
|
||||
```sql
|
||||
CREATE USER 'pterodactyluser'@'127.0.0.1' IDENTIFIED BY 'somepassword';
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'pterodactyluser'@'127.0.0.1' WITH GRANT OPTION;
|
||||
```
|
||||
- Allow external database access by modifying `my.cnf`:
|
||||
```ini
|
||||
[mysqld]
|
||||
bind-address=0.0.0.0
|
||||
```
|
||||
|
||||
## Additional Configuration for Pterodactyl
|
||||
|
||||
### Private Registries
|
||||
- Authenticate against private Docker registries.
|
||||
|
||||
### Custom Network Interfaces
|
||||
- Change network interface for containers.
|
||||
|
||||
### Enabling Cloudflare Proxy
|
||||
- Adjust Wings port for Cloudflare proxy.
|
||||
|
||||
### Container PID Limit
|
||||
- Set the limit for active processes in a container.
|
||||
|
||||
### Throttles and Limits
|
||||
- Customize throttle settings for server output.
|
||||
|
||||
### Installer Limits
|
||||
- Define resource limits for installer containers.
|
||||
|
||||
### Other Values
|
||||
- Configure miscellaneous settings such as debug mode and timeout.
|
||||
```
|
||||
Reference in New Issue
Block a user