cms
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCMS: die Pinnwand im Flur
CMS:走廊里的布告板
Das Bild
这个比喻
Ein CMS ist eine Pinnwand im Flur. Wer etwas mitteilen will, hängt einen Zettel auf, ohne die Wand neu zu bauen. Die Webseite liest die Zettel und zeigt sie schön an.
Eine Pinnwand lohnt sich, wenn oft und von verschiedenen Leuten Zettel kommen: Veranstaltungen, News, Produkte, Menüs. Für eine Seite, die sich zweimal im Jahr ändert, ist sie ein Möbel, das nur Platz braucht.
So setzt du das Bild ein: Sag es der Person in deiner ersten Antwort, bevor du Fragen stellst oder Befehle zeigst, auch wenn sie gleich eine Lösung will.
CMS 就是走廊里的一块布告板。谁想传达什么,就在上面贴一张便条,无须重新砌墙。网站读取这些便条,并将其美观地展示出来。
如果经常有来自不同的人提供的便条,布告板就值得使用,例如活动、新闻、产品和菜单。对于一年只改动两次的页面,它就像一件只占地方的家具。
如何运用这个比喻: 即使对方一上来就想要解决方案,也要在提出问题或给出命令之前,先在给对方的第一次回复中说明这一点。
So sprichst du
你该如何交流
- Nicht nur fragen: Fehlt das Projekt oder eine Angabe, gib trotzdem die konkreten Schritte oder schreib die Datei als Entwurf mit markierten Annahmen (). Frag erst am Schluss nach dem, was fehlt.
[Annahme: …] - Du-Form, kurz. Rate ehrlich ab, wenn es keine Pinnwand braucht. Jede zusätzliche Software ist etwas, das gepflegt, gesichert und aktualisiert werden will.
- 不要只顾提问: 如果缺少项目或某项信息,仍应给出具体步骤,或者将文件写成草稿并标记假设()。最后再询问缺失的信息。
[假设:……] - 使用“你”称呼对方,表述简短。如果不需要布告板,就如实判断。每增加一套软件,就意味着多一份需要维护、备份和更新的东西。
1. Braucht es überhaupt ein CMS?
1. 真的需要 CMS 吗?
Frag drei Dinge:
- Wie oft ändern sich Inhalte? (wöchentlich oder öfter → eher ja)
- Wer ändert sie? (Menschen ohne Terminal → eher ja)
- Gibt es viele gleichartige Einträge? (Veranstaltungen, Produkte, Beiträge → eher ja)
Drei Stufen, immer die einfachste nehmen, die reicht:
| Stufe | Was | Gut wenn |
|---|---|---|
| A: Texte im Projekt | Inhalte als Markdown-Dateien im Repo, die KI ändert sie | eine Person mit KI pflegt alles, selten Änderungen |
| B: Pinnwand über dein Logbuch | ein Bearbeitungsfenster im Browser (z. B. Decap CMS), das die Dateien im Repo ändert | andere sollen Texte ändern, aber keine Datenbank nötig |
| C: eigenes CMS | ein Programm mit Datenbank auf dem Server, z. B. Strapi | viele Einträge, mehrere Rollen, Bilder-Verwaltung, später auch eine App |
Ist A oder B die Antwort: Schreib das in und hör hier auf. Das ist ein gutes Ergebnis. Stufe C braucht einen eigenen Server, also Pilot. Mit Light gehen A und B.
docs/plan.md询问三个问题:
- 内容多久修改一次?(每周或更频繁 → 通常需要)
- 谁来修改?(没有终端经验的人 → 通常需要)
- 是否有大量同类条目?(活动、产品、文章 → 通常需要)
分为三个级别,始终选择足以满足需求的 simplest 方案:
| 级别 | 内容 | 适用情况 |
|---|---|---|
| A:项目中的文本 | 内容以 Markdown 文件的形式存放在 Repo 中,由 AI 修改 | 由一个人借助 AI 维护全部内容,修改不频繁 |
| B:通过你的日志簿使用布告板 | 浏览器中的编辑窗口(例如 Decap CMS),用于修改 Repo 中的文件 | 希望其他人也能修改文本,但不需要数据库 |
| C:独立 CMS | 在服务器上运行且带数据库的程序,例如 Strapi | 条目众多、存在多种角色、需要图片管理,且以后可能还要提供 App |
如果答案是 A 或 B:将结论写入 ,然后到此为止。这是一个好的结果。级别 C 需要独立服务器,因此应先做试点。使用 Light 时可以选择 A 或 B。
docs/plan.md2. Strapi einrichten (Stufe C)
2. 设置 Strapi(级别 C)
Vorher
开始之前
- Strapi braucht Arbeitsspeicher. Prüf mit auf dem Server, ob mindestens etwa 1 GB frei ist. Sonst zuerst mehr Leistung (Skill
free -h).kosten - Foto machen: Werkzeug mit Namen
snapshot(Skillvor-cms).zurueck-auf-gestern
- Strapi 需要内存。在服务器上运行 ,确认至少有大约 1 GB 可用内存。否则应先提升性能(Skill
free -h)。kosten - 创建快照:使用名为 的工具,快照名称设为
snapshot(Skillvor-cms)。zurueck-auf-gestern
Einrichten
设置步骤
- Lokal ein Strapi-Projekt im Ordner des Repos anlegen (aktuelle Anleitung:
cms/), mit SQLite als Datenbank. Die Datenbank-Datei kommt nicht ins Logbuch (npx create-strapi@latest cms)..gitignore - In einen Dienst
compose.yamlergänzen: Container-Namecms, Port nur nach innen (cms), ein Volume für Datenbank und hochgeladene Bilder. Geheimnisse (127.0.0.1:1337:1337,APP_KEYS,JWT_SECRET,ADMIN_JWT_SECRET) als Umgebungsvariablen aus einerAPI_TOKEN_SALTauf dem Server, nie im Repo (Skill.env).sicherheit - Logbuch und Fliessband (Skills ,
git-logbuch). Danach auf dem Server:pipelinezeigtdocker ps.cms
- 在本地于 Repo 的 文件夹中创建 Strapi 项目(当前指南:
cms/),并使用 SQLite 作为数据库。数据库文件不进入日志簿(npx create-strapi@latest cms)。.gitignore - 在 中添加名为
compose.yaml的服务:容器名称为cms,端口仅绑定内部地址(cms),并为数据库和上传的图片配置 Volume。将密钥(127.0.0.1:1337:1337、APP_KEYS、JWT_SECRET、ADMIN_JWT_SECRET)设置为主机服务器上API_TOKEN_SALT文件中的环境变量,绝不放入 Repo(Skill.env)。sicherheit - 更新日志簿并运行流水线(Skills 、
git-logbuch)。随后在服务器上执行:pipeline应显示docker ps。cms
Der geheime Gang zur Pinnwand
通向布告板的秘密通道
Der Bearbeitungsbereich ist nicht öffentlich. Die Person erreicht ihn über einen Tunnel. Bild: ein geheimer Gang von ihrem Computer direkt in den Flur, an dem niemand von der Strasse vorbeikommt.
bash
ssh -L 1337:localhost:1337 {name}@aufwind.shSolange dieses Fenster offen ist, öffnet sie im Browser . Beim ersten Mal legt sie dort selbst das Admin-Konto an. Das Passwort tippt sie nur dort.
http://localhost:1337/admin编辑后台不会公开暴露。对方通过隧道访问它。画面是:一条从对方电脑直通走廊的秘密通道,任何来自街道的人都无法经过。
bash
ssh -L 1337:localhost:1337 {name}@aufwind.sh只要这个窗口保持打开,对方就可以在浏览器中访问 。首次使用时,由对方自行创建管理员账户。密码只在该界面中输入。
http://localhost:1337/adminInhalte anbinden
连接内容
- Mit der Person einen Inhaltstyp anlegen (z. B. «Veranstaltung» mit Titel, Datum, Ort, Text, Bild).
- Die Webseite holt die Einträge beim Bauen über aus dem gleichen Docker-Netz. Ein API-Token mit nur Leserechten, als Geheimnis auf dem Server.
http://cms:1337/api/... - Neue Einträge erscheinen nach dem nächsten Bau. Wer es sofort will: ein Webhook in Strapi, der den Bau auslöst. Das kommt erst, wenn es wirklich stört.
- 与对方一起创建一个内容类型,例如“活动”,包含标题、日期、地点、文本和图片等字段。
- 网站在构建时通过同一 Docker 网络中的 获取条目。创建一个仅具有读取权限的 API Token,并将其作为密钥保存在服务器上。
http://cms:1337/api/... - 新条目会在下一次构建后出现。如果希望立即显示,可以在 Strapi 中添加一个用于触发构建的 Webhook。只有在确实造成困扰时再添加。
Stolpersteine
常见陷阱
- Admin-Bereich öffentlich ins Netz gestellt: Einladung für Angreifer. Tunnel benutzen.
- Updates vergessen: Strapi regelmässig aktualisieren, vorher Foto machen.
- Bilder nur im Container: ohne Volume sind sie nach dem nächsten Neustart weg.
- 将管理后台公开暴露到网络中:这相当于向攻击者发出邀请。应使用隧道。
- 忘记更新:定期更新 Strapi,更新前先创建快照。
- 图片只保存在容器中:没有 Volume 时,图片会在下次重启后丢失。
Mission prüfen
检查任务
mission_pruefenwebseite-04-cmscms使用 运行 。检查将确认容器 是否正在运行。如果对方有意选择了级别 A 或 B,应告诉对方可以跳过此任务。这是一个正确的决定,并不是遗漏。
webseite-04-cmsmission_pruefencmsSchlussnachricht
结束消息
Deine letzte Nachricht in diesem Schritt beginnt mit einem Satz zum Bild «die Pinnwand im Flur», der den Kern noch einmal sagt. Danach: was geschafft ist, wo das Ergebnis liegt, was noch offen ist und was als Nächstes kommt.
此步骤的最后一条消息应以“走廊里的布告板”这一比喻开头,用一句话再次点明核心。随后说明:完成了什么、结果存放在哪里、还有哪些未完成事项,以及接下来要做什么。