forged-eggs/aio/forge_aio/egg-forge-aio.json

43 lines
41 KiB
JSON
Raw Normal View History

{
"_comment": "Forge AIO — The Ultimate All-in-One Egg",
"meta": {
"version": "PTDL_v2",
"update_url": null
},
"exported_at": "2026-05-19T00:00:00+00:00",
"name": "Forge AIO",
"author": "admin@forged.james.gg",
"description": "The ultimate all-in-one egg. Interactive setup wizard on first boot lets you pick exactly what to run — game servers (SteamCMD), bots, websites, databases, language runtimes, or fully custom apps. Auto-installs everything. Reconfigure anytime with 'forgeaio setup'.",
"features": null,
"docker_images": {
"Forge AIO (Debian)": "ghcr.io/parkervcp/yolks:debian"
},
"file_denylist": [],
"startup": "bash /home/container/.forge-aio/entrypoint.sh",
"config": {
"files": "{}",
"startup": "{\r\n \"done\": [\r\n \"[Forge AIO] Service is running\",\r\n \"[Forge AIO] Ready\"\r\n ]\r\n}",
"logs": "{}",
"stop": "^^C"
},
"scripts": {
"installation": {
"script": "#!/bin/bash\n## Forge AIO — Install Script\n## This runs ONCE inside the installer container at /mnt/server\n\nset -e\napt update -y\napt install -y curl wget git jq unzip tar xz-utils ca-certificates gnupg lsb-release \\\n build-essential gcc g++ make cmake python3 python3-pip python3-venv \\\n lib32gcc-s1 lib32stdc++6 software-properties-common file procps\n\nmkdir -p /mnt/server/.forge-aio\n\n## ─── Entrypoint Script ───────────────────────────────────────────────────────\ncat > /mnt/server/.forge-aio/entrypoint.sh << 'ENTRYPOINT_EOF'\n#!/bin/bash\n# ______ _ _____ ____\n# | ____| / \\ |_ _|/ __ \\\n# | |__ ___ _ __ __ _ ___ / _ \\ | | | | | |\n# | __/ _ \\| '__/ _` |/ _ \\ / ___ \\ | | | | | |\n# | | | (_) | | | (_| | __/ /_/ \\_\\_|_| \\____/\n# |_| \\___/|_| \\__, |\\___|\n# |___/\n# The Ultimate All-In-One Server Egg\n\nCONFIG_FILE=\"/home/container/.forge-aio/config.json\"\nLOG_PREFIX=\"[Forge AIO]\"\nVERSION=\"2.0.0\"\n\nC_RESET=\"\\033[0m\"\nC_BOLD=\"\\033[1m\"\nC_DIM=\"\\033[2m\"\nC_RED=\"\\033[31m\"\nC_GREEN=\"\\033[32m\"\nC_YELLOW=\"\\033[33m\"\nC_BLUE=\"\\033[34m\"\nC_MAGENTA=\"\\033[35m\"\nC_CYAN=\"\\033[36m\"\nC_WHITE=\"\\033[37m\"\nC_BG_BLUE=\"\\033[44m\"\n\nprint_banner() {\n echo -e \"${C_CYAN}${C_BOLD}\"\n echo \" ╔══════════════════════════════════════════════════════╗\"\n echo \" ║ ⚒️ FORGE AIO v${VERSION} ║\"\n echo \" ║ The Ultimate All-In-One Server Egg ║\"\n echo \" ╚══════════════════════════════════════════════════════╝\"\n echo -e \"${C_RESET}\"\n}\n\nprint_line() {\n echo -e \"${C_DIM} ──────────────────────────────────────────────────────${C_RESET}\"\n}\n\nprint_info() { echo -e \" ${C_BLUE}ℹ${C_RESET} $1\"; }\nprint_success() { echo -e \" ${C_GREEN}✓${C_RESET} $1\"; }\nprint_warn() { echo -e \" ${C_YELLOW}⚠${C_RESET} $1\"; }\nprint_error() { echo -e \" ${C_RED}✗${C_RESET} $1\"; }\nprint_step() { echo -e \"\\n ${C_MAGENTA}▸${C_RESET} ${C_BOLD}$1${C_RESET}\"; }\n\nprompt_choice() {\n local prompt=\"$1\"\n local result_var=\"$2\"\n echo -en \" ${C_CYAN}▸${C_RESET} ${prompt}: \"\n read -r choice\n eval \"$result_var=\\\"$choice\\\"\"\n}\n\nprompt_default() {\n local prompt=\"$1\"\n local default=\"$2\"\n local result_var=\"$3\"\n echo -en \" ${C_CYAN}▸${C_RESET} ${prompt} ${C_DIM}[${default}]${C_RESET}: \"\n read -r input\n if [ -z \"$input\" ]; then\n eval \"$result_var=\\\"$default\\\"\"\n else\n eval \"$result_var=\\\"$input\\\"\"\n fi\n}\n\nconfirm_yn() {\n local prompt=\"$1\"\n local default=\"${2:-y}\"\n echo -en \" ${C_CYAN}▸${C_RESET} ${prompt} ${C_DIM}[${default}]${C_RESET}: \"\n read -r yn\n yn=${yn:-$default}\n [[ \"$yn\" =~ ^[Yy] ]]\n}\n\nsave_config() {\n cat > \"$CONFIG_FILE\" << EOF\n{\n \"version\": \"${VERSION}\",\n \"type\": \"${AIO_TYPE}\",\n \"category\": \"${AIO_CATEGORY}\",\n \"software\": \"${AIO_SOFTWARE}\",\n \"startup_cmd\": \"${AIO_STARTUP_CMD}\",\n \"install_cmd\": \"${AIO_INSTALL_CMD}\",\n \"configured\": true,\n \"configured_at\": \"$(date -Iseconds)\"\n}\nEOF\n print_success \"Configuration saved!\"\n}\n\nload_config() {\n if [ -f \"$CONFIG_FILE\" ]; then\n AIO_TYPE=$(jq -r '.type // empty' \"$CONFIG_FILE\" 2>/dev/null)\n AIO_CATEGORY=$(jq -r '.category // empty' \"$CONFIG_FILE\" 2>/dev/null)\n AIO_SOFTWARE=$(jq -r '.software // empty' \"$CONFIG_FILE\" 2>/dev/null)\n
"container": "ghcr.io/parkervcp/installers:debian",
"entrypoint": "bash"
}
},
"variables": [
{
"name": "Startup Command Override",
"description": "Optional: Override the startup command entirely. Leave empty to use the wizard-configured command.",
"env_variable": "STARTUP_CMD",
"default_value": "",
"user_viewable": true,
"user_editable": true,
"rules": "nullable|string",
"field_type": "text"
}
]
}