[{"data":1,"prerenderedAt":1845},["ShallowReactive",2],{"nav-docs-de":3,"page-/de/docs/webspace/examples/realtime-gomoku":1155,"surround-/de/docs/webspace/examples/realtime-gomoku":1839,"raw-/de/docs/webspace/examples/realtime-gomoku":1842},[4,67,374,775,902,1073,1083,1108],{"title":5,"tags":6,"slug":6,"path":7,"stem":8,"children":9,"page":66,"sourcePath":7},"Erste Schritte mit SpaceBuilder",null,"/getting-started","00.getting-started",[10,15,20,27,34,39,45,50,55,60],{"title":11,"path":12,"stem":13,"tags":6,"slug":14,"sourcePath":12},"Einführung in SpaceBuilder","/getting-started/overview","00.getting-started/00.overview","/getting-started/overview/",{"title":16,"path":17,"stem":18,"tags":6,"slug":19,"sourcePath":17},"SetFN-Konto erstellen","/getting-started/create-setfn-account","00.getting-started/05.create-setfn-account","/getting-started/create-setfn-account/",{"title":21,"path":22,"stem":23,"tags":24,"slug":26,"sourcePath":22},"Installation unter Linux","/getting-started/install-linux","00.getting-started/10.install-linux",[25],"recommended","/getting-started/install-linux/",{"title":28,"path":29,"stem":30,"tags":31,"slug":33,"sourcePath":29},"Installation mit Docker","/getting-started/install-docker","00.getting-started/12.install-docker",[32],"preparing","/getting-started/install-docker/",{"title":35,"path":36,"stem":37,"tags":6,"slug":38,"sourcePath":36},"Installation unter Windows","/getting-started/install-windows","00.getting-started/14.install-windows","/getting-started/install-windows/",{"title":40,"path":41,"stem":42,"tags":43,"slug":44,"sourcePath":41},"Installation unter macOS","/getting-started/install-macos","00.getting-started/16.install-macos",[32],"/getting-started/install-macos/",{"title":46,"path":47,"stem":48,"tags":6,"slug":49,"sourcePath":47},"Ersteinrichtung","/getting-started/initial-setup","00.getting-started/20.initial-setup","/getting-started/initial-setup/",{"title":51,"path":52,"stem":53,"tags":6,"slug":54,"sourcePath":52},"Lizenzaktivierung","/getting-started/license-activation","00.getting-started/30.license-activation","/getting-started/license-activation/",{"title":56,"path":57,"stem":58,"tags":6,"slug":59,"sourcePath":57},"Zugriffsadresse ermitteln (lokal/internes Netzwerk)","/getting-started/access-url","00.getting-started/35.access-url","/getting-started/access-url/",{"title":61,"path":62,"stem":63,"tags":64,"slug":65,"sourcePath":62},"Methode für den externen Zugriff auswählen","/getting-started/access-domain","00.getting-started/40.access-domain",[25],"/getting-started/access-domain/",false,{"title":68,"tags":6,"slug":6,"path":69,"stem":70,"children":71,"page":66,"sourcePath":69},"Space verwalten","/admin","10.admin",[72,92,162,197,249,274,289,299,339],{"title":73,"tags":6,"slug":6,"path":74,"stem":75,"children":76,"page":66,"sourcePath":74},"Admin-Startseite","/admin/home","10.admin/00.home",[77,82,87],{"title":78,"path":79,"stem":80,"tags":6,"slug":81,"sourcePath":79},"Zugriff auf die Administrationsseite","/admin/home/admin-page-access","10.admin/00.home/00.admin-page-access","/admin/home/admin-page-access/",{"title":83,"path":69,"stem":84,"tags":6,"slug":85,"sourcePath":86},"Überblick über die Administratormenüs","10.admin/00.home/00.overview","/admin/","/admin/home/overview",{"title":88,"path":89,"stem":90,"tags":6,"slug":91,"sourcePath":89},"Lizenzverwaltung","/admin/home/license","10.admin/00.home/20.license","/admin/home/license/",{"title":93,"tags":6,"slug":6,"path":94,"stem":95,"children":96,"page":66,"sourcePath":94},"Benutzerverwaltung","/admin/user-management","10.admin/10.user-management",[97,102,107,112,117,122,127,132,137,142,147,152,157],{"title":98,"path":99,"stem":100,"tags":6,"slug":101,"sourcePath":99},"Registrierungsrichtlinie und Standardberechtigungen festlegen","/admin/user-management/signup-policy","10.admin/10.user-management/02.signup-policy","/admin/user-management/signup-policy/",{"title":103,"path":104,"stem":105,"tags":6,"slug":106,"sourcePath":104},"Registrierungsbedingungen hinterlegen","/admin/user-management/signup-terms","10.admin/10.user-management/04.signup-terms","/admin/user-management/signup-terms/",{"title":108,"path":109,"stem":110,"tags":6,"slug":111,"sourcePath":109},"Benutzerkonto erstellen","/admin/user-management/invite-new-member","10.admin/10.user-management/10.invite-new-member","/admin/user-management/invite-new-member/",{"title":113,"path":114,"stem":115,"tags":6,"slug":116,"sourcePath":114},"Benutzerkonto bearbeiten","/admin/user-management/edit-member","10.admin/10.user-management/11.edit-member","/admin/user-management/edit-member/",{"title":118,"path":119,"stem":120,"tags":6,"slug":121,"sourcePath":119},"Administrator hinzufügen","/admin/user-management/add-new-admin","10.admin/10.user-management/12.add-new-admin","/admin/user-management/add-new-admin/",{"title":123,"path":124,"stem":125,"tags":6,"slug":126,"sourcePath":124},"Teamverwaltung","/admin/user-management/team","10.admin/10.user-management/22.team","/admin/user-management/team/",{"title":128,"path":129,"stem":130,"tags":6,"slug":131,"sourcePath":129},"Stufenverwaltung","/admin/user-management/level","10.admin/10.user-management/24.level","/admin/user-management/level/",{"title":133,"path":134,"stem":135,"tags":6,"slug":136,"sourcePath":134},"Zugangsprotokolle einsehen","/admin/user-management/access-log","10.admin/10.user-management/30.access-log","/admin/user-management/access-log/",{"title":138,"path":139,"stem":140,"tags":6,"slug":141,"sourcePath":139},"Aktive Geräte verwalten","/admin/user-management/active-devices","10.admin/10.user-management/31.active-devices","/admin/user-management/active-devices/",{"title":143,"path":144,"stem":145,"tags":6,"slug":146,"sourcePath":144},"Konto- und Sicherheitsrichtlinien festlegen","/admin/user-management/account-security","10.admin/10.user-management/32.account-security","/admin/user-management/account-security/",{"title":148,"path":149,"stem":150,"tags":6,"slug":151,"sourcePath":149},"Roboterprüfung (CAPTCHA) einrichten","/admin/user-management/captcha","10.admin/10.user-management/33.captcha","/admin/user-management/captcha/",{"title":153,"path":154,"stem":155,"tags":6,"slug":156,"sourcePath":154},"Mitgliederhinweise einrichten","/admin/user-management/notice-settings","10.admin/10.user-management/34.notice-settings","/admin/user-management/notice-settings/",{"title":158,"path":159,"stem":160,"tags":6,"slug":161,"sourcePath":159},"Rundmail an Mitglieder senden","/admin/user-management/bulk-mail","10.admin/10.user-management/36.bulk-mail","/admin/user-management/bulk-mail/",{"title":163,"tags":6,"slug":6,"path":164,"stem":165,"children":166,"page":66,"sourcePath":164},"Dienstkonfiguration","/admin/service-config","10.admin/20.service-config",[167,172,177,182,187,192],{"title":168,"path":169,"stem":170,"tags":6,"slug":171,"sourcePath":169},"Dateibereich-Einstellungen","/admin/service-config/file-area","10.admin/20.service-config/10.file-area","/admin/service-config/file-area/",{"title":173,"path":174,"stem":175,"tags":6,"slug":176,"sourcePath":174},"Webhook-Einstellungen","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings","/admin/service-config/webhook-settings/",{"title":178,"path":179,"stem":180,"tags":6,"slug":181,"sourcePath":179},"Community-Einstellungen","/admin/service-config/community-space","10.admin/20.service-config/22.community-space","/admin/service-config/community-space/",{"title":183,"path":184,"stem":185,"tags":6,"slug":186,"sourcePath":184},"KI-Chatbot-Richtlinie festlegen","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot","/admin/service-config/community-ai-chatbot/",{"title":188,"path":189,"stem":190,"tags":6,"slug":191,"sourcePath":189},"E-Mail-Einstellungen","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings","/admin/service-config/email-settings/",{"title":193,"path":194,"stem":195,"tags":6,"slug":196,"sourcePath":194},"Branding-Einstellungen","/admin/service-config/brand","10.admin/20.service-config/40.brand","/admin/service-config/brand/",{"title":198,"tags":6,"slug":6,"path":199,"stem":200,"children":201,"page":66,"sourcePath":199},"Wissensdienste","/admin/knowledge","10.admin/30.knowledge",[202,207,214,219,224,229,234,239,244],{"title":203,"path":199,"stem":204,"tags":6,"slug":205,"sourcePath":206},"Überblick über die Wissensdienste","10.admin/30.knowledge/00.overview","/admin/knowledge/","/admin/knowledge/overview",{"title":208,"path":209,"stem":210,"children":211,"tags":6,"slug":213,"sourcePath":209},"Erfassung & Indexierung","/admin/knowledge/indexing","10.admin/30.knowledge/10.indexing",[212],{"title":208,"path":209,"stem":210,"tags":6,"slug":213,"sourcePath":209},"/admin/knowledge/indexing/",{"title":215,"path":216,"stem":217,"tags":6,"slug":218,"sourcePath":216},"Suchqualität & Sprachen","/admin/knowledge/search","10.admin/30.knowledge/20.search","/admin/knowledge/search/",{"title":220,"path":221,"stem":222,"tags":6,"slug":223,"sourcePath":221},"Wissensspeicher","/admin/knowledge/storage","10.admin/30.knowledge/30.storage","/admin/knowledge/storage/",{"title":225,"path":226,"stem":227,"tags":6,"slug":228,"sourcePath":226},"Wissensspeicher betreiben","/admin/knowledge/storage-operations","10.admin/30.knowledge/32.storage-operations","/admin/knowledge/storage-operations/",{"title":230,"path":231,"stem":232,"tags":6,"slug":233,"sourcePath":231},"Qdrant verbinden","/admin/knowledge/qdrant","10.admin/30.knowledge/34.qdrant","/admin/knowledge/qdrant/",{"title":235,"path":236,"stem":237,"tags":6,"slug":238,"sourcePath":236},"Qdrant-Server vorbereiten","/admin/knowledge/qdrant-server-setup","10.admin/30.knowledge/35.qdrant-server-setup","/admin/knowledge/qdrant-server-setup/",{"title":240,"path":241,"stem":242,"tags":6,"slug":243,"sourcePath":241},"Milvus verbinden","/admin/knowledge/milvus","10.admin/30.knowledge/36.milvus","/admin/knowledge/milvus/",{"title":245,"path":246,"stem":247,"tags":6,"slug":248,"sourcePath":246},"Externe Suche & Quellen","/admin/knowledge/web-search","10.admin/30.knowledge/40.web-search","/admin/knowledge/web-search/",{"title":250,"tags":6,"slug":6,"path":251,"stem":252,"children":253,"page":66,"sourcePath":251},"KI-Dienste","/admin/ai","10.admin/35.ai",[254,259,264,269],{"title":255,"path":251,"stem":256,"tags":6,"slug":257,"sourcePath":258},"KI-Dienste verwalten","10.admin/35.ai/00.overview","/admin/ai/","/admin/ai/overview",{"title":260,"path":261,"stem":262,"tags":6,"slug":263,"sourcePath":261},"Modelle & Laufzeitumgebung einrichten","/admin/ai/models","10.admin/35.ai/10.models","/admin/ai/models/",{"title":265,"path":266,"stem":267,"tags":6,"slug":268,"sourcePath":266},"Werkzeuge & Integrationen einrichten","/admin/ai/integrations","10.admin/35.ai/20.integrations","/admin/ai/integrations/",{"title":270,"path":271,"stem":272,"tags":6,"slug":273,"sourcePath":271},"MCP-Server verwalten","/admin/ai/mcp","10.admin/35.ai/30.mcp","/admin/ai/mcp/",{"title":275,"tags":6,"slug":6,"path":276,"stem":277,"children":278,"page":66,"sourcePath":276},"Plugins","/admin/plugin","10.admin/40.plugin",[279,284],{"title":280,"path":281,"stem":282,"tags":6,"slug":283,"sourcePath":281},"Plugins verwalten","/admin/plugin/overview","10.admin/40.plugin/00.overview","/admin/plugin/overview/",{"title":285,"path":286,"stem":287,"tags":6,"slug":288,"sourcePath":286},"Einstellungen der Erweiterungs-Plugins","/admin/plugin/settings","10.admin/40.plugin/10.settings","/admin/plugin/settings/",{"title":290,"path":291,"stem":292,"children":293,"page":66,"sourcePath":291},"Operations","/admin/operations","10.admin/45.operations",[294],{"title":295,"path":291,"stem":296,"tags":6,"slug":297,"sourcePath":298},"Betriebs- und Auditprotokolle prüfen","10.admin/45.operations/00.overview","/admin/operations/","/admin/operations/overview",{"title":300,"tags":6,"slug":6,"path":301,"stem":302,"children":303,"page":66,"sourcePath":301},"Sicherheitsverwaltung","/admin/security","10.admin/50.security",[304,309,314,319,324,329,334],{"title":305,"path":306,"stem":307,"tags":6,"slug":308,"sourcePath":306},"Sicherheitsübersicht","/admin/security/overview","10.admin/50.security/00.overview","/admin/security/overview/",{"title":310,"path":311,"stem":312,"tags":6,"slug":313,"sourcePath":311},"Auditprotokoll einsehen","/admin/security/audit-log","10.admin/50.security/05.audit-log","/admin/security/audit-log/",{"title":315,"path":316,"stem":317,"tags":6,"slug":318,"sourcePath":316},"Blockierungsverwaltung","/admin/security/block-management","10.admin/50.security/10.block-management","/admin/security/block-management/",{"title":320,"path":321,"stem":322,"tags":6,"slug":323,"sourcePath":321},"Sicherheitseinstellungen","/admin/security/security-setting","10.admin/50.security/12.security-setting","/admin/security/security-setting/",{"title":325,"path":326,"stem":327,"tags":6,"slug":328,"sourcePath":326},"Geräte mit ausstehender Freigabe bearbeiten","/admin/security/device-approvals","10.admin/50.security/14.device-approvals","/admin/security/device-approvals/",{"title":330,"path":331,"stem":332,"tags":6,"slug":333,"sourcePath":331},"IP-Zugriffsbeschränkung","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction","/admin/security/ip-restriction/",{"title":335,"path":336,"stem":337,"tags":6,"slug":338,"sourcePath":336},"Zwei-Faktor-Authentifizierung für Administratoren einrichten","/admin/security/two-factor-auth","10.admin/50.security/18.two-factor-auth","/admin/security/two-factor-auth/",{"title":340,"tags":6,"slug":6,"path":341,"stem":342,"children":343,"page":66,"sourcePath":341},"Systemverwaltung","/admin/system-admin","10.admin/60.system-admin",[344,349,354,359,364,369],{"title":345,"path":346,"stem":347,"tags":6,"slug":348,"sourcePath":346},"Geräteinformationen","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info","/admin/system-admin/device-info/",{"title":350,"path":351,"stem":352,"tags":6,"slug":353,"sourcePath":351},"Serverneustart und Systemwartung","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart","/admin/system-admin/server-restart/",{"title":355,"path":356,"stem":357,"tags":6,"slug":358,"sourcePath":356},"Hintergrunddienste","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service","/admin/system-admin/background-service/",{"title":360,"path":361,"stem":362,"tags":6,"slug":363,"sourcePath":361},"SpaceBuilder aktualisieren","/admin/system-admin/update","10.admin/60.system-admin/16.update","/admin/system-admin/update/",{"title":365,"path":366,"stem":367,"tags":6,"slug":368,"sourcePath":366},"SpaceBuilder deinstallieren","/admin/system-admin/uninstall","10.admin/60.system-admin/18.uninstall","/admin/system-admin/uninstall/",{"title":370,"path":371,"stem":372,"tags":6,"slug":373,"sourcePath":371},"Server umziehen","/admin/system-admin/server-migration","10.admin/60.system-admin/20.server-migration","/admin/system-admin/server-migration/",{"title":375,"tags":6,"slug":6,"path":376,"stem":377,"children":378,"page":66,"sourcePath":376},"Arbeitsbereich verwenden","/workspace","20.workspace",[379,419,439,523,662,718,754],{"title":380,"tags":6,"slug":6,"path":381,"stem":382,"children":383,"page":66,"sourcePath":381},"Menü","/workspace/menu","20.workspace/05.menu",[384,389,394,399,404,409,414],{"title":385,"path":386,"stem":387,"tags":6,"slug":388,"sourcePath":386},"Einführung in den Arbeitsbereich","/workspace/menu/overview","20.workspace/05.menu/00.overview","/workspace/menu/overview/",{"title":390,"path":391,"stem":392,"tags":6,"slug":393,"sourcePath":391},"Teambereich","/workspace/menu/team-space","20.workspace/05.menu/05.team-space","/workspace/menu/team-space/",{"title":395,"path":396,"stem":397,"tags":6,"slug":398,"sourcePath":396},"Client-Bereich","/workspace/menu/client-space","20.workspace/05.menu/06.client-space","/workspace/menu/client-space/",{"title":400,"path":401,"stem":402,"tags":6,"slug":403,"sourcePath":401},"Favoriten","/workspace/menu/favorites","20.workspace/05.menu/10.favorites","/workspace/menu/favorites/",{"title":405,"path":406,"stem":407,"tags":6,"slug":408,"sourcePath":406},"Zuletzt verwendete Dokumente","/workspace/menu/recent","20.workspace/05.menu/20.recent","/workspace/menu/recent/",{"title":410,"path":411,"stem":412,"tags":6,"slug":413,"sourcePath":411},"Externe Freigabe","/workspace/menu/external-share","20.workspace/05.menu/30.external-share","/workspace/menu/external-share/",{"title":415,"path":416,"stem":417,"tags":6,"slug":418,"sourcePath":416},"Papierkorb","/workspace/menu/trash","20.workspace/05.menu/40.trash","/workspace/menu/trash/",{"title":420,"tags":6,"slug":6,"path":421,"stem":422,"children":423,"page":66,"sourcePath":421},"Konto","/workspace/account","20.workspace/10.account",[424,429,434],{"title":425,"path":426,"stem":427,"tags":6,"slug":428,"sourcePath":426},"Registrierung und Anmeldung","/workspace/account/signup","20.workspace/10.account/10.signup","/workspace/account/signup/",{"title":430,"path":431,"stem":432,"tags":6,"slug":433,"sourcePath":431},"Passwort zurücksetzen","/workspace/account/reset-password","20.workspace/10.account/20.reset-password","/workspace/account/reset-password/",{"title":435,"path":436,"stem":437,"tags":6,"slug":438,"sourcePath":436},"Kontoeinstellungen","/workspace/account/account-settings","20.workspace/10.account/30.account-settings","/workspace/account/account-settings/",{"title":440,"tags":6,"slug":6,"path":441,"stem":442,"children":443,"page":66,"sourcePath":441},"Ordner","/workspace/folder","20.workspace/20.folder",[444,449,454,459,464,471,476,481,486,491,496,501,506,511,518],{"title":445,"path":446,"stem":447,"tags":6,"slug":448,"sourcePath":446},"Grundfunktionen für Ordner","/workspace/folder/basic","20.workspace/20.folder/10.basic","/workspace/folder/basic/",{"title":450,"path":451,"stem":452,"tags":6,"slug":453,"sourcePath":451},"Mehrere Ordner auf einmal erstellen","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation","/workspace/folder/bulk-folder-creation/",{"title":455,"path":456,"stem":457,"tags":6,"slug":458,"sourcePath":456},"Filter","/workspace/folder/filter","20.workspace/20.folder/13.filter","/workspace/folder/filter/",{"title":460,"path":461,"stem":462,"tags":6,"slug":463,"sourcePath":461},"Ordneransichtsoptionen festlegen","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options","/workspace/folder/folder-view-options/",{"title":465,"path":466,"stem":467,"tags":468,"slug":470,"sourcePath":466},"Ordner als Pinnwand verwenden","/workspace/folder/board-view","20.workspace/20.folder/15.board-view",[469],"hot","/workspace/folder/board-view/",{"title":472,"path":473,"stem":474,"tags":6,"slug":475,"sourcePath":473},"Webansicht für Ordner","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view","/workspace/folder/folder-web-view/",{"title":477,"path":478,"stem":479,"tags":6,"slug":480,"sourcePath":478},"Ordner organisieren","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize","/workspace/folder/folder-organize/",{"title":482,"path":483,"stem":484,"tags":6,"slug":485,"sourcePath":483},"Ordnerhinweis (README)","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme","/workspace/folder/folder-readme/",{"title":487,"path":488,"stem":489,"tags":6,"slug":490,"sourcePath":488},"Ordner-/Dateiliste exportieren","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export","/workspace/folder/folder-export/",{"title":492,"path":493,"stem":494,"tags":6,"slug":495,"sourcePath":493},"Zugriffsberechtigungen nach Stufe festlegen","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions","/workspace/folder/level-access-permissions/",{"title":497,"path":498,"stem":499,"tags":6,"slug":500,"sourcePath":498},"Zugriffsberechtigungen nach Team festlegen","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions","/workspace/folder/team-access-permissions/",{"title":502,"path":503,"stem":504,"tags":6,"slug":505,"sourcePath":503},"Dateiregeln festlegen","/workspace/folder/file-rules","20.workspace/20.folder/28.file-rules","/workspace/folder/file-rules/",{"title":507,"path":508,"stem":509,"tags":6,"slug":510,"sourcePath":508},"Ordner-Webhooks","/workspace/folder/webhook","20.workspace/20.folder/30.webhook","/workspace/folder/webhook/",{"title":512,"path":513,"stem":514,"children":515,"tags":6,"slug":517,"sourcePath":513},"Wissensindex für Ordner festlegen","/workspace/folder/knowledge-index","20.workspace/20.folder/32.knowledge-index",[516],{"title":512,"path":513,"stem":514,"tags":6,"slug":517,"sourcePath":513},"/workspace/folder/knowledge-index/",{"title":519,"path":520,"stem":521,"tags":6,"slug":522,"sourcePath":520},"Ordner für Aufgabenautomatisierung","/workspace/folder/automation","20.workspace/20.folder/40.automation","/workspace/folder/automation/",{"title":524,"tags":6,"slug":6,"path":525,"stem":526,"children":527,"page":66,"sourcePath":525},"Dateien","/workspace/file","20.workspace/30.file",[528,533,538,543,548,553,558,563,568,573,578,583,588,593,598,603,608,613,618,623,628,633,637,642,647,652,657],{"title":529,"path":530,"stem":531,"tags":6,"slug":532,"sourcePath":530},"Grundfunktionen der Dateiverwaltung","/workspace/file/overview","20.workspace/30.file/00.overview","/workspace/file/overview/",{"title":534,"path":535,"stem":536,"tags":6,"slug":537,"sourcePath":535},"Dateiliste beim Betrachten anzeigen","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file","/workspace/file/list-in-file/",{"title":539,"path":540,"stem":541,"tags":6,"slug":542,"sourcePath":540},"Markdown- und Textdateien anzeigen und bearbeiten","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer","/workspace/file/text-file-viewer/",{"title":544,"path":545,"stem":546,"tags":6,"slug":547,"sourcePath":545},"HTML-Dateien anzeigen","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer","/workspace/file/html-viewer/",{"title":549,"path":550,"stem":551,"tags":6,"slug":552,"sourcePath":550},"CSV-Dateien anzeigen und bearbeiten","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer","/workspace/file/csv-viewer/",{"title":554,"path":555,"stem":556,"tags":6,"slug":557,"sourcePath":555},"Bild-/Videodateien anzeigen","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer","/workspace/file/image-file-viewer/",{"title":559,"path":560,"stem":561,"tags":6,"slug":562,"sourcePath":560},"Office-/PDF-Dateien anzeigen","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer","/workspace/file/office-viewer/",{"title":564,"path":565,"stem":566,"tags":6,"slug":567,"sourcePath":565},"Webseite einfügen (HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html","/workspace/file/paste-html/",{"title":569,"path":570,"stem":571,"tags":6,"slug":572,"sourcePath":570},"Screenshot einfügen","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot","/workspace/file/paste-screenshot/",{"title":574,"path":575,"stem":576,"tags":6,"slug":577,"sourcePath":575},"Markdown einfügen (MD)","/workspace/file/paste-md","20.workspace/30.file/22.paste-md","/workspace/file/paste-md/",{"title":579,"path":580,"stem":581,"tags":6,"slug":582,"sourcePath":580},"Bildschirm aufnehmen","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording","/workspace/file/screen-recording/",{"title":584,"path":585,"stem":586,"tags":6,"slug":587,"sourcePath":585},"Schnellnotiz","/workspace/file/quick-note","20.workspace/30.file/24.quick-note","/workspace/file/quick-note/",{"title":589,"path":590,"stem":591,"tags":6,"slug":592,"sourcePath":590},"Datei-Tags","/workspace/file/file-tag","20.workspace/30.file/33.file-tag","/workspace/file/file-tag/",{"title":594,"path":595,"stem":596,"tags":6,"slug":597,"sourcePath":595},"Mehrere Dateien auf einmal umbenennen","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise","/workspace/file/bulk-name-revise/",{"title":599,"path":600,"stem":601,"tags":6,"slug":602,"sourcePath":600},"Dateikonvertierung","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview","/workspace/file/file-convert-overview/",{"title":604,"path":605,"stem":606,"tags":6,"slug":607,"sourcePath":605},"Vorlagendateien","/workspace/file/templates","20.workspace/30.file/41.templates","/workspace/file/templates/",{"title":609,"path":610,"stem":611,"tags":6,"slug":612,"sourcePath":610},"Aufgabenliste (Todo)","/workspace/file/template-todo","20.workspace/30.file/42.template-todo","/workspace/file/template-todo/",{"title":614,"path":615,"stem":616,"tags":6,"slug":617,"sourcePath":615},"Genehmigungsformular","/workspace/file/template-approval","20.workspace/30.file/43.template-approval","/workspace/file/template-approval/",{"title":619,"path":620,"stem":621,"tags":6,"slug":622,"sourcePath":620},"Kanban-Board","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban","/workspace/file/template-kanban/",{"title":624,"path":625,"stem":626,"tags":6,"slug":627,"sourcePath":625},"Zeitleiste","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline","/workspace/file/template-timeline/",{"title":629,"path":630,"stem":631,"tags":6,"slug":632,"sourcePath":630},"Notizblock","/workspace/file/template-memo","20.workspace/30.file/46.template-memo","/workspace/file/template-memo/",{"title":634,"path":635,"stem":636,"tags":6,"slug":635,"sourcePath":635},"KI-Chat-Datei","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":638,"path":639,"stem":640,"tags":6,"slug":641,"sourcePath":639},"Änderungsverlauf von Dateien einsehen","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail","/workspace/file/audit-trail/",{"title":643,"path":644,"stem":645,"tags":6,"slug":646,"sourcePath":644},"Versionsverwaltung für Dateien","/workspace/file/version-trail","20.workspace/30.file/51.version-trail","/workspace/file/version-trail/",{"title":648,"path":649,"stem":650,"tags":6,"slug":651,"sourcePath":649},"Bearbeitungssperre","/workspace/file/file-lock","20.workspace/30.file/52.file-lock","/workspace/file/file-lock/",{"title":653,"path":654,"stem":655,"tags":6,"slug":656,"sourcePath":654},"Dateiverschlüsselung","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt","/workspace/file/file-encrypt/",{"title":658,"path":659,"stem":660,"tags":6,"slug":661,"sourcePath":659},"Dateien von der Festplatte registrieren","/workspace/file/disk-file-registration","20.workspace/30.file/60.disk-file-registration","/workspace/file/disk-file-registration/",{"title":663,"tags":6,"slug":6,"path":664,"stem":665,"children":666,"page":66,"sourcePath":664},"Zusammenarbeit","/workspace/cooperation","20.workspace/35.cooperation",[667,672,677,682,687,692,697,702,707,713],{"title":668,"path":669,"stem":670,"tags":6,"slug":671,"sourcePath":669},"Kommentare zu Dateien und Ordnern","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments","/workspace/cooperation/file-comments/",{"title":673,"path":674,"stem":675,"tags":6,"slug":676,"sourcePath":674},"Chat","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat","/workspace/cooperation/chat/",{"title":678,"path":679,"stem":680,"tags":6,"slug":681,"sourcePath":679},"Gemeinsamer Chat und Bearbeitungssperre","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat","/workspace/cooperation/collaboration-chat/",{"title":683,"path":684,"stem":685,"tags":6,"slug":686,"sourcePath":684},"Teammitgliedern an ihren Arbeitsort folgen","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location","/workspace/cooperation/follow-team-location/",{"title":688,"path":689,"stem":690,"tags":6,"slug":691,"sourcePath":689},"Erwähnungen","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention","/workspace/cooperation/mention/",{"title":693,"path":694,"stem":695,"tags":6,"slug":696,"sourcePath":694},"Direktnachrichten","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm","/workspace/cooperation/dm/",{"title":698,"path":699,"stem":700,"tags":6,"slug":701,"sourcePath":699},"Benachrichtigungsarchiv","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox","/workspace/cooperation/notification-inbox/",{"title":703,"path":704,"stem":705,"tags":6,"slug":706,"sourcePath":704},"Teamaktivitäten einsehen","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity","/workspace/cooperation/file-activity/",{"title":708,"path":709,"stem":710,"tags":711,"slug":712,"sourcePath":709},"Externen Freigabelink erstellen","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",[469],"/workspace/cooperation/share-link-creation/",{"title":714,"path":715,"stem":716,"tags":6,"slug":717,"sourcePath":715},"Externen Freigabelink per E-Mail senden","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email","/workspace/cooperation/share-link-email/",{"title":719,"tags":6,"slug":6,"path":720,"stem":721,"children":722,"page":66,"sourcePath":720},"Suche","/workspace/search","20.workspace/40.search",[723,728,734,739,744,749],{"title":724,"path":725,"stem":726,"tags":6,"slug":727,"sourcePath":725},"Dateisuche","/workspace/search/search","20.workspace/40.search/00.search","/workspace/search/search/",{"title":729,"path":730,"stem":731,"tags":732,"slug":733,"sourcePath":730},"Kontextsuche (KI-Suche)","/workspace/search/context-search","20.workspace/40.search/10.context-search",[469],"/workspace/search/context-search/",{"title":735,"path":736,"stem":737,"tags":6,"slug":738,"sourcePath":736},"Bildsuche","/workspace/search/image-search","20.workspace/40.search/20.image-search","/workspace/search/image-search/",{"title":740,"path":741,"stem":742,"tags":6,"slug":743,"sourcePath":741},"Chatsuche","/workspace/search/chat-search","20.workspace/40.search/30.chat-search","/workspace/search/chat-search/",{"title":745,"path":746,"stem":747,"tags":6,"slug":748,"sourcePath":746},"Kommentarsuche","/workspace/search/comment-search","20.workspace/40.search/40.comment-search","/workspace/search/comment-search/",{"title":750,"path":751,"stem":752,"tags":6,"slug":753,"sourcePath":751},"Synonymsuche","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search","/workspace/search/synonym-search/",{"title":755,"tags":6,"slug":6,"path":756,"stem":757,"children":758,"page":66,"sourcePath":756},"KI","/workspace/ai","20.workspace/50.ai",[759,764,770],{"title":760,"path":761,"stem":762,"tags":6,"slug":763,"sourcePath":761},"KI-Funktionen im Überblick","/workspace/ai/overview","20.workspace/50.ai/00.overview","/workspace/ai/overview/",{"title":765,"path":766,"stem":767,"tags":768,"slug":769,"sourcePath":766},"Lokale KI mit Aufgaben beauftragen","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[469],"/workspace/ai/ai-work/",{"title":771,"path":772,"stem":773,"tags":6,"slug":774,"sourcePath":772},"Externe KI nutzen","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai","/workspace/ai/external-ai/",{"title":776,"tags":6,"slug":6,"path":777,"stem":778,"children":779,"page":66,"sourcePath":777},"Webspace","/webspace","40.webspace",[780,785,790,795,800,805,811,816,821,826,831,866],{"title":781,"path":782,"stem":783,"tags":6,"slug":784,"sourcePath":782},"Was ist Webspace?","/webspace/overview","40.webspace/00.overview","/webspace/overview/",{"title":786,"path":787,"stem":788,"tags":6,"slug":789,"sourcePath":787},"Website bereitstellen","/webspace/website-release","40.webspace/10.website-release","/webspace/website-release/",{"title":791,"path":792,"stem":793,"tags":6,"slug":794,"sourcePath":792},"Schemadatei (.sfn) erstellen","/webspace/create-database","40.webspace/20.create-database","/webspace/create-database/",{"title":796,"path":797,"stem":798,"tags":6,"slug":799,"sourcePath":797},"APIs erstellen und Datenbank bereitstellen","/webspace/api-overview","40.webspace/24.api-overview","/webspace/api-overview/",{"title":801,"path":802,"stem":803,"tags":6,"slug":804,"sourcePath":802},"Frontend-Beispiel ansehen","/webspace/frontend-example","40.webspace/26.frontend-example","/webspace/frontend-example/",{"title":806,"path":807,"stem":808,"tags":809,"slug":810,"sourcePath":807},"Internen Webservice für das Team erstellen","/webspace/internal-webservice","40.webspace/32.internal-webservice",[469],"/webspace/internal-webservice/",{"title":812,"path":813,"stem":814,"tags":6,"slug":815,"sourcePath":813},"Öffentlich zugänglichen Webservice erstellen","/webspace/external-webservice","40.webspace/34.external-webservice","/webspace/external-webservice/",{"title":817,"path":818,"stem":819,"tags":6,"slug":820,"sourcePath":818},"SQL importieren und exportieren","/webspace/sql-converter","40.webspace/42.sql-converter","/webspace/sql-converter/",{"title":822,"path":823,"stem":824,"tags":6,"slug":825,"sourcePath":823},"Schema in Code umwandeln","/webspace/code-converter","40.webspace/44.code-converter","/webspace/code-converter/",{"title":827,"path":828,"stem":829,"tags":6,"slug":830,"sourcePath":828},"Leistung und Skalierung","/webspace/performance","40.webspace/48.performance","/webspace/performance/",{"title":832,"tags":6,"slug":6,"path":833,"stem":834,"children":835,"page":66,"sourcePath":833},"Webspace verwalten","/webspace/admin","40.webspace/50.admin",[836,841,846,851,856,861],{"title":837,"path":838,"stem":839,"tags":6,"slug":840,"sourcePath":838},"Erste Schritte mit der Webspace-Verwaltung","/webspace/admin/overview","40.webspace/50.admin/00.overview","/webspace/admin/overview/",{"title":842,"path":843,"stem":844,"tags":6,"slug":845,"sourcePath":843},"Betriebsübersicht","/webspace/admin/operations","40.webspace/50.admin/10.operations","/webspace/admin/operations/",{"title":847,"path":848,"stem":849,"tags":6,"slug":850,"sourcePath":848},"Arbeitsbereichszugriff","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access","/webspace/admin/workspace-access/",{"title":852,"path":853,"stem":854,"tags":6,"slug":855,"sourcePath":853},"API- und Site-Sicherheit","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security","/webspace/admin/api-site-security/",{"title":857,"path":858,"stem":859,"tags":6,"slug":860,"sourcePath":858},"Dienste und Kapazität","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity","/webspace/admin/service-capacity/",{"title":862,"path":863,"stem":864,"tags":6,"slug":865,"sourcePath":863},"Bereitstellungsverwaltung und Frontend-Releases","/webspace/admin/deployments","40.webspace/50.admin/50.deployments","/webspace/admin/deployments/",{"title":867,"tags":868,"slug":6,"path":869,"stem":870,"children":871,"page":66,"sourcePath":869},"Webspace-Tutorials",[469],"/webspace/examples","40.webspace/60.examples",[872,876,881,887,892,897],{"title":867,"path":869,"stem":873,"tags":6,"slug":874,"sourcePath":875},"40.webspace/60.examples/00.overview","/webspace/examples/","/webspace/examples/overview",{"title":877,"path":878,"stem":879,"tags":6,"slug":880,"sourcePath":878},"Eigenes Geschäftssystem erstellen","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system","/webspace/examples/my-own-system/",{"title":882,"path":883,"stem":884,"tags":885,"slug":886,"sourcePath":883},"Echtzeit-Gomoku-Spiel erstellen","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",[469],"/webspace/examples/realtime-gomoku/",{"title":888,"path":889,"stem":890,"tags":6,"slug":891,"sourcePath":889},"Material-Pinnwand aus Ordnerdateien erstellen","/webspace/examples/folder-board","40.webspace/60.examples/30.folder-board","/webspace/examples/folder-board/",{"title":893,"path":894,"stem":895,"tags":6,"slug":896,"sourcePath":894},"Gemeinsamen Monster-Raid erstellen","/webspace/examples/monster-raid","40.webspace/60.examples/40.monster-raid","/webspace/examples/monster-raid/",{"title":898,"path":899,"stem":900,"tags":6,"slug":901,"sourcePath":899},"Beispiel für einen KI-Support-Chat bereitstellen","/webspace/examples/ai-support-chat","40.webspace/60.examples/50.ai-support-chat","/webspace/examples/ai-support-chat/",{"title":903,"tags":6,"slug":6,"path":904,"stem":905,"children":906,"page":66,"sourcePath":904},"Plugins verwenden","/plugin","50.plugin",[907,912,932,992,1013,1048],{"title":908,"path":909,"stem":910,"tags":6,"slug":911,"sourcePath":909},"Plugin-Überblick","/plugin/overview","50.plugin/00.overview","/plugin/overview/",{"title":913,"tags":6,"slug":6,"path":914,"stem":915,"children":916,"page":66,"sourcePath":914},"Kalender","/plugin/calendar","50.plugin/10.calendar",[917,922,927],{"title":918,"path":919,"stem":920,"tags":6,"slug":921,"sourcePath":919},"Kalender im Überblick","/plugin/calendar/overview","50.plugin/10.calendar/00.overview","/plugin/calendar/overview/",{"title":923,"path":924,"stem":925,"tags":6,"slug":926,"sourcePath":924},"Termine erstellen, bearbeiten und löschen","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event","/plugin/calendar/create-event/",{"title":928,"path":929,"stem":930,"tags":6,"slug":931,"sourcePath":929},"Aktivitätsprotokolle prüfen","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity","/plugin/calendar/file-activity/",{"title":933,"tags":6,"slug":6,"path":934,"stem":935,"children":936,"page":66,"sourcePath":934},"E-Mail","/plugin/email","50.plugin/20.email",[937,942,946,951,956,962,967,972,977,982,987],{"title":938,"path":939,"stem":940,"tags":6,"slug":941,"sourcePath":939},"E-Mail im Überblick","/plugin/email/overview","50.plugin/20.email/00.overview","/plugin/email/overview/",{"title":188,"path":943,"stem":944,"tags":6,"slug":945,"sourcePath":943},"/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting","/plugin/email/setfn-email-setting/",{"title":947,"path":948,"stem":949,"tags":6,"slug":950,"sourcePath":948},"Externes E-Mail-Konto verbinden","/plugin/email/external-email","50.plugin/20.email/07.external-email","/plugin/email/external-email/",{"title":952,"path":953,"stem":954,"tags":6,"slug":955,"sourcePath":953},"E-Mail-Grundfunktionen","/plugin/email/email-basic","50.plugin/20.email/10.email-basic","/plugin/email/email-basic/",{"title":957,"path":958,"stem":959,"tags":6,"slug":960,"sourcePath":961},"KI-Assistenten für E-Mails verwenden","/plugin/email/ai-assistant","50.plugin/20.email/15.email-ai-assistant","/plugin/email/ai-assistant/","/plugin/email/email-ai-assistant",{"title":963,"path":964,"stem":965,"tags":6,"slug":966,"sourcePath":964},"E-Mails verfassen und senden","/plugin/email/email-compose","50.plugin/20.email/20.email-compose","/plugin/email/email-compose/",{"title":968,"path":969,"stem":970,"tags":6,"slug":971,"sourcePath":969},"Dateien anhängen","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment","/plugin/email/email-attachment/",{"title":973,"path":974,"stem":975,"tags":6,"slug":976,"sourcePath":974},"E-Mail-Ordner verwalten","/plugin/email/email-folders","50.plugin/20.email/40.email-folders","/plugin/email/email-folders/",{"title":978,"path":979,"stem":980,"tags":6,"slug":981,"sourcePath":979},"E-Mails automatisch sortieren","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify","/plugin/email/email-auto-classify/",{"title":983,"path":984,"stem":985,"tags":6,"slug":986,"sourcePath":984},"E-Mail-Dateien aufbewahren und teilen","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space","/plugin/email/email-open-in-space/",{"title":988,"path":989,"stem":990,"tags":6,"slug":991,"sourcePath":989},"E-Mail-Sicherheit","/plugin/email/email-security","50.plugin/20.email/70.email-security","/plugin/email/email-security/",{"title":993,"tags":6,"slug":6,"path":994,"stem":995,"children":996,"page":66,"sourcePath":994},"Workflow (Automatisierung)","/plugin/workflow","50.plugin/30.workflow",[997,1002,1008],{"title":998,"path":999,"stem":1000,"tags":6,"slug":1001,"sourcePath":999},"Workflow im Überblick","/plugin/workflow/overview","50.plugin/30.workflow/00.overview","/plugin/workflow/overview/",{"title":1003,"path":1004,"stem":1005,"tags":1006,"slug":1007,"sourcePath":1004},"Neuen Workflow erstellen","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[469],"/plugin/workflow/new-workflow/",{"title":1009,"path":1010,"stem":1011,"tags":6,"slug":1012,"sourcePath":1010},"Ausführungsverlauf prüfen","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history","/plugin/workflow/execution-history/",{"title":1014,"tags":6,"slug":6,"path":1015,"stem":1016,"children":1017,"page":66,"sourcePath":1015},"Fine-Tuning (KI-Training)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[1018,1023,1028,1033,1038,1043],{"title":1019,"path":1020,"stem":1021,"tags":6,"slug":1022,"sourcePath":1020},"Einführung in das Fine-Tuning","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview","/plugin/fine-tuning/overview/",{"title":1024,"path":1025,"stem":1026,"tags":6,"slug":1027,"sourcePath":1025},"Trainingsdaten vorverarbeiten","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing","/plugin/fine-tuning/pre-processing/",{"title":1029,"path":1030,"stem":1031,"tags":6,"slug":1032,"sourcePath":1030},"Training","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training","/plugin/fine-tuning/training/",{"title":1034,"path":1035,"stem":1036,"tags":6,"slug":1037,"sourcePath":1035},"Evaluierung","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation","/plugin/fine-tuning/evaluation/",{"title":1039,"path":1040,"stem":1041,"tags":6,"slug":1042,"sourcePath":1040},"Chat-Test","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test","/plugin/fine-tuning/chat-test/",{"title":1044,"path":1045,"stem":1046,"tags":6,"slug":1047,"sourcePath":1045},"Exportieren","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export","/plugin/fine-tuning/export/",{"title":1049,"tags":6,"slug":6,"path":1050,"stem":1051,"children":1052,"page":66,"sourcePath":1050},"EDC (Datenerfassung)","/plugin/edc","50.plugin/50.edc",[1053,1058,1063,1068],{"title":1054,"path":1055,"stem":1056,"tags":6,"slug":1057,"sourcePath":1055},"Einführung in EDC","/plugin/edc/overview","50.plugin/50.edc/00.overview","/plugin/edc/overview/",{"title":1059,"path":1060,"stem":1061,"tags":6,"slug":1062,"sourcePath":1060},"Dateneingabe, Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry","/plugin/edc/data-entry/",{"title":1064,"path":1065,"stem":1066,"tags":6,"slug":1067,"sourcePath":1065},"Builder","/plugin/edc/builder","50.plugin/50.edc/20.builder","/plugin/edc/builder/",{"title":1069,"path":1070,"stem":1071,"tags":6,"slug":1072,"sourcePath":1070},"Benutzer und Studienzentren einrichten","/plugin/edc/account","50.plugin/50.edc/30.account","/plugin/edc/account/",{"title":1074,"tags":6,"slug":6,"path":1075,"stem":1076,"children":1077,"page":66,"sourcePath":1075},"Befehlszeilentools","/cli","90.cli",[1078],{"title":1079,"path":1080,"stem":1081,"tags":6,"slug":1082,"sourcePath":1080},"Server über Befehle verwalten","/cli/commands","90.cli/10.commands","/cli/commands/",{"title":1084,"tags":6,"slug":6,"path":1085,"stem":1086,"children":1087,"page":66,"sourcePath":1085},"Sicherheitsupdates","/security-updates","95.security-updates",[1088,1093,1098,1103],{"title":1089,"path":1090,"stem":1091,"tags":6,"slug":1092,"sourcePath":1090},"Sicherheitsprüfungen und Update-Verfahren kennenlernen","/security-updates/overview","95.security-updates/00.overview","/security-updates/overview/",{"title":1094,"path":1095,"stem":1096,"tags":6,"slug":1097,"sourcePath":1095},"Protokoll der Sicherheitsprüfungen","/security-updates/review-log","95.security-updates/10.review-log","/security-updates/review-log/",{"title":1099,"path":1100,"stem":1101,"tags":6,"slug":1102,"sourcePath":1100},"Prüfstatus wichtiger Schwachstellen","/security-updates/vulnerability-status","95.security-updates/20.vulnerability-status","/security-updates/vulnerability-status/",{"title":1104,"path":1105,"stem":1106,"tags":6,"slug":1107,"sourcePath":1105},"Sicherheitsupdates des Servers prüfen","/security-updates/server-checklist","95.security-updates/30.server-checklist","/security-updates/server-checklist/",{"title":1109,"tags":6,"slug":6,"path":1110,"stem":1111,"children":1112,"page":66,"sourcePath":1110},"FAQ","/faq","99.FAQ",[1113,1119,1125,1131,1137,1143,1149],{"title":1114,"path":1115,"stem":1116,"tags":6,"slug":1117,"sourcePath":1118},"SetFN vs. Cloud-Dienste im Vergleich","/FAQ/comparison-cloud","99.FAQ/10.comparison-cloud","/FAQ/comparison-cloud/","/faq/comparison-cloud",{"title":1120,"path":1121,"stem":1122,"tags":6,"slug":1123,"sourcePath":1124},"SetFN vs. NAS im Vergleich","/FAQ/comparison-nas","99.FAQ/20.comparison-nas","/FAQ/comparison-nas/","/faq/comparison-nas",{"title":1126,"path":1127,"stem":1128,"tags":6,"slug":1129,"sourcePath":1130},"Sicherheitsrichtlinie","/FAQ/security-policy","99.FAQ/30.security-policy","/FAQ/security-policy/","/faq/security-policy",{"title":1132,"path":1133,"stem":1134,"tags":6,"slug":1135,"sourcePath":1136},"Warum SetFN so schnell ist","/FAQ/why-fast","99.FAQ/40.why-fast","/FAQ/why-fast/","/faq/why-fast",{"title":1138,"path":1139,"stem":1140,"tags":6,"slug":1141,"sourcePath":1142},"Lizenz-FAQ","/FAQ/license-faq","99.FAQ/50.license-faq","/FAQ/license-faq/","/faq/license-faq",{"title":1144,"path":1145,"stem":1146,"tags":6,"slug":1147,"sourcePath":1148},"FAQ zu KI-Funktionen","/FAQ/ai-faq","99.FAQ/60.ai-faq","/FAQ/ai-faq/","/faq/ai-faq",{"title":1150,"path":1151,"stem":1152,"tags":6,"slug":1153,"sourcePath":1154},"Leitfaden zur Fehlerbehebung","/FAQ/troubleshooting","99.FAQ/70.troubleshooting","/FAQ/troubleshooting/","/faq/troubleshooting",{"id":1156,"title":882,"body":1157,"cover":6,"description":1819,"extension":1820,"image":6,"meta":1821,"navigation":1822,"path":883,"reviewSummary":6,"reviewedAt":6,"seo":1823,"slug":886,"stem":884,"tags":1835,"thumbnail":1177,"thumbnailPosition":1836,"thumbnailScale":1837,"__hash__":1838},"docs_de/40.webspace/60.examples/20.realtime-gomoku.md",{"type":1158,"value":1159,"toc":1803},"minimal",[1160,1164,1168,1171,1178,1181,1186,1194,1225,1228,1245,1248,1252,1255,1323,1326,1330,1333,1343,1350,1394,1397,1401,1408,1458,1461,1465,1472,1479,1482,1488,1495,1499,1509,1519,1532,1536,1565,1568,1574,1578,1581,1587,1594,1598,1603,1699,1702,1705,1709,1775,1779,1782,1786],[1161,1162,882],"h1",{"id":1163},"echtzeit-gomoku-spiel-erstellen",[1165,1166,1167],"p",{},"Laden Sie die Dateien hoch, stellen Sie das Schema bereit und öffnen Sie zwei Browser. Ein Freund tritt dem in einem Browser erstellten Raum bei, und sobald ein Stein gesetzt wird, erscheint derselbe Zug auch auf dem anderen Bildschirm. Sieg, Niederlage und Rangliste zeichnet der Server automatisch auf.",[1165,1169,1170],{},"Ein separates Frontend-Build-Tool ist nicht erforderlich. Spielen Sie zuerst mit dem fertigen Beispiel eine Partie und ändern Sie dann nacheinander Datenstruktur, Echtzeitfunktionen und Spielregeln.",[1165,1172,1173],{},[1174,1175],"img",{"alt":1176,"src":1177},"19×19-Spielbrett mit Live-Übertragung und Spielerrangliste","/img/docs/webspace/gomoku/realtime-gomoku-board.png",[1179,1180],"hr",{},[1182,1183,1185],"h2",{"id":1184},"_1-zuerst-eine-partie-spielen","1. Zuerst eine Partie spielen",[1165,1187,1188,1189,1193],{},"Am schnellsten starten Sie mit dem ",[1190,1191,1192],"strong",{},"vollständigen Beispiel als ZIP",". Laden Sie Schema und Ansichtsdateien in denselben Ordner hoch und stellen Sie das Schema bereit. Danach können Sie sofort eine Partie eröffnen.",[1195,1196,1197,1218],"ul",{},[1198,1199,1200,1205,1206,1210,1211,1210,1214,1217],"li",{},[1201,1202,1204],"a",{"href":1203},"/examples/webspace/gomoku/setfn-realtime-gomoku-sample.zip","Vollständiges Echtzeit-Gomoku-Beispiel als ZIP herunterladen",": enthält Schema, ",[1207,1208,1209],"code",{},"index.html",", ",[1207,1212,1213],{},"style.css",[1207,1215,1216],{},"app.js"," und README",[1198,1219,1220,1224],{},[1201,1221,1223],{"href":1222},"/examples/webspace/gomoku/gomoku-realtime.sfn","Gomoku-Schemadatei (.sfn) herunterladen",": wenn Sie nur die Backend-Struktur ansehen oder eine selbst erstellte Ansicht anbinden möchten",[1165,1226,1227],{},"Wenn Sie das Beispiel ausführen, sehen Sie Folgendes:",[1195,1229,1230,1233,1236,1239,1242],{},[1198,1231,1232],{},"Partie zweier Benutzer über einen Raumcode",[1198,1234,1235],{},"Anzeige des letzten Zugs, der eigenen Steine und des aktuellen Zugrechts",[1198,1237,1238],{},"Zeitlimit von 3 Minuten, das nach jedem Zug neu beginnt",[1198,1240,1241],{},"Live-Übertragung der Partie mit dem aktuellen Spielverlauf",[1198,1243,1244],{},"Anzeige von Sieg und Niederlage sowie automatische Aktualisierung der letzten Partien und der Spielerrangliste",[1165,1246,1247],{},"Im Schema sind ein 19×19-Spielbrett, der Sieg mit fünf Steinen in einer Reihe und die Punkteregel 3 Punkte für Sieg, 1 Punkt für Unentschieden, 0 Punkte für Niederlage bereits hinterlegt. Jeder Benutzer kann bis zu 3 Warteräume erstellen; Warteräume ohne Teilnehmer werden nach 30 Minuten zur Bereinigung vorgemerkt.",[1182,1249,1251],{"id":1250},"funktionen-die-im-spiel-zusammenwirken","Funktionen, die im Spiel zusammenwirken",[1165,1253,1254],{},"Eine Gomoku-Partie enthält ganz selbstverständlich die wichtigsten Funktionen von Webspace.",[1256,1257,1258,1271],"table",{},[1259,1260,1261],"thead",{},[1262,1263,1264,1268],"tr",{},[1265,1266,1267],"th",{},"Funktion",[1265,1269,1270],{},"Aufgabe in Gomoku",[1272,1273,1274,1283,1291,1299,1307,1315],"tbody",{},[1262,1275,1276,1280],{},[1277,1278,1279],"td",{},"Schemadatei",[1277,1281,1282],{},"Definiert die Struktur von Partien, Zugaufzeichnungen und Spielerbilanzen",[1262,1284,1285,1288],{},[1277,1286,1287],{},"REST-API",[1277,1289,1290],{},"Abfrage der letzten Partien und der Spielerrangliste",[1262,1292,1293,1296],{},[1277,1294,1295],{},"WebSocket",[1277,1297,1298],{},"Überträgt Raumerstellung, Beitritt und Zugergebnisse in Echtzeit",[1262,1300,1301,1304],{},[1277,1302,1303],{},"Ereignishandler",[1277,1305,1306],{},"Entscheidet auf dem Server über Zugreihenfolge, Koordinaten, Siegbedingung und Zeitlimit",[1262,1308,1309,1312],{},[1277,1310,1311],{},"Mitgliedsberechtigung",[1277,1313,1314],{},"Nur angemeldete Benutzer nehmen an Partien teil",[1262,1316,1317,1320],{},[1277,1318,1319],{},"Kollaborationsfunktion",[1277,1321,1322],{},"Chat mit Teilnehmern in derselben Ansicht",[1165,1324,1325],{},"Wichtig ist, dass der Browser weder den Sieg erklärt noch Punkte direkt schreibt. Der Server prüft das aktuelle Brett und das Zugrecht, speichert nur gültige Züge und sendet beiden Benutzern dasselbe Ergebnis.",[1182,1327,1329],{"id":1328},"_2-in-den-arbeitsbereich-hochladen","2. In den Arbeitsbereich hochladen",[1165,1331,1332],{},"Wenn Sie nur die Schemadatei heruntergeladen haben, laden Sie sie in einen Projektordner des Team- oder persönlichen Arbeitsbereichs hoch. Wenn Sie das vollständige ZIP heruntergeladen haben, legen Sie die fünf Dateien per Ordner-Upload oder Archiv-Upload in denselben Ordner.",[1334,1335,1341],"pre",{"className":1336,"code":1338,"language":1339,"meta":1340},[1337],"language-text","gomoku-arena/\n├── gomoku-realtime.sfn\n├── index.html\n├── style.css\n├── app.js\n└── README.md\n","text","",[1207,1342,1338],{"__ignoreMap":1340},[1165,1344,1345,1346,1349],{},"Öffnen Sie die Schemadatei und prüfen Sie unter ",[1207,1347,1348],{},"Datenbankstruktur"," die drei Tabellen.",[1256,1351,1352,1362],{},[1259,1353,1354],{},[1262,1355,1356,1359],{},[1265,1357,1358],{},"Tabelle",[1265,1360,1361],{},"Gespeicherte Inhalte",[1272,1363,1364,1374,1384],{},[1262,1365,1366,1371],{},[1277,1367,1368],{},[1207,1369,1370],{},"gomoku_games",[1277,1372,1373],{},"Raumcode, Teilnehmer, aktuelles Zugrecht, Zeitlimit und Endergebnis",[1262,1375,1376,1381],{},[1277,1377,1378],{},[1207,1379,1380],{},"gomoku_moves",[1277,1382,1383],{},"Zugnummer, Steinfarbe, Koordinaten und Benutzer",[1262,1385,1386,1391],{},[1277,1387,1388],{},[1207,1389,1390],{},"gomoku_players",[1277,1392,1393],{},"Siege, Niederlagen und Unentschieden je Benutzer, Gesamtpunkte und letzte Partien",[1165,1395,1396],{},"Da Partien und Bilanzen getrennt gespeichert werden, lassen sich die letzten Aufzeichnungen und die Rangliste auch nach dem erneuten Öffnen der Ansicht wieder laden.",[1182,1398,1400],{"id":1399},"_3-api-und-echtzeitfunktionen-prüfen","3. API und Echtzeitfunktionen prüfen",[1165,1402,1403,1404,1407],{},"Öffnen Sie oben ",[1207,1405,1406],{},"API-Erstellung"," und prüfen Sie die folgenden Punkte:",[1409,1410,1411,1418,1427,1441,1455],"ol",{},[1198,1412,1413,1414,1417],{},"Der Datenbankname lautet ",[1207,1415,1416],{},"gomoku",".",[1198,1419,1420,1423,1424,1417],{},[1207,1421,1422],{},"Echtzeit-Socket"," steht auf ",[1207,1425,1426],{},"Aktiviert",[1198,1428,1429,1432,1433,1436,1437,1440],{},[1207,1430,1431],{},"Serverfunktion"," ist ",[1207,1434,1435],{},"Rundenbasiertes Brettspiel"," (",[1207,1438,1439],{},"turn-based-board",").",[1198,1442,1443,1444,1447,1448,1451,1452,1417],{},"Die Berechtigungen ",[1207,1445,1446],{},"Senden"," und ",[1207,1449,1450],{},"Empfangen"," stehen auf ",[1207,1453,1454],{},"Nur Mitglieder",[1198,1456,1457],{},"Die APIs zum Erstellen und Ändern sind für alle drei Tabellen deaktiviert.",[1165,1459,1460],{},"Das Deaktivieren der Erstellungs- und Änderungs-APIs hat einen Grund: Teilnehmer sollen Siegzahlen oder Zugaufzeichnungen nicht direkt über die REST-API ändern können, und jede Änderung des Spielzustands soll den Ereignishandler des Servers durchlaufen.",[1182,1462,1464],{"id":1463},"_4-mit-sqlite3-bereitstellen","4. Mit SQLite3 bereitstellen",[1165,1466,1467,1468,1471],{},"Wählen Sie beim ersten Ausführen unter ",[1207,1469,1470],{},"Speicher"," SQLite3. Da Sie weder eine Datenbankadresse noch ein Konto vorbereiten müssen, ist dies der einfachste Weg, das Beispiel auszuprobieren.",[1165,1473,1474,1475,1478],{},"Prüfen Sie vor dem Klick auf ",[1207,1476,1477],{},"Bereitstellen"," die angezeigten Änderungen und die Berechtigungszusammenfassung. Enthält eine Datenbank mit demselben Namen bereits Einträge, kann je nach Überschreibrichtlinie des Servers die Genehmigung eines Administrators oder Bereitstellungsverantwortlichen erforderlich sein.",[1165,1480,1481],{},"Nach Abschluss der Bereitstellung stehen REST-API und WebSocket im folgenden Adressformat bereit.",[1334,1483,1486],{"className":1484,"code":1485,"language":1339,"meta":1340},[1337],"GET /api/web/gomoku/gomoku_games/list\nGET /api/web/gomoku/gomoku_players/list\nWS  /api/web/gomoku/realtime-ws\n",[1207,1487,1485],{"__ignoreMap":1340},[1165,1489,1490,1491,1494],{},"Läuft der Produktionsserver über HTTPS, muss der Browser eine sichere ",[1207,1492,1493],{},"wss://","-Verbindung auf derselben Domain verwenden. Die Adresse sollte nicht fest auf eine bestimmte Entwicklungsdomain codiert, sondern aus dem Host der aktuellen Seite gebildet werden.",[1182,1496,1498],{"id":1497},"_5-gomoku-ansicht-öffnen","5. Gomoku-Ansicht öffnen",[1165,1500,1501,1502,1210,1504,1447,1506,1508],{},"Die Schemadatei erstellt Datenbank und Backend des Spiels; ",[1207,1503,1209],{},[1207,1505,1213],{},[1207,1507,1216],{}," sind für Spielbrett und Benutzererlebnis zuständig. Durch diese Trennung können Sie die Ansicht neu gestalten und dabei die Partieaufzeichnungen behalten.",[1165,1510,1511,1512,1514,1515,1518],{},"Wenn Sie das vollständige Beispiel hochgeladen haben, wählen Sie ",[1207,1513,1209],{}," und öffnen Sie die ",[1207,1516,1517],{},"Vorschau",". Wenn Sie nur die Schemadatei verwenden, binden Sie die obige REST-API und den WebSocket in Ihrem eigenen HTML an.",[1165,1520,1521,1522,1210,1525,1447,1528,1531],{},"Der Client sendet Aktionen wie ",[1207,1523,1524],{},"board-game.create",[1207,1526,1527],{},"board-game.join",[1207,1529,1530],{},"board-game.move"," über WebSocket. Steine und Punkte werden auf Grundlage der vom Server zurückgesendeten bestätigten Ereignisse angezeigt.",[1182,1533,1535],{"id":1534},"_6-zu-zweit-tatsächlich-spielen","6. Zu zweit tatsächlich spielen",[1409,1537,1538,1544,1550,1553,1559,1562],{},[1198,1539,1540,1541,1543],{},"Öffnen Sie dieselbe ",[1207,1542,1209],{}," mit zwei verschiedenen Mitgliedskonten.",[1198,1545,1546,1547,1417],{},"Klicken Sie im ersten Konto auf ",[1207,1548,1549],{},"Neue Partie erstellen",[1198,1551,1552],{},"Übermitteln Sie den erzeugten Raumcode an das zweite Konto.",[1198,1554,1555,1556,1417],{},"Geben Sie den Code im zweiten Konto ein und klicken Sie auf ",[1207,1557,1558],{},"Beitreten",[1198,1560,1561],{},"Setzen Sie abwechselnd Steine und prüfen Sie, ob derselbe Zug auf beiden Bildschirmen erscheint.",[1198,1563,1564],{},"Prüfen Sie nach fünf Steinen in einer Reihe, ob die Sieganzeige, die letzten Partien und die Rangliste aktualisiert werden.",[1165,1566,1567],{},"Mit Browsern, deren Anmeldesitzungen getrennt sind, etwa ein normales und ein Inkognito-Fenster, lässt sich das bequem auf einem einzigen Computer testen.",[1165,1569,1570],{},[1174,1571],{"alt":1572,"src":1573},"Echtzeit-Gomoku-Ansicht mit geöffnetem gemeinsamem Chat","/img/docs/webspace/gomoku/realtime-gomoku-collaboration.png",[1182,1575,1577],{"id":1576},"das-ergebnis-zeichnet-der-server-auf","Das Ergebnis zeichnet der Server auf",[1165,1579,1580],{},"Sobald fünf Steine waagerecht, senkrecht oder diagonal in einer Reihe liegen, beendet der Server die Partie und speichert Sieger und Punkte. Auch wenn das Zeitlimit eines Zugs überschritten wird, entscheidet der Server anhand der Serverzeit über die Niederlage durch Zeitüberschreitung.",[1165,1582,1583],{},[1174,1584],{"alt":1585,"src":1586},"Gomoku-Siegergebnis und automatisch berechnete Spielerrangliste","/img/docs/webspace/gomoku/realtime-gomoku-result.png",[1165,1588,1589,1590,1593],{},"Wenn sich die letzten Partien und die Rangliste nicht sofort ändern, prüfen Sie statt erneutem Klicken, ob der Ablauf die Liste nach Empfang des WebSocket-Abschlussereignisses erneut abfragt. Wenn Sie in der Ansicht ",[1207,1591,1592],{},"Entwicklerinformationen"," aufklappen, sehen Sie auch das gesendete und empfangene JSON sowie die Verarbeitungszeit des Servers.",[1182,1595,1597],{"id":1596},"von-hier-aus-ein-eigenes-spiel-erstellen","Von hier aus ein eigenes Spiel erstellen",[1165,1599,1600,1602],{},[1207,1601,1439],{}," ist kein Handler, der an den Namen Gomoku gebunden ist. Ändern Sie in den Handler-Einstellungen der Schemadatei die folgenden Werte, um ihn als Ausgangspunkt für ein anderes rundenbasiertes Spiel zu verwenden.",[1256,1604,1605,1619],{},[1259,1606,1607],{},[1262,1608,1609,1612,1616],{},[1265,1610,1611],{},"Einstellung",[1265,1613,1615],{"align":1614},"right","Aktueller Wert",[1265,1617,1618],{},"Bedeutung",[1272,1620,1621,1634,1647,1660,1673,1686],{},[1262,1622,1623,1628,1631],{},[1277,1624,1625],{},[1207,1626,1627],{},"boardSize",[1277,1629,1630],{"align":1614},"19",[1277,1632,1633],{},"Anzahl der Felder je Brettseite",[1262,1635,1636,1641,1644],{},[1277,1637,1638],{},[1207,1639,1640],{},"winLength",[1277,1642,1643],{"align":1614},"5",[1277,1645,1646],{},"Anzahl aufeinanderfolgender Steine für den Sieg",[1262,1648,1649,1654,1657],{},[1277,1650,1651],{},[1207,1652,1653],{},"turnTimeSeconds",[1277,1655,1656],{"align":1614},"180",[1277,1658,1659],{},"Zeitlimit für einen Zug",[1262,1661,1662,1667,1670],{},[1277,1663,1664],{},[1207,1665,1666],{},"winScore",[1277,1668,1669],{"align":1614},"3",[1277,1671,1672],{},"Punkte für einen Sieg",[1262,1674,1675,1680,1683],{},[1277,1676,1677],{},[1207,1678,1679],{},"drawScore",[1277,1681,1682],{"align":1614},"1",[1277,1684,1685],{},"Punkte für ein Unentschieden",[1262,1687,1688,1693,1696],{},[1277,1689,1690],{},[1207,1691,1692],{},"lossScore",[1277,1694,1695],{"align":1614},"0",[1277,1697,1698],{},"Punkte für eine Niederlage",[1165,1700,1701],{},"Machen Sie daraus ein schnelles Spiel auf einem kleineren Brett oder passen Sie die Punkteregeln an eine Veranstaltung Ihrer Organisation an. Auf derselben Echtzeitbasis lassen sich auch eine Zuschaueransicht, Saisonranglisten und Teamduelle ergänzen.",[1165,1703,1704],{},"Gomoku ist ein fertiges Beispiel und zugleich der Ausgangspunkt für neue Spiele. Zeigen Sie statt Steinen Monster und Gegenstände an, entsteht ein rundenbasierter Kampf; zeigen Sie statt Feldern Fragen und Antwortmöglichkeiten, entsteht ein Echtzeit-Quiz. Belassen Sie Daten und Regeln im Schema und geben Sie der Ansicht den Spielspaß, den Sie sich wünschen.",[1182,1706,1708],{"id":1707},"bei-problemen","Bei Problemen",[1256,1710,1711,1721],{},[1259,1712,1713],{},[1262,1714,1715,1718],{},[1265,1716,1717],{},"Symptom",[1265,1719,1720],{},"Zu prüfen",[1272,1722,1723,1734,1742,1752,1767],{},[1262,1724,1725,1728],{},[1277,1726,1727],{},"Echtzeit-Ereignishandler nicht verfügbar",[1277,1729,1730,1731,1733],{},"Prüfen, ob die Serverversion den Handler ",[1207,1732,1439],{}," des aktuellen Schemas unterstützt",[1262,1735,1736,1739],{},[1277,1737,1738],{},"Schaltflächen für neue Partie oder Beitritt reagieren nicht",[1277,1740,1741],{},"DB-Bereitstellungsstatus, Echtzeitfunktion, Anmeldung sowie Sende- und Empfangsberechtigungen prüfen",[1262,1743,1744,1749],{},[1277,1745,1746],{},[1207,1747,1748],{},"401 Unauthorized",[1277,1750,1751],{},"Prüfen, ob die Anmeldesitzung gültig ist und ob das Token nicht direkt in die URL-Query eingetragen wurde",[1262,1753,1754,1757],{},[1277,1755,1756],{},"WebSocket wird auf dem Produktionsserver blockiert",[1277,1758,1759,1760,1762,1763,1766],{},"Prüfen, ob die HTTPS-Seite ",[1207,1761,1493],{}," verwendet und ",[1207,1764,1765],{},"connect-src"," in der CSP erlaubt ist",[1262,1768,1769,1772],{},[1277,1770,1771],{},"Die geänderte Ansicht sieht aus wie zuvor",[1277,1773,1774],{},"Vorschau erneut öffnen und prüfen, ob die neueste Version der statischen Datei ausgeliefert wird",[1182,1776,1778],{"id":1777},"zum-schluss","Zum Schluss",[1165,1780,1781],{},"Im Gomoku-Beispiel wurden eine aus der Schemadatei erstellte Datenbank mit REST-API, eine auf angemeldete Mitglieder beschränkte Teilnahmeberechtigung und ein vom Server entschiedener Echtzeit-Spielzustand zu einem einzigen Dienst verbunden. Die anderen Tutorials behandeln ein mit KI erstelltes Geschäftssystem, eine Ressourcen-Pinnwand aus Ordnerdateien, einen gemeinsamen Monster-Raid und einen KI-Support-Chat. Kombinieren Sie je nach Bedarf einige davon, und Sie können die meisten internen und kundenorientierten Werkzeuge allein mit Webspace erstellen.",[1182,1783,1785],{"id":1784},"als-nächstes-ausprobieren","Als Nächstes ausprobieren",[1195,1787,1788,1793,1798],{},[1198,1789,1790],{},[1201,1791,796],{"href":1792},"../api-overview",[1198,1794,1795],{},[1201,1796,827],{"href":1797},"../performance",[1198,1799,1800],{},[1201,1801,857],{"href":1802},"../admin/service-capacity",{"title":1340,"searchDepth":1804,"depth":1805,"links":1806},2,3,[1807,1808,1809,1810,1811,1812,1813,1814,1815,1816,1817,1818],{"id":1184,"depth":1804,"text":1185},{"id":1250,"depth":1804,"text":1251},{"id":1328,"depth":1804,"text":1329},{"id":1399,"depth":1804,"text":1400},{"id":1463,"depth":1804,"text":1464},{"id":1497,"depth":1804,"text":1498},{"id":1534,"depth":1804,"text":1535},{"id":1576,"depth":1804,"text":1577},{"id":1596,"depth":1804,"text":1597},{"id":1707,"depth":1804,"text":1708},{"id":1777,"depth":1804,"text":1778},{"id":1784,"depth":1804,"text":1785},"Laden Sie die Gomoku-Schemadatei (.sfn) herunter und stellen Sie sie als SQLite3-Datenbank, REST-API und WebSocket-Spiel-Backend bereit.","md",{},true,{"title":1824,"description":1825,"ogType":1826,"twitterCard":1827,"keywords":1828},"Echtzeit-Gomoku-Spiel erstellen | Beispiel für einen WebSocket-Spielserver","Stellen Sie in SetFN Webspace die Gomoku-Schemadatei bereit und prüfen Sie Raumbeitritt, Züge in Echtzeit, Siegentscheidung und Speicherung der Rangliste.","article","summary_large_image",[882,1829,1830,1831,1832,1833,1834],"WebSocket-Spielserver","WebSocket-Beispiel","SQLite-Spiel","No-Code-Backend","Schemadatei herunterladen","SetFN Webspace",[469],"8% 28%",2.1,"K7xmONbhnuWGWk2RiEFNd8q0o3PmwXRCnhmCYvsvWY4",[1840,1841],{"title":877,"path":878,"stem":879,"slug":880,"children":-1},{"title":888,"path":889,"stem":890,"slug":891,"children":-1},{"title":882,"filename":1843,"content":1844},"realtime-gomoku","# Echtzeit-Gomoku-Spiel erstellen\n\nLaden Sie die Dateien hoch, stellen Sie das Schema bereit und öffnen Sie zwei Browser. Ein Freund tritt dem in einem Browser erstellten Raum bei, und sobald ein Stein gesetzt wird, erscheint derselbe Zug auch auf dem anderen Bildschirm. Sieg, Niederlage und Rangliste zeichnet der Server automatisch auf.\n\nEin separates Frontend-Build-Tool ist nicht erforderlich. Spielen Sie zuerst mit dem fertigen Beispiel eine Partie und ändern Sie dann nacheinander Datenstruktur, Echtzeitfunktionen und Spielregeln.\n\n![19×19-Spielbrett mit Live-Übertragung und Spielerrangliste](/img/docs/webspace/gomoku/realtime-gomoku-board.png)\n\n---\n\n## 1. Zuerst eine Partie spielen\n\nAm schnellsten starten Sie mit dem **vollständigen Beispiel als ZIP**. Laden Sie Schema und Ansichtsdateien in denselben Ordner hoch und stellen Sie das Schema bereit. Danach können Sie sofort eine Partie eröffnen.\n\n- [Vollständiges Echtzeit-Gomoku-Beispiel als ZIP herunterladen](/examples/webspace/gomoku/setfn-realtime-gomoku-sample.zip): enthält Schema, `index.html`, `style.css`, `app.js` und README\n- [Gomoku-Schemadatei (.sfn) herunterladen](/examples/webspace/gomoku/gomoku-realtime.sfn): wenn Sie nur die Backend-Struktur ansehen oder eine selbst erstellte Ansicht anbinden möchten\n\nWenn Sie das Beispiel ausführen, sehen Sie Folgendes:\n\n- Partie zweier Benutzer über einen Raumcode\n- Anzeige des letzten Zugs, der eigenen Steine und des aktuellen Zugrechts\n- Zeitlimit von 3 Minuten, das nach jedem Zug neu beginnt\n- Live-Übertragung der Partie mit dem aktuellen Spielverlauf\n- Anzeige von Sieg und Niederlage sowie automatische Aktualisierung der letzten Partien und der Spielerrangliste\n\nIm Schema sind ein 19×19-Spielbrett, der Sieg mit fünf Steinen in einer Reihe und die Punkteregel 3 Punkte für Sieg, 1 Punkt für Unentschieden, 0 Punkte für Niederlage bereits hinterlegt. Jeder Benutzer kann bis zu 3 Warteräume erstellen; Warteräume ohne Teilnehmer werden nach 30 Minuten zur Bereinigung vorgemerkt.\n\n## Funktionen, die im Spiel zusammenwirken\n\nEine Gomoku-Partie enthält ganz selbstverständlich die wichtigsten Funktionen von Webspace.\n\n| Funktion          | Aufgabe in Gomoku                                 |\n| ------------- | ------------------------------------------------ |\n| Schemadatei   | Definiert die Struktur von Partien, Zugaufzeichnungen und Spielerbilanzen          |\n| REST-API      | Abfrage der letzten Partien und der Spielerrangliste                   |\n| WebSocket     | Überträgt Raumerstellung, Beitritt und Zugergebnisse in Echtzeit           |\n| Ereignishandler | Entscheidet auf dem Server über Zugreihenfolge, Koordinaten, Siegbedingung und Zeitlimit |\n| Mitgliedsberechtigung     | Nur angemeldete Benutzer nehmen an Partien teil                    |\n| Kollaborationsfunktion     | Chat mit Teilnehmern in derselben Ansicht                      |\n\nWichtig ist, dass der Browser weder den Sieg erklärt noch Punkte direkt schreibt. Der Server prüft das aktuelle Brett und das Zugrecht, speichert nur gültige Züge und sendet beiden Benutzern dasselbe Ergebnis.\n\n## 2. In den Arbeitsbereich hochladen\n\nWenn Sie nur die Schemadatei heruntergeladen haben, laden Sie sie in einen Projektordner des Team- oder persönlichen Arbeitsbereichs hoch. Wenn Sie das vollständige ZIP heruntergeladen haben, legen Sie die fünf Dateien per Ordner-Upload oder Archiv-Upload in denselben Ordner.\n\n```text\ngomoku-arena/\n├── gomoku-realtime.sfn\n├── index.html\n├── style.css\n├── app.js\n└── README.md\n```\n\nÖffnen Sie die Schemadatei und prüfen Sie unter `Datenbankstruktur` die drei Tabellen.\n\n| Tabelle           | Gespeicherte Inhalte                                        |\n| ---------------- | ------------------------------------------------ |\n| `gomoku_games`   | Raumcode, Teilnehmer, aktuelles Zugrecht, Zeitlimit und Endergebnis |\n| `gomoku_moves`   | Zugnummer, Steinfarbe, Koordinaten und Benutzer           |\n| `gomoku_players` | Siege, Niederlagen und Unentschieden je Benutzer, Gesamtpunkte und letzte Partien         |\n\nDa Partien und Bilanzen getrennt gespeichert werden, lassen sich die letzten Aufzeichnungen und die Rangliste auch nach dem erneuten Öffnen der Ansicht wieder laden.\n\n## 3. API und Echtzeitfunktionen prüfen\n\nÖffnen Sie oben `API-Erstellung` und prüfen Sie die folgenden Punkte:\n\n1. Der Datenbankname lautet `gomoku`.\n2. `Echtzeit-Socket` steht auf `Aktiviert`.\n3. `Serverfunktion` ist `Rundenbasiertes Brettspiel` (`turn-based-board`).\n4. Die Berechtigungen `Senden` und `Empfangen` stehen auf `Nur Mitglieder`.\n5. Die APIs zum Erstellen und Ändern sind für alle drei Tabellen deaktiviert.\n\nDas Deaktivieren der Erstellungs- und Änderungs-APIs hat einen Grund: Teilnehmer sollen Siegzahlen oder Zugaufzeichnungen nicht direkt über die REST-API ändern können, und jede Änderung des Spielzustands soll den Ereignishandler des Servers durchlaufen.\n\n## 4. Mit SQLite3 bereitstellen\n\nWählen Sie beim ersten Ausführen unter `Speicher` SQLite3. Da Sie weder eine Datenbankadresse noch ein Konto vorbereiten müssen, ist dies der einfachste Weg, das Beispiel auszuprobieren.\n\nPrüfen Sie vor dem Klick auf `Bereitstellen` die angezeigten Änderungen und die Berechtigungszusammenfassung. Enthält eine Datenbank mit demselben Namen bereits Einträge, kann je nach Überschreibrichtlinie des Servers die Genehmigung eines Administrators oder Bereitstellungsverantwortlichen erforderlich sein.\n\nNach Abschluss der Bereitstellung stehen REST-API und WebSocket im folgenden Adressformat bereit.\n\n```text\nGET /api/web/gomoku/gomoku_games/list\nGET /api/web/gomoku/gomoku_players/list\nWS  /api/web/gomoku/realtime-ws\n```\n\nLäuft der Produktionsserver über HTTPS, muss der Browser eine sichere `wss://`-Verbindung auf derselben Domain verwenden. Die Adresse sollte nicht fest auf eine bestimmte Entwicklungsdomain codiert, sondern aus dem Host der aktuellen Seite gebildet werden.\n\n## 5. Gomoku-Ansicht öffnen\n\nDie Schemadatei erstellt Datenbank und Backend des Spiels; `index.html`, `style.css` und `app.js` sind für Spielbrett und Benutzererlebnis zuständig. Durch diese Trennung können Sie die Ansicht neu gestalten und dabei die Partieaufzeichnungen behalten.\n\nWenn Sie das vollständige Beispiel hochgeladen haben, wählen Sie `index.html` und öffnen Sie die `Vorschau`. Wenn Sie nur die Schemadatei verwenden, binden Sie die obige REST-API und den WebSocket in Ihrem eigenen HTML an.\n\nDer Client sendet Aktionen wie `board-game.create`, `board-game.join` und `board-game.move` über WebSocket. Steine und Punkte werden auf Grundlage der vom Server zurückgesendeten bestätigten Ereignisse angezeigt.\n\n## 6. Zu zweit tatsächlich spielen\n\n1. Öffnen Sie dieselbe `index.html` mit zwei verschiedenen Mitgliedskonten.\n2. Klicken Sie im ersten Konto auf `Neue Partie erstellen`.\n3. Übermitteln Sie den erzeugten Raumcode an das zweite Konto.\n4. Geben Sie den Code im zweiten Konto ein und klicken Sie auf `Beitreten`.\n5. Setzen Sie abwechselnd Steine und prüfen Sie, ob derselbe Zug auf beiden Bildschirmen erscheint.\n6. Prüfen Sie nach fünf Steinen in einer Reihe, ob die Sieganzeige, die letzten Partien und die Rangliste aktualisiert werden.\n\nMit Browsern, deren Anmeldesitzungen getrennt sind, etwa ein normales und ein Inkognito-Fenster, lässt sich das bequem auf einem einzigen Computer testen.\n\n![Echtzeit-Gomoku-Ansicht mit geöffnetem gemeinsamem Chat](/img/docs/webspace/gomoku/realtime-gomoku-collaboration.png)\n\n## Das Ergebnis zeichnet der Server auf\n\nSobald fünf Steine waagerecht, senkrecht oder diagonal in einer Reihe liegen, beendet der Server die Partie und speichert Sieger und Punkte. Auch wenn das Zeitlimit eines Zugs überschritten wird, entscheidet der Server anhand der Serverzeit über die Niederlage durch Zeitüberschreitung.\n\n![Gomoku-Siegergebnis und automatisch berechnete Spielerrangliste](/img/docs/webspace/gomoku/realtime-gomoku-result.png)\n\nWenn sich die letzten Partien und die Rangliste nicht sofort ändern, prüfen Sie statt erneutem Klicken, ob der Ablauf die Liste nach Empfang des WebSocket-Abschlussereignisses erneut abfragt. Wenn Sie in der Ansicht `Entwicklerinformationen` aufklappen, sehen Sie auch das gesendete und empfangene JSON sowie die Verarbeitungszeit des Servers.\n\n## Von hier aus ein eigenes Spiel erstellen\n\n`turn-based-board` ist kein Handler, der an den Namen Gomoku gebunden ist. Ändern Sie in den Handler-Einstellungen der Schemadatei die folgenden Werte, um ihn als Ausgangspunkt für ein anderes rundenbasiertes Spiel zu verwenden.\n\n| Einstellung              | Aktueller Wert | Bedeutung                     |\n| ----------------- | ------: | ------------------------ |\n| `boardSize`       |      19 | Anzahl der Felder je Brettseite       |\n| `winLength`       |       5 | Anzahl aufeinanderfolgender Steine für den Sieg |\n| `turnTimeSeconds` |     180 | Zeitlimit für einen Zug         |\n| `winScore`        |       3 | Punkte für einen Sieg                |\n| `drawScore`       |       1 | Punkte für ein Unentschieden              |\n| `lossScore`       |       0 | Punkte für eine Niederlage                |\n\nMachen Sie daraus ein schnelles Spiel auf einem kleineren Brett oder passen Sie die Punkteregeln an eine Veranstaltung Ihrer Organisation an. Auf derselben Echtzeitbasis lassen sich auch eine Zuschaueransicht, Saisonranglisten und Teamduelle ergänzen.\n\nGomoku ist ein fertiges Beispiel und zugleich der Ausgangspunkt für neue Spiele. Zeigen Sie statt Steinen Monster und Gegenstände an, entsteht ein rundenbasierter Kampf; zeigen Sie statt Feldern Fragen und Antwortmöglichkeiten, entsteht ein Echtzeit-Quiz. Belassen Sie Daten und Regeln im Schema und geben Sie der Ansicht den Spielspaß, den Sie sich wünschen.\n\n## Bei Problemen\n\n| Symptom                                  | Zu prüfen                                                               |\n| ------------------------------------- | ------------------------------------------------------------------------- |\n| Echtzeit-Ereignishandler nicht verfügbar | Prüfen, ob die Serverversion den Handler `turn-based-board` des aktuellen Schemas unterstützt   |\n| Schaltflächen für neue Partie oder Beitritt reagieren nicht | DB-Bereitstellungsstatus, Echtzeitfunktion, Anmeldung sowie Sende- und Empfangsberechtigungen prüfen                      |\n| `401 Unauthorized`                    | Prüfen, ob die Anmeldesitzung gültig ist und ob das Token nicht direkt in die URL-Query eingetragen wurde |\n| WebSocket wird auf dem Produktionsserver blockiert      | Prüfen, ob die HTTPS-Seite `wss://` verwendet und `connect-src` in der CSP erlaubt ist  |\n| Die geänderte Ansicht sieht aus wie zuvor      | Vorschau erneut öffnen und prüfen, ob die neueste Version der statischen Datei ausgeliefert wird              |\n\n## Zum Schluss\n\nIm Gomoku-Beispiel wurden eine aus der Schemadatei erstellte Datenbank mit REST-API, eine auf angemeldete Mitglieder beschränkte Teilnahmeberechtigung und ein vom Server entschiedener Echtzeit-Spielzustand zu einem einzigen Dienst verbunden. Die anderen Tutorials behandeln ein mit KI erstelltes Geschäftssystem, eine Ressourcen-Pinnwand aus Ordnerdateien, einen gemeinsamen Monster-Raid und einen KI-Support-Chat. Kombinieren Sie je nach Bedarf einige davon, und Sie können die meisten internen und kundenorientierten Werkzeuge allein mit Webspace erstellen.\n\n## Als Nächstes ausprobieren\n\n- [APIs erstellen und Datenbank bereitstellen](../24.api-overview.md)\n- [Leistung und Skalierung](../48.performance.md)\n- [Dienste und Kapazität](../50.admin/40.service-capacity.md)\n",1793056576002]