Getting Started with GShellPack: Installation to Advanced Use
What GShellPack is
GShellPack is a command-line toolkit that automates game-server tasks: installation, configuration, plugin management, backups, and deployment workflows. It wraps common server operations into reproducible scripts and commands so administrators can manage multiple servers more efficiently.
Quick prerequisites
- Linux-based server (Ubuntu/Debian or CentOS/RHEL recommended)
- SSH access and sudo privileges
- Java, Node.js, or other runtime as required by the specific game server (check the game’s requirements)
- Basic familiarity with shell commands
Installation (assume Ubuntu/Debian)
- Update packages:
bash
sudo apt update && sudo apt upgrade -y - Install prerequisites (example: curl, unzip, git):
bash
sudo apt install -y curl unzip git - Download GShellPack (assume GitHub release):
bash
curl -Lo gshellpack.tar.gz https://example.com/gshellpack/latest.tar.gztar -xzf gshellpack.tar.gzsudo mv gshellpack /opt/gshellpack - Create a symlink for the CLI:
bash
sudo ln -s /opt/gshellpack/gshellpack.sh /usr/local/bin/gshellpacksudo chmod +x /usr/local/bin/gshellpack - Verify install:
bash
gshellpack –version
Basic configuration
- Initialize a config for a server:
bash
gshellpack init –name myserver –path /srv/game/myserver - Edit the generated config file (/srv/game/myserver/config.yml) to set:
- server jar/path
- memory limits
- auto-restart policy
- plugin list and sources
- Start server:
bash
gshellpack start myserver - Check logs:
bash
gshellpack logs myserver –follow
Common tasks
- Deploy an update:
bash
gshellpack deploy myserver –from /tmp/update.zip - Install a plugin:
bash
gshellpack plugin install myserver plugin-name –source url_or_repo - Create a backup:
bash
gshellpack backup create myserver –dest /backups/myserver-\((date +%F).tar.gz</code></pre></div></div></li><li>Schedule automated backups (example using cron): <div><div>bash</div><div><div><button disabled="" title="Download file" type="button"><svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" width="14" height="14" color="currentColor"><path fill="currentColor" d="M8.375 0C8.72 0 9 .28 9 .625v9.366l2.933-2.933a.625.625 0 0 1 .884.884l-2.94 2.94c-.83.83-2.175.83-3.005 0l-2.939-2.94a.625.625 0 0 1 .884-.884L7.75 9.991V.625C7.75.28 8.03 0 8.375 0m-4.75 13.75a.625.625 0 1 0 0 1.25h9.75a.625.625 0 1 0 0-1.25z"></path></svg></button><button disabled="" title="Copy Code" type="button"><svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" width="14" height="14" color="currentColor"><path fill="currentColor" d="M11.049 5c.648 0 1.267.273 1.705.751l1.64 1.79.035.041c.368.42.571.961.571 1.521v4.585A2.31 2.31 0 0 1 12.688 16H8.311A2.31 2.31 0 0 1 6 13.688V7.312A2.31 2.31 0 0 1 8.313 5zM9.938-.125c.834 0 1.552.496 1.877 1.208a4 4 0 0 1 3.155 3.42c.082.652-.777.968-1.22.484a2.75 2.75 0 0 0-1.806-2.57A2.06 2.06 0 0 1 9.937 4H6.063a2.06 2.06 0 0 1-2.007-1.584A2.75 2.75 0 0 0 2.25 5v7a2.75 2.75 0 0 0 2.66 2.748q.054.17.123.334c.167.392-.09.937-.514.889l-.144-.02A4 4 0 0 1 1 12V5c0-1.93 1.367-3.54 3.185-3.917A2.06 2.06 0 0 1 6.063-.125zM8.312 6.25c-.586 0-1.062.476-1.062 1.063v6.375c0 .586.476 1.062 1.063 1.062h4.374c.587 0 1.063-.476 1.063-1.062V9.25h-1.875a1.125 1.125 0 0 1-1.125-1.125V6.25zM12 8h1.118L12 6.778zM6.063 1.125a.813.813 0 0 0 0 1.625h3.875a.813.813 0 0 0 0-1.625z"></path></svg></button></div></div><div><pre><code>crontab -e# add line to run daily at 03:000 3/usr/local/bin/gshellpack backup create myserver --dest /backups/daily-\)(date +%F).tar.gz
Advanced usage
- Templates and blueprints: create reusable server blueprints to provision identical environments across hosts.
bash
gshellpack blueprint create –name survival-template –config ./config.ymlgshellpack provision –blueprint survival-template –host host1.example.com - CI/CD integration: run GShellPack commands in pipeline jobs to automate deployment and rollback.
- Clustering and orchestration: use GShellPack with container orchestration (Docker + Docker Compose or Kubernetes) to scale game instances.
- Custom hooks: add pre/post-deploy hooks to run scripts (database migration, map conversion).
- Monitoring: integrate with Prometheus/Grafana via exported metrics or push logs to ELK.
Security and best practices
- Run servers under dedicated user accounts, not root.
- Keep backups off-site and test restorations.
- Limit SSH access with keys and disable password auth.
- Regularly update runtime (Java/Node) and GShellPack itself.
- Use resource limits (cgroups or systemd) to prevent runaway processes.
Troubleshooting tips
- Server won’t start: check memory settings and server jar compatibility.
- Plugin conflicts: start with an empty plugin list and add one-by-one to isolate.
- Permission errors: ensure
Leave a Reply