出品者:gruntsmoke

Wiki.js is a modern, lightweight, and powerful open-source wiki platform built on Node.js, designed for teams and individuals who need a self-hosted knowledge base with a rich editing experience.
Wiki.js is a full-stack wiki platform built on Node.js, featuring a Vue 2 frontend, GraphQL API via Apollo Server, and a modular server backend. It is designed for teams and organizations that need a self-hosted, database-backed documentation system with authentication, editor plugins, and an extensible admin panel. The typical buyer is a backend/full-stack developer embedding or customizing a wiki into an existing Node.js infrastructure.
.devcontainer/ - VS Code remote container configuration for reproducible dev environments.github/ - CI workflows (build, helm, packer), issue templates, and contribution guidelines.vscode/ - Editor settings, launch configs, and recommended extensionsclient/ - Vue 2 frontend: components, Vuex store, GraphQL queries, SCSS, themes, and webpack entry pointsdev/ - Developer-mode utility: webpack middleware, hot reload, and Cypress e2e test pluginsserver/ - Node.js backend: Express app, Apollo GraphQL server, models, and module loaders.eslintrc.yml - ESLint configuration for the project (StandardJS style)config.sample.yml - Annotated configuration template for database, auth, ports, etc.cypress.json - Cypress end-to-end test runner configurationpackage.json - Root package manifest with scripts and all dependency declarationsnpm install @azure/storage-blob @exlinc/keycloak-passport @joplin/turndown-plugin-gfm \
@root/csr @root/keypairs @root/pem acme akismet-api algoliasearch \
apollo-fetch apollo-server apollo-server-express asciidoctor auto-load \
aws-sdk azure-search-client bcryptjs-then bluebird body-parser chalk \
cheerio chokidar chromium-pickle-js clean-css command-exists \
lodash vuex vuex-pathify vue filesize
# Client-side bundling requires webpack with Vue loader:
npm install --save-dev webpack webpack-dev-middleware webpack-hot-middleware \
vue-loader vue-template-compiler
No native build steps (no pod install, no Android linking) are required. Wiki.js runs entirely in Node.js userland. If targeting Linux ARM or deploying with sharp for image processing, native compilation via node-gyp may be triggered transitively.
source/ directory into your project root, e.g. as ./wiki/.隔離されたサンドボックスを起動しサーバー側で実行 — ローカル設定不要。
このバージョンの Tetrees AI Review
This Vue, Express web app completed archive review with strong static results. Structure, dependency manifests, documentation, functional source, and common risk patterns were checked by the Tetrees verification pipeline; runtime phases are stated separately.
Deterministic AVCP artifact review
パイプライン avcp-2026-08-04.1 · SHA-256 4cf2e360e729daf9…
This version-scoped review deterministically inspects the submitted archive for structure, dependencies, documentation, functional source, and common malicious or high-risk signals. Build and test phases are reported as passed only after an isolated sandbox audition. It is not a guarantee of perfect security.
レビュー日 2026年8月4日
この製品をお使いのAI IDE・Webビルダー・クラウドIDEに直接取り込みます。
Tetreesを対応AI IDEに接続し、所有製品の一覧取得と検証済みZIPの取得を、販売者のアップロード権限を公開せずに行えます。
まだレビューがありません。
Sign in to join the discussion
Loading discussion…
source/config.sample.yml to config.yml at your project root and fill in at minimum:
db:
type: postgres # postgres | mysql | mariadb | mssql | sqlite
host: localhost
port: 5432
user: wiki
pass: wikijsrocks
db: wiki
port: 3000
config.yml):
NODE_ENV=production
PORT=3000
vuex-pathify and configure your bundler to resolve client/ as a module directory:
// webpack.config.js resolve section
{
"alias": { "~client": "./wiki/client" },
"modules": ["node_modules", "./wiki/client"]
}
node wiki/server
# or in developer mode:
node wiki/dev
http://localhost:3000 on first boot.client/helpers/index.js)const helpers: {
filesize(rawSize: number): string
makeSafePath(rawPath: string): string
resolvePath(path: string): string
setInputSelection(input: HTMLInputElement, startPos: number, endPos: number): void
}
export default {
install(Vue: VueConstructor): void
}
A Vue plugin that installs $helpers onto every component instance. filesize converts a byte count to a human-readable uppercase string. makeSafePath normalizes arbitrary user-typed paths into URL-safe kebab-case segments. Install once via Vue.use(helpers) before mounting the app.
client/store/index.js)import { Store } from 'vuex'
const store: Store<{
loadingStack: string[]
notification: {
message: string
style: string
icon: string
isActive: boolean
}
}>
// Key mutations:
store.commit('loadingStart', stackName: string): void
store.commit('loadingStop', stackName: string): void
store.commit('showNotification', opts: { message: string; style?: string; icon?: string }): void
store.commit('pushGraphError', err: ApolloError): void
// Getter:
store.getters.isLoading: boolean
The root Vuex store managing global loading state and notification banners. Use loadingStart/loadingStop with a named stack key to track concurrent async operations without race conditions. Use pushGraphError as a unified handler for Apollo GraphQL errors.
client/libs/markdown-it-underline/index.js)import MarkdownIt from 'markdown-it'
const underlinePlugin: (md: MarkdownIt) => void
module.exports = underlinePlugin
A markdown-it renderer rule override that converts _text_ (single-underscore emphasis) into <u>text</u> (underline) instead of <em>. Register it via md.use(require('./libs/markdown-it-underline')). Use this when you need Word-like underline semantics in a markdown editor rather than italic.
Register $helpers globally so all Vue components can call this.$helpers.filesize(n) without per-component imports.
import Vue from 'vue'
import helpers from './wiki/client/helpers/index.js'
Vue.use(helpers)
// Inside any component:
const size = Vue.prototype.$helpers.filesize(1048576)
// => "1 MB"
const safe = Vue.prototype.$helpers.makeSafePath(' Hello World / Foo Bar ')
// => "hello-world/foo-bar"
import Vue from 'vue'
import store from './wiki/client/store/index.js'
// Start a named loading operation
store.commit('loadingStart', 'fetchDocs')
async function fetchDocs() {
try {
const result = await someApolloClient.query({ query: MY_QUERY })
store.commit('loadingStop', 'fetchDocs')
return result
} catch (err) {
store.commit('pushGraphError', err)
store.commit('loadingStop', 'fetchDocs')
}
}
// Check loading state in a computed property
console.log(store.getters.isLoading) // true while fetchDocs is pending
import MarkdownIt from 'markdown-it'
const underline = require('./wiki/client/libs/markdown-it-underline/index.js')
const md = new MarkdownIt()
md.use(underline)
const html = md.render('This is _underlined_ and *italic*.')
// => <p>This is <u>underlined</u> and <em>italic</em>.</p>
// In a custom dev entrypoint that wraps the wiki dev utility
process.env.NODE_ENV = 'development'
const devUtil = require('./wiki/dev/index.js')
devUtil.dev()
// Starts webpack-dev-middleware + hot reload, then boots the server
// Type "rs" + Enter in stdin to trigger a manual restart
.devcontainer/ - Defines a Docker-based VS Code development container; not needed in production deployments..github/ - GitHub Actions CI/CD pipelines for Docker image builds, Helm chart releases, and Packer images; issue triage automation..vscode/ - Workspace-specific editor configuration; safe to ignore outside VS Code.client/ - All frontend source: Vue SFCs for admin, editor, auth flows; Vuex modules for page, site, user state; SCSS design tokens; GraphQL query documents; webpack entry points.dev/ - Developer CLI that wires webpack-dev-middleware and chokidar file watching, then boots the server; also houses Cypress plugin scaffolding.server/ - Express application bootstrap, Apollo GraphQL schema and resolvers, authentication strategies, database models, and all backend module loaders..eslintrc.yml - Project-wide ESLint rules; extends StandardJS with Vue plugin.config.sample.yml - Canonical reference for all supported configuration keys; copy to config.yml before running.cypress.json - Cypress base URL and integration folder configuration for e2e tests.package.json - Single root manifest; contains dev, build, start, analyze scripts.siteConfig is not defined - client/helpers/index.js reads the global siteConfig; ensure the server injects it into the HTML template or define global.siteConfig in your SSR entry before importing helpers.WIKI global missing - The Vuex store's pushGraphError mutation calls WIKI.$store; set global.WIKI = { $store: store } before committing that mutation outside the canonical boot sequence.vuex-pathify peer version mismatch - make.mutations from vuex-pathify requires Vuex 3.x (Vue 2); do not upgrade to Vuex 4 without migrating the entire client to Vue 3.~ imports - Several client files use ~client/ aliases; add the alias to your bundler config or the build will fail with module-not-found errors.require('../server') in dev/index.js expects config.yml at process.cwd(); running from a different working directory causes a silent config load failure.markdown-it-underline - The plugin uses module.exports; when imported from an ESM context use import underline from '...' or createRequire to avoid default wrapping issues.I have a copy of the Wiki.js source (wiki@2.0.0) located in the `source/`
directory of this repo. I also have USAGE.md which documents its real exports
and integration patterns.
Please help me integrate Wiki.js into my existing Node.js/Express project
step by step:
1. Read USAGE.md fully before writing any code.
2. Wire `source/server/` as the wiki backend mounted at `/wiki` on my Express app.
3. Register the Vue helpers plugin from `source/client/helpers/index.js` in
my Vue 2 entry point.
4. Connect the Vuex store from `source/client/store/index.js` to my existing
store using `store.registerModule`.
5. Configure webpack to resolve `source/client/` aliases (`~client`).
6. Set up the required environment variables and `config.yml` from
`source/config.sample.yml`.
7. Show me how to use `pushGraphError` and `loadingStart`/`loadingStop` in
my existing Apollo Client error-handling middleware.
Use only the APIs documented in USAGE.md. Do not invent new exports.
Reference the upstream package as `user@example.com` (https://github.com/Requarks/wiki).
Wiki.js is licensed under the GNU Affero General Public License v3.0 (AGPLv3). See source/LICENSE for the full license text. Any modifications to Wiki.js source that are run as a network service must be made available under the same license.
Upstream repository: https://github.com/Requarks/wiki
npm package: user@example.com
This product’s unique contribution is clean room implementation of valuable code block into AVCP compatible standard.
完全なインストールガイドと統合プロンプトは購入後に解放されます。
PHP, Laravel & Business Scripts
無料