Browse Source

init--jg-doc

master
xiaosi 3 days ago
commit
475fb42be8
  1. 30
      .gitignore
  2. 52
      docs/.vitepress/cache/deps/_metadata.json
  3. 9719
      docs/.vitepress/cache/deps/chunk-3GYA4YLH.js
  4. 7
      docs/.vitepress/cache/deps/chunk-3GYA4YLH.js.map
  5. 12619
      docs/.vitepress/cache/deps/chunk-DDXJJ377.js
  6. 7
      docs/.vitepress/cache/deps/chunk-DDXJJ377.js.map
  7. 3
      docs/.vitepress/cache/deps/package.json
  8. 4505
      docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js
  9. 7
      docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map
  10. 583
      docs/.vitepress/cache/deps/vitepress___@vueuse_core.js
  11. 7
      docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map
  12. 1145
      docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js
  13. 7
      docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map
  14. 1665
      docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js
  15. 7
      docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map
  16. 1812
      docs/.vitepress/cache/deps/vitepress___minisearch.js
  17. 7
      docs/.vitepress/cache/deps/vitepress___minisearch.js.map
  18. 343
      docs/.vitepress/cache/deps/vue.js
  19. 7
      docs/.vitepress/cache/deps/vue.js.map
  20. 81
      docs/.vitepress/components/ServerList.vue
  21. 38
      docs/.vitepress/config.mts
  22. 36
      docs/.vitepress/nav.mts
  23. 38
      docs/.vitepress/sidebar.mts
  24. 3
      docs/.vitepress/theme/custom.css
  25. 14
      docs/.vitepress/theme/index.js
  26. 43
      docs/.vitepress/theme/var.css
  27. 49
      docs/api-examples.md
  28. 221
      docs/components/ServerList.vue
  29. 32
      docs/index.md
  30. 85
      docs/markdown-examples.md
  31. BIN
      docs/public/favicon.ico
  32. BIN
      docs/public/logo.png
  33. 1
      docs/public/logo.svg
  34. 4
      docs/server/full-server-list.md
  35. 339
      docs/server/server-ag-setup.md
  36. 2418
      package-lock.json
  37. 10
      package.json

30
.gitignore

@ -0,0 +1,30 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
.DS_Store
dist
dist-ssr
coverage
*.local
/cypress/videos/
/cypress/screenshots/
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
*.tsbuildinfo

52
docs/.vitepress/cache/deps/_metadata.json

@ -0,0 +1,52 @@
{
"hash": "18d7c5d9",
"configHash": "08012c5e",
"lockfileHash": "4ac0157d",
"browserHash": "49616823",
"optimized": {
"vue": {
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "6bce93ce",
"needsInterop": false
},
"vitepress > @vue/devtools-api": {
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
"file": "vitepress___@vue_devtools-api.js",
"fileHash": "cb77e94c",
"needsInterop": false
},
"vitepress > @vueuse/core": {
"src": "../../../../node_modules/@vueuse/core/index.mjs",
"file": "vitepress___@vueuse_core.js",
"fileHash": "69f454d8",
"needsInterop": false
},
"vitepress > @vueuse/integrations/useFocusTrap": {
"src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
"fileHash": "d7391ff5",
"needsInterop": false
},
"vitepress > mark.js/src/vanilla.js": {
"src": "../../../../node_modules/mark.js/src/vanilla.js",
"file": "vitepress___mark__js_src_vanilla__js.js",
"fileHash": "4a784580",
"needsInterop": false
},
"vitepress > minisearch": {
"src": "../../../../node_modules/minisearch/dist/es/index.js",
"file": "vitepress___minisearch.js",
"fileHash": "6e15fe37",
"needsInterop": false
}
},
"chunks": {
"chunk-3GYA4YLH": {
"file": "chunk-3GYA4YLH.js"
},
"chunk-DDXJJ377": {
"file": "chunk-DDXJJ377.js"
}
}
}

9719
docs/.vitepress/cache/deps/chunk-3GYA4YLH.js

File diff suppressed because it is too large

7
docs/.vitepress/cache/deps/chunk-3GYA4YLH.js.map

File diff suppressed because one or more lines are too long

12619
docs/.vitepress/cache/deps/chunk-DDXJJ377.js

File diff suppressed because it is too large

7
docs/.vitepress/cache/deps/chunk-DDXJJ377.js.map

File diff suppressed because one or more lines are too long

3
docs/.vitepress/cache/deps/package.json

@ -0,0 +1,3 @@
{
"type": "module"
}

4505
docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js

File diff suppressed because it is too large

7
docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map

File diff suppressed because one or more lines are too long

583
docs/.vitepress/cache/deps/vitepress___@vueuse_core.js

@ -0,0 +1,583 @@
import {
DefaultMagicKeysAliasMap,
StorageSerializers,
TransitionPresets,
assert,
breakpointsAntDesign,
breakpointsBootstrapV5,
breakpointsElement,
breakpointsMasterCss,
breakpointsPrimeFlex,
breakpointsQuasar,
breakpointsSematic,
breakpointsTailwind,
breakpointsVuetify,
breakpointsVuetifyV2,
breakpointsVuetifyV3,
bypassFilter,
camelize,
clamp,
cloneFnJSON,
computedAsync,
computedEager,
computedInject,
computedWithControl,
containsProp,
controlledRef,
createEventHook,
createFetch,
createFilterWrapper,
createGlobalState,
createInjectionState,
createRef,
createReusableTemplate,
createSharedComposable,
createSingletonPromise,
createTemplatePromise,
createUnrefFn,
customStorageEventName,
debounceFilter,
defaultDocument,
defaultLocation,
defaultNavigator,
defaultWindow,
executeTransition,
extendRef,
formatDate,
formatTimeAgo,
get,
getLifeCycleTarget,
getSSRHandler,
hasOwn,
hyphenate,
identity,
increaseWithUnit,
injectLocal,
invoke,
isClient,
isDef,
isDefined,
isIOS,
isObject,
isWorker,
makeDestructurable,
mapGamepadToXbox360Controller,
noop,
normalizeDate,
notNullish,
now,
objectEntries,
objectOmit,
objectPick,
onClickOutside,
onElementRemoval,
onKeyDown,
onKeyPressed,
onKeyStroke,
onKeyUp,
onLongPress,
onStartTyping,
pausableFilter,
promiseTimeout,
provideLocal,
provideSSRWidth,
pxValue,
rand,
reactify,
reactifyObject,
reactiveComputed,
reactiveOmit,
reactivePick,
refAutoReset,
refDebounced,
refDefault,
refThrottled,
refWithControl,
resolveRef,
resolveUnref,
set,
setSSRHandler,
syncRef,
syncRefs,
templateRef,
throttleFilter,
timestamp,
toArray,
toReactive,
toRef,
toRefs,
toValue,
tryOnBeforeMount,
tryOnBeforeUnmount,
tryOnMounted,
tryOnScopeDispose,
tryOnUnmounted,
unrefElement,
until,
useActiveElement,
useAnimate,
useArrayDifference,
useArrayEvery,
useArrayFilter,
useArrayFind,
useArrayFindIndex,
useArrayFindLast,
useArrayIncludes,
useArrayJoin,
useArrayMap,
useArrayReduce,
useArraySome,
useArrayUnique,
useAsyncQueue,
useAsyncState,
useBase64,
useBattery,
useBluetooth,
useBreakpoints,
useBroadcastChannel,
useBrowserLocation,
useCached,
useClipboard,
useClipboardItems,
useCloned,
useColorMode,
useConfirmDialog,
useCountdown,
useCounter,
useCssVar,
useCurrentElement,
useCycleList,
useDark,
useDateFormat,
useDebounceFn,
useDebouncedRefHistory,
useDeviceMotion,
useDeviceOrientation,
useDevicePixelRatio,
useDevicesList,
useDisplayMedia,
useDocumentVisibility,
useDraggable,
useDropZone,
useElementBounding,
useElementByPoint,
useElementHover,
useElementSize,
useElementVisibility,
useEventBus,
useEventListener,
useEventSource,
useEyeDropper,
useFavicon,
useFetch,
useFileDialog,
useFileSystemAccess,
useFocus,
useFocusWithin,
useFps,
useFullscreen,
useGamepad,
useGeolocation,
useIdle,
useImage,
useInfiniteScroll,
useIntersectionObserver,
useInterval,
useIntervalFn,
useKeyModifier,
useLastChanged,
useLocalStorage,
useMagicKeys,
useManualRefHistory,
useMediaControls,
useMediaQuery,
useMemoize,
useMemory,
useMounted,
useMouse,
useMouseInElement,
useMousePressed,
useMutationObserver,
useNavigatorLanguage,
useNetwork,
useNow,
useObjectUrl,
useOffsetPagination,
useOnline,
usePageLeave,
useParallax,
useParentElement,
usePerformanceObserver,
usePermission,
usePointer,
usePointerLock,
usePointerSwipe,
usePreferredColorScheme,
usePreferredContrast,
usePreferredDark,
usePreferredLanguages,
usePreferredReducedMotion,
usePreferredReducedTransparency,
usePrevious,
useRafFn,
useRefHistory,
useResizeObserver,
useSSRWidth,
useScreenOrientation,
useScreenSafeArea,
useScriptTag,
useScroll,
useScrollLock,
useSessionStorage,
useShare,
useSorted,
useSpeechRecognition,
useSpeechSynthesis,
useStepper,
useStorage,
useStorageAsync,
useStyleTag,
useSupported,
useSwipe,
useTemplateRefsList,
useTextDirection,
useTextSelection,
useTextareaAutosize,
useThrottleFn,
useThrottledRefHistory,
useTimeAgo,
useTimeout,
useTimeoutFn,
useTimeoutPoll,
useTimestamp,
useTitle,
useToNumber,
useToString,
useToggle,
useTransition,
useUrlSearchParams,
useUserMedia,
useVModel,
useVModels,
useVibrate,
useVirtualList,
useWakeLock,
useWebNotification,
useWebSocket,
useWebWorker,
useWebWorkerFn,
useWindowFocus,
useWindowScroll,
useWindowSize,
watchArray,
watchAtMost,
watchDebounced,
watchDeep,
watchIgnorable,
watchImmediate,
watchOnce,
watchPausable,
watchThrottled,
watchTriggerable,
watchWithFilter,
whenever
} from "./chunk-3GYA4YLH.js";
import "./chunk-DDXJJ377.js";
export {
DefaultMagicKeysAliasMap,
StorageSerializers,
TransitionPresets,
assert,
computedAsync as asyncComputed,
refAutoReset as autoResetRef,
breakpointsAntDesign,
breakpointsBootstrapV5,
breakpointsElement,
breakpointsMasterCss,
breakpointsPrimeFlex,
breakpointsQuasar,
breakpointsSematic,
breakpointsTailwind,
breakpointsVuetify,
breakpointsVuetifyV2,
breakpointsVuetifyV3,
bypassFilter,
camelize,
clamp,
cloneFnJSON,
computedAsync,
computedEager,
computedInject,
computedWithControl,
containsProp,
computedWithControl as controlledComputed,
controlledRef,
createEventHook,
createFetch,
createFilterWrapper,
createGlobalState,
createInjectionState,
reactify as createReactiveFn,
createRef,
createReusableTemplate,
createSharedComposable,
createSingletonPromise,
createTemplatePromise,
createUnrefFn,
customStorageEventName,
debounceFilter,
refDebounced as debouncedRef,
watchDebounced as debouncedWatch,
defaultDocument,
defaultLocation,
defaultNavigator,
defaultWindow,
computedEager as eagerComputed,
executeTransition,
extendRef,
formatDate,
formatTimeAgo,
get,
getLifeCycleTarget,
getSSRHandler,
hasOwn,
hyphenate,
identity,
watchIgnorable as ignorableWatch,
increaseWithUnit,
injectLocal,
invoke,
isClient,
isDef,
isDefined,
isIOS,
isObject,
isWorker,
makeDestructurable,
mapGamepadToXbox360Controller,
noop,
normalizeDate,
notNullish,
now,
objectEntries,
objectOmit,
objectPick,
onClickOutside,
onElementRemoval,
onKeyDown,
onKeyPressed,
onKeyStroke,
onKeyUp,
onLongPress,
onStartTyping,
pausableFilter,
watchPausable as pausableWatch,
promiseTimeout,
provideLocal,
provideSSRWidth,
pxValue,
rand,
reactify,
reactifyObject,
reactiveComputed,
reactiveOmit,
reactivePick,
refAutoReset,
refDebounced,
refDefault,
refThrottled,
refWithControl,
resolveRef,
resolveUnref,
set,
setSSRHandler,
syncRef,
syncRefs,
templateRef,
throttleFilter,
refThrottled as throttledRef,
watchThrottled as throttledWatch,
timestamp,
toArray,
toReactive,
toRef,
toRefs,
toValue,
tryOnBeforeMount,
tryOnBeforeUnmount,
tryOnMounted,
tryOnScopeDispose,
tryOnUnmounted,
unrefElement,
until,
useActiveElement,
useAnimate,
useArrayDifference,
useArrayEvery,
useArrayFilter,
useArrayFind,
useArrayFindIndex,
useArrayFindLast,
useArrayIncludes,
useArrayJoin,
useArrayMap,
useArrayReduce,
useArraySome,
useArrayUnique,
useAsyncQueue,
useAsyncState,
useBase64,
useBattery,
useBluetooth,
useBreakpoints,
useBroadcastChannel,
useBrowserLocation,
useCached,
useClipboard,
useClipboardItems,
useCloned,
useColorMode,
useConfirmDialog,
useCountdown,
useCounter,
useCssVar,
useCurrentElement,
useCycleList,
useDark,
useDateFormat,
refDebounced as useDebounce,
useDebounceFn,
useDebouncedRefHistory,
useDeviceMotion,
useDeviceOrientation,
useDevicePixelRatio,
useDevicesList,
useDisplayMedia,
useDocumentVisibility,
useDraggable,
useDropZone,
useElementBounding,
useElementByPoint,
useElementHover,
useElementSize,
useElementVisibility,
useEventBus,
useEventListener,
useEventSource,
useEyeDropper,
useFavicon,
useFetch,
useFileDialog,
useFileSystemAccess,
useFocus,
useFocusWithin,
useFps,
useFullscreen,
useGamepad,
useGeolocation,
useIdle,
useImage,
useInfiniteScroll,
useIntersectionObserver,
useInterval,
useIntervalFn,
useKeyModifier,
useLastChanged,
useLocalStorage,
useMagicKeys,
useManualRefHistory,
useMediaControls,
useMediaQuery,
useMemoize,
useMemory,
useMounted,
useMouse,
useMouseInElement,
useMousePressed,
useMutationObserver,
useNavigatorLanguage,
useNetwork,
useNow,
useObjectUrl,
useOffsetPagination,
useOnline,
usePageLeave,
useParallax,
useParentElement,
usePerformanceObserver,
usePermission,
usePointer,
usePointerLock,
usePointerSwipe,
usePreferredColorScheme,
usePreferredContrast,
usePreferredDark,
usePreferredLanguages,
usePreferredReducedMotion,
usePreferredReducedTransparency,
usePrevious,
useRafFn,
useRefHistory,
useResizeObserver,
useSSRWidth,
useScreenOrientation,
useScreenSafeArea,
useScriptTag,
useScroll,
useScrollLock,
useSessionStorage,
useShare,
useSorted,
useSpeechRecognition,
useSpeechSynthesis,
useStepper,
useStorage,
useStorageAsync,
useStyleTag,
useSupported,
useSwipe,
useTemplateRefsList,
useTextDirection,
useTextSelection,
useTextareaAutosize,
refThrottled as useThrottle,
useThrottleFn,
useThrottledRefHistory,
useTimeAgo,
useTimeout,
useTimeoutFn,
useTimeoutPoll,
useTimestamp,
useTitle,
useToNumber,
useToString,
useToggle,
useTransition,
useUrlSearchParams,
useUserMedia,
useVModel,
useVModels,
useVibrate,
useVirtualList,
useWakeLock,
useWebNotification,
useWebSocket,
useWebWorker,
useWebWorkerFn,
useWindowFocus,
useWindowScroll,
useWindowSize,
watchArray,
watchAtMost,
watchDebounced,
watchDeep,
watchIgnorable,
watchImmediate,
watchOnce,
watchPausable,
watchThrottled,
watchTriggerable,
watchWithFilter,
whenever
};
//# sourceMappingURL=vitepress___@vueuse_core.js.map

7
docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

1145
docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js

File diff suppressed because it is too large

7
docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map

File diff suppressed because one or more lines are too long

1665
docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js

File diff suppressed because it is too large

7
docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map

File diff suppressed because one or more lines are too long

1812
docs/.vitepress/cache/deps/vitepress___minisearch.js

File diff suppressed because it is too large

7
docs/.vitepress/cache/deps/vitepress___minisearch.js.map

File diff suppressed because one or more lines are too long

343
docs/.vitepress/cache/deps/vue.js

@ -0,0 +1,343 @@
import {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
compile,
computed,
createApp,
createBaseVNode,
createBlock,
createCommentVNode,
createElementBlock,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getCurrentWatcher,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
hydrateOnIdle,
hydrateOnInteraction,
hydrateOnMediaQuery,
hydrateOnVisible,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
onWatcherCleanup,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useHost,
useId,
useModel,
useSSRContext,
useShadowRoot,
useSlots,
useTemplateRef,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
} from "./chunk-DDXJJ377.js";
export {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
compile,
computed,
createApp,
createBlock,
createCommentVNode,
createElementBlock,
createBaseVNode as createElementVNode,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getCurrentWatcher,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
hydrateOnIdle,
hydrateOnInteraction,
hydrateOnMediaQuery,
hydrateOnVisible,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
onWatcherCleanup,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useHost,
useId,
useModel,
useSSRContext,
useShadowRoot,
useSlots,
useTemplateRef,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
};
//# sourceMappingURL=vue.js.map

7
docs/.vitepress/cache/deps/vue.js.map

@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

81
docs/.vitepress/components/ServerList.vue

@ -0,0 +1,81 @@
<script setup>
const servers = [
{
name: "泰国",
ip: "43.133.103.128",
domain: "https://ag-th.jiagutech.com",
userpass: "13951707395 / w12345678",
config: "main-th",
app: "—",
containerized: "否",
server: "2台8G",
sync: "是",
deployTime: "23.04",
services: "user, drone, oper, tftz, route, udp, canal, sms, framework"
},
{
name: "印度1",
ip: "—",
domain: "http://ag.xagrotortek.com",
userpass: "1234512345 / Magicmoment19",
config: "india",
app: "india",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "23.07",
services: "user, drone, oper, sms, encrypt, udp, framework"
},
// ...
]
</script>
<style scoped>
.server-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
gap: 1rem;
margin-top: 1.5rem;
}
.server-card {
border: 1px solid var(--vp-c-divider);
border-radius: 8px;
padding: 1rem;
background-color: var(--vp-c-bg-soft);
color: var(--vp-c-text-1);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.03);
transition: background-color 0.3s ease, color 0.3s ease;
}
.server-card h3 {
margin-top: 0;
margin-bottom: 0.5rem;
font-size: 1.1rem;
color: var(--vp-c-brand-1);
}
.server-card .label {
font-weight: bold;
color: var(--vp-c-text-2);
}
.server-card .value {
margin-bottom: 0.3rem;
word-break: break-word;
}
</style>
<template>
<div class="server-grid">
<div v-for="server in servers" :key="server.name" class="server-card">
<h3>{{ server.name }}</h3>
<div class="value"><span class="label">公网 IP</span>{{ server.ip }}</div>
<div class="value"><span class="label">域名</span><a :href="server.domain" target="_blank">{{ server.domain.replace(/^https?:\/\//, '') }}</a></div>
<div class="value"><span class="label">用户名/密码</span>{{ server.userpass }}</div>
<div class="value"><span class="label">配置</span>{{ server.config }}</div>
<div class="value"><span class="label">App</span>{{ server.app }}</div>
<div class="value"><span class="label">容器化</span>{{ server.containerized }}</div>
<div class="value"><span class="label">服务器</span>{{ server.server }}</div>
<div class="value"><span class="label">同步</span>{{ server.sync }}</div>
<div class="value"><span class="label">部署时间</span>{{ server.deployTime }}</div>
<div class="value"><span class="label">服务</span>{{ server.services }}</div>
</div>
</div>
</template>

38
docs/.vitepress/config.mts

@ -0,0 +1,38 @@
import { defineConfig } from 'vitepress'
import sidebar from './sidebar.mts'
import nav from './nav.mts'
export default defineConfig({
title: "NIAR",
description: "项目技术栈、服务器信息、文档一站式平台",
// head: [["link", { rel: "icon", href: "/logo.svg" }]], // 浏览器标签页logo
themeConfig: {
logo: '/logo.png', // 放你自己的图标
nav,
sidebar,
outlineTitle: "页面导航", // 右侧导航顶层标题
outline: "deep", // 右侧导航标题显示 https://vitepress.dev/zh/reference/default-theme-config#outline
docFooter: {
prev: "上一页",
next: "下一页",
},
socialLinks: [
{ icon: 'gitea', link: 'http://gitlab.jiagutech.com/' },
// { icon: 'github', link: 'https://github.com/vuejs/vitepress' },
],
search: {
provider: 'local'
},
editLink: {
pattern: 'https://github.com/vuejs/vitepress/edit/main/docs/:path',
text: '在 Gitea 上编辑此页面'
},
lastUpdated: '上次更新',
// 可选开启暗黑模式切换(默认开启)
darkMode: true,
// 可添加搜索插件等配置
}
})

36
docs/.vitepress/nav.mts

@ -0,0 +1,36 @@
// nav.mts
export default [
// {
// text: "三国演义",
// link: "/三国演义/三国演义-上卷/宴桃园豪杰三结义",
// activeMatch: "/三国演义",
// },
// { text: '首页', link: '/' },
{ text: '项目集合', link: '/projects/' },
{ text: '服务器配置', link: '/server/full-server-list', activeMatch: '/server' },
// { text: '项目管理', link: '/management/' },
{ text: 'EXTRAS', link: '/extras/' }
// {
// text: "西游记",
// link: "/西游记/西游记-上卷/灵根育孕源流出",
// activeMatch: "/西游记",
// },
// {
// text: "链接",
// // 内部配置items则该按钮是下拉
// items: [
// {
// text: "在线预览",
// link: "http://101.126.93.137/#/login",
// },
// {
// text: "Gitee仓库",
// link: "https://gitee.com/wang_fan_w/SnowAdmin",
// },
// {
// text: "GitHub仓库",
// link: "https://github.com/WANG-Fan0912/SnowAdmin",
// },
// ],
// },
];

38
docs/.vitepress/sidebar.mts

@ -0,0 +1,38 @@
// import { DefaultTheme } from 'vitepress'
export default {
'/server/': [
{
text: '服务器集合',
// collapsed: false,
items: [
{text: '全服务器信息', link: '/server/full-server-list'},
{text: 'AG服务安装', link: '/server/server-ag-setup'}
]
}
],
'/project/': {
text: '项目集合',
items: [
{ text: '文档列表', link: '/project/' }
]
},
// {
// text: '服务器配置',
// items: [
// { text: '服务器部署', link: '/servers/' }
// ]
// },
// {
// text: '项目管理',
// items: [
// { text: '版本计划', link: '/management/' }
// ]
// },
// {
// text: '额外文档',
// items: [
// { text: '笔记', link: '/extras/' }
// ]
// }
}

3
docs/.vitepress/theme/custom.css

@ -0,0 +1,3 @@
/*.VPNavBarTitle span {*/
/* display: none;*/
/*}*/

14
docs/.vitepress/theme/index.js

@ -0,0 +1,14 @@
// .vitepress/theme/index.js
import DefaultTheme from 'vitepress/theme'
import './var.css';
import './custom.css' // 可选,样式覆盖用
import ServerList from '../../components/ServerList.vue'
// import Layout from './Layout.vue' // 如果你自定义了 Layout
export default {
extends: DefaultTheme,
// Layout, // 如果你有 Layout.vue,否则可以省略
enhanceApp({ app }) {
app.component('ServerList', ServerList)
}
}

43
docs/.vitepress/theme/var.css

@ -0,0 +1,43 @@
:root {
/* 标题渐变 */
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: linear-gradient(
135deg,
#0099e5 0%,
#00c0fa 40%,
#00f0dc 100%
);
/* 图标背景光晕 */
/* 图标背景色:柔和蓝色 */
--vp-home-hero-image-background-image: linear-gradient(
135deg,
#bbe2fe 10%,
#76c4fd 100%
);
/* 加模糊,增强光晕效果 */
--vp-home-hero-image-filter: blur(150px);
/* brand按钮颜色 */
--vp-button-brand-border: #0099e5;
--vp-button-brand-bg: #0099e5;
--vp-button-brand-hover-border: #00bbf2;
--vp-button-brand-hover-bg: #00bbf2;
--vp-button-brand-active-border: #007acc;
--vp-button-brand-active-bg: #007acc;
/* 主题色 */
--vp-c-indigo-1: #0099e5;
--vp-c-indigo-2: #00bbf2;
--vp-c-indigo-3: #00e1fa;
/* 可选绿色强调 */
--vp-c-green-1: #6dc13b;
--vp-c-green-2: #94dd40;
--vp-c-green-soft: rgba(109, 193, 59, 0.1);
}

49
docs/api-examples.md

@ -0,0 +1,49 @@
---
outline: deep
---
# Runtime API Examples
This page demonstrates usage of some of the runtime APIs provided by VitePress.
The main `useData()` API can be used to access site, theme, and page data for the current page. It works in both `.md` and `.vue` files:
```md
<script setup>
import { useData } from 'vitepress'
const { theme, page, frontmatter } = useData()
</script>
## Results
### Theme Data
<pre>{{ theme }}</pre>
### Page Data
<pre>{{ page }}</pre>
### Page Frontmatter
<pre>{{ frontmatter }}</pre>
```
<script setup>
import { useData } from 'vitepress'
const { site, theme, page, frontmatter } = useData()
</script>
## Results
### Theme Data
<pre>{{ theme }}</pre>
### Page Data
<pre>{{ page }}</pre>
### Page Frontmatter
<pre>{{ frontmatter }}</pre>
## More
Check out the documentation for the [full list of runtime APIs](https://vitepress.dev/reference/runtime-api#usedata).

221
docs/components/ServerList.vue

@ -0,0 +1,221 @@
<script setup>
const servers = [
{
name: "泰国",
ip: "43.133.103.128",
domain: "https://ag-th.jiagutech.com",
userpass: "13951707395 / w12345678",
config: "main-th",
app: "",
containerized: "否",
server: "2台8G",
sync: "是",
deployTime: "23.04",
services: "user, drone, oper, tftz, route, udp, canal, sms, framework"
},
{
name: "印度1",
ip: "—",
domain: "http://ag.xagrotortek.com",
userpass: "1234512345 / Magicmoment19",
config: "india",
app: "india",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "23.07",
services: "user, drone, oper, sms, encrypt, udp, framework"
},
{
name: "印度2",
ip: "213.210.37.43",
domain: "http://syferocompanionpro.com",
userpass: "admin@syfero.com / Syfero@641005# / zz:+91-13015475375 / w12345678",
config: "india-second",
app: "syfero",
containerized: "是",
server: "1台32G",
sync: "否",
deployTime: "24.06.03",
services: "同上"
},
{
name: "印度3",
ip: "13.201.99.132",
domain: "http://pixelrobotics.in",
userpass: "1234512345 / w12345678 / zz:+91-13015475375 / w12345678",
config: "india-third",
app: "hyperindia",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "24.06.12",
services: "同上"
},
{
name: "印度4",
ip: "65.2.88.75",
domain: "http://mgcs.marutdrones.com",
userpass: "1234512345 / mgcs123456 / zz:13015475375@163.com / w12345678",
config: "india-fourth",
app: "marut",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "24.06.26",
services: "同上"
},
{
name: "印度5",
ip: "192.250.226.217",
domain: "http://dgca.aipl.cloud",
userpass: "1234512345 / AIPL2024 / zz:+91-13015475375 / w12345678",
config: "india-fifth",
app: "aipl",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "24.06.28",
services: "同上"
},
{
name: "印度6",
ip: "—",
domain: "http://ec2-13-201-114-254.ap-south-1.compute.amazonaws.com",
userpass: "1234512345 / asd123456 / zz:+86-13015475375 / asd123456",
config: "india-sixth",
app: "skylark",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "25.03.24",
services: "同上"
},
{
name: "印度6-测试",
ip: "—",
domain: "http://ec2-3-7-78-25.ap-south-1.compute.amazonaws.com",
userpass: "1234512345 / asd123456 / zz:+86-13015475375 / asd123456",
config: "india-sixth-test",
app: "skylark",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "25.01.09",
services: "同上"
},
{
name: "印度7",
ip: "195.35.21.57",
domain: "http://astroxaerospace.in",
userpass: "astrox.aerospace@gmail.com / Astrox@10 / zz:+86-13015475375 / asd123456",
config: "india-seventh",
app: "astrox",
containerized: "是",
server: "1台",
sync: "否",
deployTime: "25.01.09",
services: "同上"
},
{
name: "韩国1",
ip: "115.68.110.53",
domain: "http://ag-ko.jiagutech.com",
userpass: "1035376315 / b12341234",
config: "korea",
app: "",
containerized: "是",
server: "1台32G",
sync: "是",
deployTime: "24.04.25",
services: "user, drone, oper, tftz, route, canal, udp, sms, framework"
},
{
name: "韩国2",
ip: "221.143.40.104",
domain: "http://ag.mirair.co.kr",
userpass: "13951707395 / mirair12345678",
config: "korea-second",
app: "",
containerized: "是",
server: "1台16G",
sync: "是",
deployTime: "24.06.12",
services: "同上"
},
{
name: "韩国3",
ip: "211.253.9.184",
domain: "http://helselkorea.com",
userpass: "1234512345 / asd123456",
config: "korea-third",
app: "",
containerized: "是",
server: "1台32G",
sync: "是",
deployTime: "24.08.27",
services: "同上"
},
{
name: "台湾1",
ip: "4.145.84.141",
domain: "http://utm.7adrones.com",
userpass: "999999999 / pw123456",
config: "taiwan",
app: "",
containerized: "是",
server: "2台",
sync: "是",
deployTime: "24.05.11",
services: "同上"
}
];
</script>
<template>
<div class="server-grid">
<div v-for="server in servers" :key="server.name" class="server-card">
<h3>{{ server.name }}</h3>
<div><strong>IP:</strong> {{ server.ip }}</div>
<div><strong>域名:</strong> <a :href="server.domain" target="_blank">{{ server.domain }}</a></div>
<div><strong>账号:</strong> {{ server.userpass }}</div>
<div><strong>配置:</strong> {{ server.config }}</div>
<div><strong>App:</strong> {{ server.app || "—" }}</div>
<div><strong>容器化:</strong> {{ server.containerized }}</div>
<div><strong>服务器:</strong> {{ server.server }}</div>
<div><strong>同步:</strong> {{ server.sync }}</div>
<div><strong>部署时间:</strong> {{ server.deployTime }}</div>
<div><strong>服务:</strong> {{ server.services }}</div>
</div>
</div>
</template>
<style scoped>
.server-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
gap: 1rem;
margin-top: 1.5rem;
}
.server-card {
border: 1px solid var(--vp-c-divider);
border-radius: 8px;
padding: 1rem;
background-color: var(--vp-c-bg-soft);
color: var(--vp-c-text-1);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
transition: background-color 0.3s ease, color 0.3s ease;
}
.server-card h3 {
margin: 0 0 0.5rem;
font-size: 1.1rem;
color: var(--vp-c-brand-1);
}
.server-card a {
color: var(--vp-c-brand-2);
text-decoration: none;
}
.server-card a:hover {
text-decoration: underline;
}
</style>

32
docs/index.md

@ -0,0 +1,32 @@
---
layout: home
hero:
name: "NIAR"
text: "项目配置与服务器信息"
tagline: 项目集合、服务器信息、EX文档一站式平台
image:
src: /logo.png
alt: NIAR
actions:
- theme: brand
text: 开始使用
link: /project/
- theme: alt
text: Gitea
target: _blank
link: http://gitlab.jiagutech.com/
features:
- icon: 📁
title: 项目集合
details: 记录所有团队项目的文档、部署链接、技术说明,一站式查看。
- icon: 🖥️
title: 服务器配置
details: 记录服务器部署、端口映射、域名解析、防火墙等相关信息。
- icon: 🧾
title: EXTRAS
details: 记录临时笔记、调研材料、接口定义、组件说明等扩展资料。
---

85
docs/markdown-examples.md

@ -0,0 +1,85 @@
# Markdown Extension Examples
This page demonstrates some of the built-in markdown extensions provided by VitePress.
## Syntax Highlighting
VitePress provides Syntax Highlighting powered by [Shiki](https://github.com/shikijs/shiki), with additional features like line-highlighting:
**Input**
````md
```js{4}
export default {
data () {
return {
msg: 'Highlighted!'
}
}
}
```
````
**Output**
```js{4}
export default {
data () {
return {
msg: 'Highlighted!'
}
}
}
```
## Custom Containers
**Input**
```md
::: info
This is an info box.
:::
::: tip
This is a tip.
:::
::: warning
This is a warning.
:::
::: danger
This is a dangerous warning.
:::
::: details
This is a details block.
:::
```
**Output**
::: info
This is an info box.
:::
::: tip
This is a tip.
:::
::: warning
This is a warning.
:::
::: danger
This is a dangerous warning.
:::
::: details
This is a details block.
:::
## More
Check out the documentation for the [full list of markdown extensions](https://vitepress.dev/guide/markdown).

BIN
docs/public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
docs/public/logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

1
docs/public/logo.svg

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 640" style="enable-background:new 0 0 640 640" xml:space="preserve" width="32" height="32"><path style="fill:#fff" d="m395.9 484.2-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5 21.2-17.9 33.8-11.8 17.2 8.3 27.1 13 27.1 13l-.1-109.2 16.7-.1.1 117.1s57.4 24.2 83.1 40.1c3.7 2.3 10.2 6.8 12.9 14.4 2.1 6.1 2 13.1-1 19.3l-61 126.9c-6.2 12.7-21.4 18.1-33.9 12z"/><path style="fill:#609926" d="M622.7 149.8c-4.1-4.1-9.6-4-9.6-4s-117.2 6.6-177.9 8c-13.3.3-26.5.6-39.6.7v117.2c-5.5-2.6-11.1-5.3-16.6-7.9 0-36.4-.1-109.2-.1-109.2-29 .4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5c-9.8-.6-22.5-2.1-39 1.5-8.7 1.8-33.5 7.4-53.8 26.9C-4.9 212.4 6.6 276.2 8 285.8c1.7 11.7 6.9 44.2 31.7 72.5 45.8 56.1 144.4 54.8 144.4 54.8s12.1 28.9 30.6 55.5c25 33.1 50.7 58.9 75.7 62 63 0 188.9-.1 188.9-.1s12 .1 28.3-10.3c14-8.5 26.5-23.4 26.5-23.4S547 483 565 451.5c5.5-9.7 10.1-19.1 14.1-28 0 0 55.2-117.1 55.2-231.1-1.1-34.5-9.6-40.6-11.6-42.6zM125.6 353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6 321.8 60 295.4c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5 38.5-30c13.8-3.7 31-3.1 31-3.1s7.1 59.4 15.7 94.2c7.2 29.2 24.8 77.7 24.8 77.7s-26.1-3.1-43-9.1zm300.3 107.6s-6.1 14.5-19.6 15.4c-5.8.4-10.3-1.2-10.3-1.2s-.3-.1-5.3-2.1l-112.9-55s-10.9-5.7-12.8-15.6c-2.2-8.1 2.7-18.1 2.7-18.1L322 273s4.8-9.7 12.2-13c.6-.3 2.3-1 4.5-1.5 8.1-2.1 18 2.8 18 2.8L467.4 315s12.6 5.7 15.3 16.2c1.9 7.4-.5 14-1.8 17.2-6.3 15.4-55 113.1-55 113.1z"/><path style="fill:#609926" d="M326.8 380.1c-8.2.1-15.4 5.8-17.3 13.8-1.9 8 2 16.3 9.1 20 7.7 4 17.5 1.8 22.7-5.4 5.1-7.1 4.3-16.9-1.8-23.1l24-49.1c1.5.1 3.7.2 6.2-.5 4.1-.9 7.1-3.6 7.1-3.6 4.2 1.8 8.6 3.8 13.2 6.1 4.8 2.4 9.3 4.9 13.4 7.3.9.5 1.8 1.1 2.8 1.9 1.6 1.3 3.4 3.1 4.7 5.5 1.9 5.5-1.9 14.9-1.9 14.9-2.3 7.6-18.4 40.6-18.4 40.6-8.1-.2-15.3 5-17.7 12.5-2.6 8.1 1.1 17.3 8.9 21.3 7.8 4 17.4 1.7 22.5-5.3 5-6.8 4.6-16.3-1.1-22.6 1.9-3.7 3.7-7.4 5.6-11.3 5-10.4 13.5-30.4 13.5-30.4.9-1.7 5.7-10.3 2.7-21.3-2.5-11.4-12.6-16.7-12.6-16.7-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3 4.7-9.7 9.4-19.3 14.1-29-4.1-2-8.1-4-12.2-6.1-4.8 9.8-9.7 19.7-14.5 29.5-6.7-.1-12.9 3.5-16.1 9.4-3.4 6.3-2.7 14.1 1.9 19.8l-24.6 50.4z"/></svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

4
docs/server/full-server-list.md

@ -0,0 +1,4 @@
# 现在维护的服务器信息
##
<ServerList />

339
docs/server/server-ag-setup.md

@ -0,0 +1,339 @@
# AG服务安装
## 1、基础环境(以debian为例)
### 1.1、基本能力安装
``` bash
# 安装curl,下面也有安装
sudo apt install curl
# 可选
sudo apt install lrzsz
# 安装 https curl等工具、库
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
```
### 1.2、docker
1. 安装docker
``` shell
# 1、添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
# 或是以下这个
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 2、设置 Docker 的 APT 仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# 或是使用这个
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 3、更新索引
sudo apt-get update
# 4、安装 Docker
sudo apt-get install docker-ce
```
2. 配置及启动docker
```shell
# 添加当前用户到docker组中
sudo usermod -aG docker xxx
# 启动docker
systemctl start docker
# 开机启动
systemctl enable docker
# 验证
docker --version
```
3. 镜像仓库
- 默认的仓库[Docker Hub](https://hub.docker.com/),如果有需要配置自己或加速的镜像仓库地址可通过以下操作配置,目前国外的无需配置
`sudo nano /etc/docker/daemon.json`
- 内容:
```json
{
#本地私有镜像仓库
"insecure-registries":["harbor.jiagutech.com"],
#公有仓库
"registry-mirrors": ["https://a8gtbrrd.mirror.aliyuncs.com"]
}
```
4. 创建桥接网络,后续docker-compose进行容器编排部署时需要使用此网络,**同一个网络中的容器可以通过容器名称进行访问**,而不需写死ip
`docker network create --driver=bridge jiagu`
### 1.3、docker-compose
1. 安装软件,通过以下命令下载docker-compose
` sudo curl -L "https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose `
`wget https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-$(uname -s)-$(uname -m)`
**如果以上命令下载失败,需要手动去下载,然后放到/usr/local/bin目录下**
2. 验证是否成功
`docker-compose --version`
3. docker-compose的配置
1. **中间件** [[#6.1、middleware的docker-compose.yml|查看]]
2. **AG服务** [[#6.2、AG相关服务的docker-compose.yml|查看]]
## 2、中间件
### 2.1、mysql
1. init脚本,需要挂载到/docker-entrypoint-initdb.d的目录下,这样mysql容器启动时会执行脚本,**可能有语句执行不成功,需要自己手动去执行**
```sql
CREATE USER 'jiagu'@'%' IDENTIFIED BY 'jiagu@1058';
CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
GRANT ALL PRIVILEGES ON *.* TO 'jiagu'@'%';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
CREATE DATABASE main_drone_jiagu ;
CREATE DATABASE framework_db ;
```
2. 设置my.conf,允许主从同步
```bash
[mysqld]
# 开启binlog
log-bin=mysql-bin
# 选择ROW(行)模式
binlog-format=ROW
# 配置MySQL replaction需要定义,不要和canal的slaveId重复
server_id=1
```
3. 数据库数据导入
4.
### 2.2、redis
1. 批量删除key
`redis-cli -n 15 -a Jiagu0158 keys 'fight*'|xargs redis-cli -n 15 -a Jiagu0158 del`
2.
### 2.3、tdengine
1. 创建用户
`create user jiagu pass 'jiagu2058' ; show users;`
2. 创建数据库
`create database track_db;`
`create database track_hot_db_xxxx_xx_xx; #xxxx_xx_xx为当天日期`
1. 创建超级表
`CREATE STABLE `track` (`ts` TIMESTAMP, `lat` DOUBLE, `lng` DOUBLE, `alt` INT, `height` INT, `hvel` INT, `vvel` INT, `satellite` INT, `loctype` INT, `yaw` INT, `pitch` INT, `roll` INT, `onair` BOOL, `ftime` INT, `area` FLOAT, `flow` INT, `dose` INT, `warning` INT, `pump` INT) TAGS (`droneid` VARCHAR(50))`
### 2.4、rabbitmq
### 2.5、meilisearch
### 2.6、canal
## 3、Framework
## 4、Center
### 4.1、udp服务
1. 增加对应环境的yml文件
``` yaml
# 1.需要悠mysql的地址及用户名密码
# 2.修改tdengine的地址及用户名密码
# 3.redis的地址及密码
# 4.rabbitmq的地址及密码
# 5.framework服务的地址及密码
```
2. pom中添加对应的profile节点
3. logback-spring.xml添加对应的springProfile节点
## 5、AG服务
## 6、附录
### 6.1、middleware的docker-compose.yml
```yml
version: '3'
services:
mysql:
image: mysql/mysql-server:8.0.22
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: Jiagu*2058
MYSQL_DATABASE: main_drone_jiagu
ports:
- "3306:3306"
command:
--default-authentication-plugin=mysql_native_password
--lower_case_table_names=1
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
volumes:
- /home/azureuser/data/mysql/data:/var/lib/mysql
- /home/azureuser/data/mysql/conf/my.cnf:/etc/mysql/my.cnf
- /home/azureuser/data/mysql/logs:/var/log/mysql
- /home/azureuser/data/mysql/mysql-files:/var/lib/mysql-files
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
redis:
image: redis:6.2.14
container_name: redis
ports:
- 6379:6379
environment:
TZ: Asia/Shanghai
volumes:
- /home/azureuser/data/redis/data:/data:rw
command: "redis-server --requirepass Jiagu0158 --appendonly yes"
privileged: true
restart: always
rabbitmq:
restart: always
image: rabbitmq:management
container_name: rabbitmq
hostname: rabbit
ports:
- 5672:5672
- 15672:15672
environment:
TZ: Asia/Shanghai
RABBITMQ_DEFAULT_USER: jiagu
RABBITMQ_DEFAULT_PASS: jiagu2058
volumes:
- /home/azureuser/data/rabbitmq/data:/var/lib/rabbitmq
tdengine:
restart: always
image: tdengine/tdengine:3.2.2.0
container_name: tdengine
hostname: tdengine
ports:
- 6030-6041:6030-6041
- 6030-6041:6030-6041/udp
environment:
TZ: Asia/Shanghai
volumes:
- /home/azureuser/data/tdengine/data:/var/lib/taos
- /home/azureuser/data/tdengine/log:/var/log/taos
- /home/azureuser/data/tdengine/client:/tmp/
meilisearch:
restart: always
image: getmeili/meilisearch:v1.5.1
container_name: meilisearch
ports:
- 7700:7700
environment:
TZ: Asia/Shanghai
MEILI_MASTER_KEY:
volumes:
- /home/azureuser/data/meilisearch/data:/meili_data
canal-server:
image: canal/canal-server
container_name: canal-server
privileged: true
restart: always
depends_on:
- mysql
ports:
- 11111:11111
volumes:
- /home/azureuser/data/canal/example/instance.properties:/home/admin/canal-server/conf/example/instance.properties
- /home/azureuser/data/canal/log/:/home/admin/canal-server/log/canal/
networks:
default:
external: true
name: jiagu
```
### 6.2、AG相关服务的docker-compose.yml
```yml
version: '3'
services:
drone:
build:
context: ./ag/drone
dockerfile: Dockerfile
container_name: drone
hostname: drone
restart: always
ports:
- "8083:8083"
volumes:
- /home/azureuser/service/logs/drone:/app/log
tftz:
build:
context: ./ag/tftz
dockerfile: Dockerfile
container_name: tftz
hostname: tftz
restart: always
ports:
- "8085:8085"
volumes:
- /home/azureuser/service/logs/tftz:/app/log
oper:
build:
context: ./ag/oper
dockerfile: Dockerfile
container_name: oper
hostname: oper
restart: always
ports:
- "8084:8084"
volumes:
- /home/azureuser/service/logs/oper:/app/log
user:
build:
context: ./ag/user
dockerfile: Dockerfile
container_name: user
hostname: user
restart: always
ports:
- "8082:8082"
volumes:
- /home/azureuser/service/logs/user:/app/log
route:
build:
context: ./ag/route
dockerfile: Dockerfile
container_name: route
hostname: route
restart: always
ports:
- "8088:8088"
volumes:
- /home/azureuser/service/logs/route:/app/log
canal:
build:
context: ./ag/canal
dockerfile: Dockerfile
container_name: canal
hostname: canal
restart: always
ports:
- "8012:8012"
volumes:
- /home/azureuser/service/logs/canal:/app/log
udp:
build:
context: ./center/udp
dockerfile: Dockerfile
container_name: centerudp
restart: always
ports:
- "5003:5003"
- "9527:9527/udp"
volumes:
- /home/azureuser/service/logs/udp:/app/log
framework:
build:
context: ./framework/framework
dockerfile: Dockerfile
container_name: framework
hostname: framework
restart: always
ports:
- "9002:9002"
volumes:
- /home/azureuser/service/logs/framework:/app/log
```

2418
package-lock.json

File diff suppressed because it is too large

10
package.json

@ -0,0 +1,10 @@
{
"scripts": {
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
},
"devDependencies": {
"vitepress": "^1.6.3"
}
}
Loading…
Cancel
Save