import { defineComponent, ref, reactive, computed, useSSRContext } from 'vue'; import { ssrRenderAttrs, ssrRenderStyle, ssrRenderList, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrRenderClass } from 'vue/server-renderer'; import { u as useApi } from './useApi-B-E5eLsI.mjs'; import { u as useToast } from './useToast-CS21XT61.mjs'; import './server.mjs'; import '../nitro/nitro.mjs'; import 'node:http'; import 'node:https'; import 'node:events'; import 'node:buffer'; import 'node:fs'; import 'node:path'; import 'node:crypto'; import 'node:url'; import '../routes/renderer.mjs'; import 'vue-bundle-renderer/runtime'; import 'unhead/server'; import 'devalue'; import 'unhead/utils'; import 'pinia'; import 'perfect-debounce'; import './useLoading-D4zrSa2m.mjs'; const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "environments", __ssrInlineRender: true, setup(__props) { useApi(); useToast(); const view = ref("list"); const rows = ref([]); const loading = ref(false); const isEditing = ref(false); const testPassed = ref(false); const testing = ref(false); const testResult = reactive({ show: false, ok: false, ssh_ok: false, ssh_msg: "", etcd_ok: false, etcd_msg: "", redis_ok: false, redis_msg: "", nats_ok: false, nats_msg: "" }); const testItems = computed(() => [ { key: "ssh", label: "SSH 部署机", ok: testResult.ssh_ok, msg: testResult.ssh_msg }, { key: "etcd", label: "ETCD", ok: testResult.etcd_ok, msg: testResult.etcd_msg }, { key: "redis", label: "Redis", ok: testResult.redis_ok, msg: testResult.redis_msg }, { key: "nats", label: "NATS", ok: testResult.nats_ok, msg: testResult.nats_msg } ]); function blankForm() { return { id: 0, name: "", code: "", remark: "", enabled: true, ssh_host: "", ssh_port: 22, ssh_user: "root", ssh_private_key: "", registry: "", registry_user: "", registry_pass: "", docker_network: "1panel-network", etcd_servers: "", redis_addr: "", redis_pwd: "", nats_url: "" }; } const form = reactive(blankForm()); function sshTarget(e) { if (!e.ssh_host) return "-"; return `${e.ssh_user || "root"}@${e.ssh_host}:${e.ssh_port || 22}`; } function imageLabel(e) { return e.registry || "-"; } return (_ctx, _push, _parent, _attrs) => { _push(`

环境节点(部署服务器)

部署服务器节点(如 上海 / 日本 / 新加坡):远端 IP、SSH 登录账号与私钥、私有镜像仓库、区域共享基础设施。应用管理里「部署到目标环境」从这里选择、两边对应;下一期即可从页面直接更新服务/部署应用。密钥加密存储,不回显明文。

`); if (loading.value) { _push(``); } else if (!rows.value.length) { _push(``); } else { _push(``); } _push(``); ssrRenderList(rows.value, (e) => { _push(``); }); _push(`
ID名称区域码SSH 目标镜像仓库启用操作
暂无环境
${ssrInterpolate(e.id)}${ssrInterpolate(e.name || "")}${ssrInterpolate(e.code || "")}${ssrInterpolate(sshTarget(e))}${ssrInterpolate(imageLabel(e))}`); if (e.enabled) { _push(`是`); } else { _push(`否`); } _push(`

${ssrInterpolate(isEditing.value ? "编辑节点" : "新增节点")}

SSH 部署目标
加密存储;编辑时显示 [encrypted] 表示不改,如需更换直接粘贴新私钥。
私有镜像仓库 + Docker 网络
节点共享集群服务

该服务器上各应用共用的地址。各应用自己的部署目录、业务库 DSN、镜像、redis 库号等,在「应用管理 → 部署到目标环境」里按应用填。

`); ssrRenderList(testItems.value, (it) => { _push(`
${ssrInterpolate(it.ok ? "✓" : "✗")} ${ssrInterpolate(it.label)}:${ssrInterpolate(it.msg)}
`); }); _push(`

需先「测试连接」(SSH 握手成功即可保存;基础设施逐项仅作提示)。

`); }; } }); const _sfc_setup = _sfc_main.setup; _sfc_main.setup = (props, ctx) => { const ssrContext = useSSRContext(); (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/environments.vue"); return _sfc_setup ? _sfc_setup(props, ctx) : void 0; }; export { _sfc_main as default }; //# sourceMappingURL=environments-DOoKTF6a.mjs.map