feat(部署): 新增 deployment/ 内外网两套按侧部署包

按 demo/ 的写法把交付包改成「角色由目录决定」:iw/ 拷内网机、ow/ 拷外网机,
各自含镜像 tar、SQL、配置与 install.sh,install.sh 不再收 iw/ow 参数。

前端不再打进镜像,改为静态包放在 <侧>/web/ 只读挂进 nginx:1.27-alpine,
现场临时改页面直接替换文件 + restart web 即可。数据仍全部挂宿主机,
子目录命名与 deploy/offline 一致(pgdata/redis/mq/upload/logs/gate),
默认根改为包内 ./volumes,放数据盘只改 .env 的 SFILE_DATA_ROOT。

后端镜像 sfile-app:1.0.1 含传输优化那一批(实测组包 11.4×、解包 9.9×)。
出包脚本 deployment/scripts/build-package.sh 负责 jar→镜像→前端双包→sql→tar→VERSION。
This commit is contained in:
KodouWZF
2026-11-04 21:44:56 +08:00
parent 339f2c34ab
commit d39b3b035d
884 changed files with 316455 additions and 0 deletions

View File

@@ -0,0 +1 @@
import{A as e,O as t,Vn as n,Y as r,b as i,j as a,k as o,qn as s,sn as c,u as l,zn as u}from"./index-CjPx3lfT.js";import{n as d,t as f}from"./dist-BfmPJzXI.js";var p=s(n(),1),m=Object.defineProperty,h=(e,t)=>m(e,`name`,{value:t,configurable:!0}),g=!1;function _(){let[e,t]=p.useState(g);return p.useEffect(()=>{g||(g=!0,t(!0))},[]),e}h(_,`useIsHydrated`);var v=p.useSyncExternalStore;function y(){return()=>{}}h(y,`subscribe`);function b(){return v(y,()=>!0,()=>!1)}h(b,`useIsHydratedModern`);var x=typeof v==`function`?b:_,S=s(u(),1),C=Object.defineProperty,w=(e,t)=>C(e,`name`,{value:t,configurable:!0}),T=`rovingFocusGroup.onEntryFocus`,E={bubbles:!1,cancelable:!0},D=`RovingFocusGroup`,[O,k,A]=d(D),[j,M]=o(D,[A]),N={Vertical:`vertical`,Horizontal:`horizontal`},P={LTR:`ltr`,RTL:`rtl`},[F,I]=j(D),L=p.forwardRef(w(function(e,t){return(0,S.jsx)(O.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,S.jsx)(O.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,S.jsx)(R,{...e,ref:t})})})},`RovingFocusGroup`)),R=p.forwardRef(w(function(n,i){let{__scopeRovingFocusGroup:a,orientation:o,loop:s=!1,dir:u,currentTabStopId:d,defaultCurrentTabStopId:m,onCurrentTabStopIdChange:h,onEntryFocus:g,preventScrollOnEntryFocus:_=!1,...v}=n,y=p.useRef(null),b=c(i,y),x=f(u),[C,w]=l({prop:d,defaultProp:m??null,onChange:h,caller:D}),[O,A]=p.useState(!1),j=t(g),M=k(a),N=p.useRef(!1),[P,I]=p.useState(0);return p.useEffect(()=>{let e=y.current;if(e)return e.addEventListener(T,j),()=>e.removeEventListener(T,j)},[j]),(0,S.jsx)(F,{scope:a,orientation:o,dir:x,loop:s,currentTabStopId:C,onItemFocus:p.useCallback(e=>w(e),[w]),onItemShiftTab:p.useCallback(()=>A(!0),[]),onFocusableItemAdd:p.useCallback(()=>I(e=>e+1),[]),onFocusableItemRemove:p.useCallback(()=>I(e=>e-1),[]),children:(0,S.jsx)(r.div,{tabIndex:O||P===0?-1:0,"data-orientation":o,...v,ref:b,style:{outline:`none`,...n.style},onMouseDown:e(n.onMouseDown,()=>{N.current=!0}),onFocus:e(n.onFocus,e=>{let t=!N.current;if(e.target===e.currentTarget&&t&&!O){let t=new CustomEvent(T,E);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=M().filter(e=>e.focusable);W([e.find(e=>e.active),e.find(e=>e.id===C),...e].filter(Boolean).map(e=>e.ref.current),_)}}N.current=!1}),onBlur:e(n.onBlur,()=>A(!1))})})},`RovingFocusGroupImpl`)),z=`RovingFocusGroupItem`,B=p.forwardRef(w(function(t,n){let{__scopeRovingFocusGroup:o,focusable:s=!0,active:c=!1,tabStopId:l,children:u,...d}=t,f=i(),m=l||f,h=I(z,o),g=h.currentTabStopId===m,_=k(o),{onFocusableItemAdd:v,onFocusableItemRemove:y,currentTabStopId:b}=h,C=x();return a(()=>{if(!(!C||!s))return v(),()=>y()},[C,s,v,y]),p.useEffect(()=>{if(!(C||!s))return v(),()=>y()},[C,s,v,y]),(0,S.jsx)(O.ItemSlot,{scope:o,id:m,focusable:s,active:c,children:(0,S.jsx)(r.span,{tabIndex:g?0:-1,"data-orientation":h.orientation,...d,ref:n,onMouseDown:e(t.onMouseDown,e=>{s?h.onItemFocus(m):e.preventDefault()}),onFocus:e(t.onFocus,()=>h.onItemFocus(m)),onKeyDown:e(t.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){h.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=U(e,h.orientation,h.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=_().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=h.loop?G(n,r+1):n.slice(r+1)}setTimeout(()=>W(n))}}),children:typeof u==`function`?u({isCurrentTabStop:g,hasTabStop:b!=null}):u})})},`RovingFocusGroupItem`)),V={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function H(e,t){return t===P.RTL?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}w(H,`getDirectionAwareKey`);function U(e,t,n){let r=H(e.key,n);if(!(t===N.Vertical&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===N.Horizontal&&[`ArrowUp`,`ArrowDown`].includes(r)))return V[r]}w(U,`getFocusIntent`);function W(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}w(W,`focusFirst`);function G(e,t){return e.map((n,r)=>e[(t+r)%e.length])}w(G,`wrapArray`);export{B as n,M as r,L as t};