43 lines
41 KiB
JSON
43 lines
41 KiB
JSON
|
|
{
|
|||
|
|
"_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"
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
}
|