commit 0594ae040b2084ebf3ae5bee3879b7786840a76e Author: Refosel Date: Tue Jun 16 00:12:18 2026 +0300 init: GMod 64-bit and Stalwart Mail eggs diff --git a/README.md b/README.md new file mode 100644 index 0000000..1768786 --- /dev/null +++ b/README.md @@ -0,0 +1,27 @@ +# Pelican Eggs + +Eggs for Pelican Panel (Pterodactyl fork). + +## Available Eggs + +### Games +- **Garry's Mod 64-bit** (`games/gmod_64bit.json`) — GMod dedicated server with Steam Workshop & Git addon support + +### Applications +- **Stalwart Mail Server** (`apps/stalwart_mail.json`) — All-in-one SMTP, IMAP, JMAP, CalDAV, CardDAV mail server + +## Installation + +1. Open Pelican Admin Panel +2. Go to **Eggs → Import Egg** +3. Upload the `.json` file +4. Configure the egg variables +5. Create a server using the egg + +## Docker Images + +Built from [RefoselTeamWork/yolks](https://gitea.refoseltw.ru/RefoselTeamWork/yolks). + +## License + +MIT diff --git a/apps/stalwart_mail.json b/apps/stalwart_mail.json new file mode 100644 index 0000000..fd0cd7d --- /dev/null +++ b/apps/stalwart_mail.json @@ -0,0 +1,151 @@ +{ + "meta": { + "version": "PTDL_v2", + "description": "Stalwart Mail Server - All-in-one SMTP, IMAP, JMAP, CalDAV, CardDAV" + }, + "name": "Stalwart Mail Server", + "author": "admin@refoseltw.ru", + "description": "Stalwart Mail Server - secure, scalable all-in-one mail server with SMTP, IMAP, JMAP, CalDAV, CardDAV and built-in spam filter. Single binary, zero dependencies.", + "features": null, + "images": [ + { + "image": "gitea.refoseltw.ru/RefoselTeamWork/yolks:stalwart", + "meta": { + "ghcr_enabled": false, + "ghcr_organization": "", + "ghcr_repo": "" + } + } + ], + "file_denylist": [], + "startup": "/home/container/stalwart-mail/bin/stalwart-mail --config /home/container/stalwart-mail/config.toml", + "script": { + "container": "gitea.refoseltw.ru/RefoselTeamWork/installers:debian", + "entrypoint": "bash", + "extends": "" + }, + "config": { + "files": "{}", + "stop": "^C", + "logs": "{}", + "startup": { + "done": "listening on" + }, + "professionally": false + }, + "allocator": 0, + "tags": [ + "mail", + "smtp", + "imap", + "jmap", + "caldav", + "carddav", + "email" + ], + "credits": "RefoselTeam", + "update_url": "", + "force_outgoing_ip": false, + "remove_old_files": false, + "variables": [ + { + "name": "Mail Domain", + "description": "Your mail domain (e.g. mail.example.com). This is the FQDN for the mail server.", + "env_variable": "MAIL_DOMAIN", + "default_value": "mail.example.com", + "user_viewable": true, + "user_editable": true, + "rules": "required|fqdn" + }, + { + "name": "Mail Hostname", + "description": "Server hostname (FQDN). Usually same as mail domain.", + "env_variable": "MAIL_HOSTNAME", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|fqdn" + }, + { + "name": "Admin Email", + "description": "Email address for the admin account.", + "env_variable": "ADMIN_EMAIL", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|email" + }, + { + "name": "Admin Password", + "description": "Password for the admin account. If empty, a random password will be generated.", + "env_variable": "ADMIN_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:8,128" + }, + { + "name": "HTTP Port", + "description": "Port for the web admin panel.", + "env_variable": "HTTP_PORT", + "default_value": "8080", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:1024,65535" + }, + { + "name": "SMTP Port", + "description": "Port for SMTPS (SSL/TLS).", + "env_variable": "SMTP_PORT", + "default_value": "465", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1,65535" + }, + { + "name": "Submission Port", + "description": "Port for SMTP Submission (STARTTLS).", + "env_variable": "SUBMISSION_PORT", + "default_value": "587", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1,65535" + }, + { + "name": "IMAP Port", + "description": "Port for IMAPS (SSL/TLS).", + "env_variable": "IMAP_PORT", + "default_value": "993", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1,65535" + }, + { + "name": "ManageSieve Port", + "description": "Port for ManageSieve.", + "env_variable": "MANAGESIEVE_PORT", + "default_value": "4190", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:1,65535" + }, + { + "name": "Git Repositories", + "description": "Comma-separated list of Git repo URLs to clone into plugins/ (for custom configs, filters, etc).", + "env_variable": "GIT_REPOS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:0,1024" + }, + { + "name": "Timezone", + "description": "Server timezone.", + "env_variable": "TZ", + "default_value": "UTC", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|between:1,64" + } + ] +} diff --git a/games/gmod_64bit.json b/games/gmod_64bit.json new file mode 100644 index 0000000..14e8428 --- /dev/null +++ b/games/gmod_64bit.json @@ -0,0 +1,177 @@ +{ + "meta": { + "version": "PTDL_v2", + "description": "Garry's Mod Dedicated Server (64-bit) with Steam Workshop & Git support" + }, + "name": "Garry's Mod 64-bit", + "author": "admin@refoseltw.ru", + "description": "Garry's Mod Dedicated Server running in 64-bit mode with Steam Workshop and Git addon loading support.", + "features": null, + "images": [ + { + "image": "gitea.refoseltw.ru/RefoselTeamWork/yolks:latest", + "meta": { + "ghcr_enabled": false, + "ghcr_organization": "", + "ghcr_repo": "" + } + } + ], + "file_denylist": [ + "server.cfg" + ], + "startup": "/home/container/server/srcds_run -game garrysmod +map {{SRCDS_MAP}} +maxplayers {{SRCDS_MAX_PLAYERS}} -port {{SERVER_PORT}} -tickrate {{SRCDS_TICKRATE}} +ip 0.0.0.0 -autoupdate +gamemode {{SRCDS_GAMEMODE}}", + "script": { + "container": "gitea.refoseltw.ru/RefoselTeamWork/installers:debian", + "entrypoint": "bash", + "extends": "" + }, + "config": { + "files": "{}", + "stop": "quit", + "logs": "{}", + "startup": { + "done": "VAC secure mode is activated." + }, + "professionally": false + }, + "allocator": 0, + "tags": [ + "gmod", + "garrys-mod", + "source-engine", + "64bit" + ], + "credits": "RefoselTeam", + "update_url": "", + "force_outgoing_ip": false, + "remove_old_files": false, + "variables": [ + { + "name": "Hostname", + "description": "The hostname of the server.", + "env_variable": "SRCDS_HOSTNAME", + "default_value": "Garry's Mod Server", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|between:1,64" + }, + { + "name": "Server Password", + "description": "Password to join the server. Leave empty for no password.", + "env_variable": "SRCDS_PASSWORD", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:0,32" + }, + { + "name": "RCON Password", + "description": "Remote console password. Change this!", + "env_variable": "SRCDS_RCON_PASSWORD", + "default_value": "changeme", + "user_viewable": false, + "user_editable": true, + "rules": "required|string|between:1,32" + }, + { + "name": "Gamemode", + "description": "The gamemode to use (sandbox, darkrp, etc).", + "env_variable": "SRCDS_GAMEMODE", + "default_value": "sandbox", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|between:1,32" + }, + { + "name": "Map", + "description": "The starting map for the server.", + "env_variable": "SRCDS_MAP", + "default_value": "gm_flatgrass", + "user_viewable": true, + "user_editable": true, + "rules": "required|string|between:1,32" + }, + { + "name": "Max Players", + "description": "Maximum number of players allowed.", + "env_variable": "SRCDS_MAX_PLAYERS", + "default_value": "16", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:1,128" + }, + { + "name": "Tickrate", + "description": "Server tickrate (66 or 128 recommended).", + "env_variable": "SRCDS_TICKRATE", + "default_value": "66", + "user_viewable": true, + "user_editable": true, + "rules": "required|integer|between:33,128" + }, + { + "name": "Region", + "description": "Server region (255 = global, 0 = US East, 1 = US West, 2 = South America, 3 = Europe, 4 = Asia, 5 = Australia, 6 = Middle East, 7 = Africa).", + "env_variable": "SRCDS_REGION", + "default_value": "255", + "user_viewable": true, + "user_editable": false, + "rules": "required|integer|between:0,255" + }, + { + "name": "Workshop Collection ID", + "description": "Steam Workshop collection ID to auto-load on startup.", + "env_variable": "SRCDS_WORKSHOP_COLLECTION", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:0,64" + }, + { + "name": "Git Repositories", + "description": "Comma-separated list of Git repo URLs to clone into addons/ (e.g. https://github.com/user/repo.git,https://gitlab.com/user/repo2.git).", + "env_variable": "GIT_REPOS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:0,1024" + }, + { + "name": "Steam Beta Branch", + "description": "Steam beta branch to use. Leave empty for default.", + "env_variable": "SRCDS_BETAID", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:0,64" + }, + { + "name": "Beta Password", + "description": "Password for the beta branch.", + "env_variable": "SRCDS_BETAPASS", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|string|between:0,64" + }, + { + "name": "Auto Update", + "description": "Automatically update the server on restart (1 = yes, 0 = no).", + "env_variable": "AUTO_UPDATE", + "default_value": "1", + "user_viewable": true, + "user_editable": true, + "rules": "required|boolean" + }, + { + "name": "Validate Files", + "description": "Validate server files on update (1 = yes, 0 = no).", + "env_variable": "VALIDATE", + "default_value": "", + "user_viewable": true, + "user_editable": true, + "rules": "nullable|boolean" + } + ] +}