TulparServer® is a free, open-source, cross-platform Java Server
Create your own NurOS package repository in minutes.
🚀 High Performance
- Optimised for low‑end devices
- Requires only 128 MB RAM (plus ~256 MB for plugins)
🔄 Cross‑Platform
- Runs on any JVM (Linux, Android, macOS, Windows)
🔌 Plugin Ecosystem
- Easy plugin install/uninstall via CLI
- Auto‑discovery of plugins on startup
🛡️ Security‑First
- HTTPS support out of the box
- Role‑based access controls
# Start a server
java -jar server.jar
# Or run in Docker
docker run -p 8080:8080 nuros/tulpar-serverCreate config.json in the working directory:
{
"api": {
"config": 11
},
"server": {
"address": "0.0.0.0",
"port": 80,
"runInBackground": "true",
"maxRequests": 5,
"blockDurationMillis": 60000,
"logFile": "./ip_requests.log",
"httpsRedirect": true,
"maxDownloadsPerIP": 2,
"maxDownloadSpeed": 1048576,
"BUFFER_SIZE": 1024
},
"cli": {
"color": "bright_red",
"hello": [
"▀█▀ █░█ █░░ █▀█ ▄▀█ █▀█ ▄▄ █▀ █▀▀ █▀█ █░█ █▀▀ █▀█ ▀█ ░ █▀█",
"░█░ █▄█ █▄▄ █▀▀ █▀█ █▀▄ ░░ ▄█ ██▄ █▀▄ ▀▄▀ ██▄ █▀▄ █▄ ▄ █▄█"
]
}
}We welcome contributions! Please see our Contributing Guidelines.
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
Requirements:
- JDK 8+ (Zulu or any distribution)
- Jetty, Jansi, JNA, Gson, Jython, jna‑platform, and others
git clone https://github.com/nuros-linux/tulpar-server.git
cd tulpar-server
./gradlew clean build- ⚙️ Better CLI commands
- 📦 Official plugin registry
Q: Can I run on ARM devices?
A: Yes, any device with a compatible JVM works.
Q: What package formats and metadata are supported by default?
A: The primary package format is example.apg. The detailed structure and metadata schema are described in the APGexample repository
Q: Where are server logs stored and how can I change the log level?
A: Depending on the Tulpar Server version, logs are either in the OS temporary folder or in the program’s root directory. In some versions, you can adjust the log level in your config.json.
Q: How can I update the server to a new version without downtime?
A: An update command is planned for upcoming releases, but currently there’s no hot‑update feature—you must stop the server, deploy the new build, and restart.
Q: Can I run multiple Tulpar Server instances behind a load balancer?
A: Cluster mode and load‑balancing support will be introduced in future versions.
Q: How do I restrict access to specific packages by roles or groups?
A: Role‑based access control for packages is coming in upcoming releases.
Q: What JVM parameters can I tweak for better performance?
A: Recommended JVM arguments:
-Xms512m # initial heap size
-Xmx2g # maximum heap size
-XX:+UseG1GC # G1 Garbage Collector for low pause times
-XX\:MaxGCPauseMillis=200 # target max GC pause time
-XX\:ParallelGCThreads=<numCores> # GC thread count
-XX:+UnlockExperimentalVMOptions # enable experimental options
Replace <numCores> with your CPU core count to utilize all threads and optimize memory usage and GC pauses.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.