网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

如何基于华为openEuler轻松部署Dillinger个人文本编辑器?

GG网络技术分享 2026-04-16 03:59 7


序章:为什么要在 openEuler 上玩转 Dillinger?

先说个心里话, 写 Markdown 的时候总觉得键盘敲得太单调,像是给自己的灵魂浇了一盆凉水呃。于是我把目光投向了那款号称“云端+离线双模”的 Dillinder, 功力不足。 再加上华为大佬们辛苦养肥的 openEuler,这俩强强联手,简直是技术界的“甜甜圈”——外酥里软,还能顺便吃掉点儿烦恼。

openEuler 那点小脾气

先抛出一句:openEuler 并不是只有企业才能玩 它的内核优化、ARM 多架构支持甚至 SELinux 默认开启,都让普通开发者有种被捧在手心的错觉。想象一下 你在一台老旧服务器上跑 Docker, 不忍卒读。 突然发现系统自带的平安模块竟然帮你挡住了几次潜在攻击,这种既惊喜又尴尬的感觉,就是我们今天要聊的“开箱即用”。

基于华为openEuler部署Dillinger个人文本编辑器

准备工作:先把厨房清理干净

下面这段代码不一定能直接跑通, 但它会提醒你哪些锅碗瓢盆需要洗:

# 检查系统版本
cat /etc/os-release
# 确认 Docker 已经在跑
systemctl status docker || echo "Docker 没启动,赶紧弄好!"
# 看看 compose 版本
docker compose version

如果你看到类似 “Docker version 26.x.x” 的输出,那就说明你的锅已经热好了。否则就去翻翻官方文档,或者直接问问社区的大神们——记得礼貌点,不然可能被踢出群,你我共勉。。

噪音警报:别忘了关防火墙

很多新手都会把 firewalld 当成守门员, 一旦不放行 8120 端口, 瞎扯。 就会出现 “页面白屏” 的恐怖现象。这里给你一个“大胆”但不失礼貌的办法:

# 停止并禁用 firewalld
systemctl stop firewalld
systemctl disable firewalld

⚠️ 提醒:生产环境请自行斟酌,不要主要原因是一时冲动把整个服务器都敞开。

Dillinger 容器拉取与启动——像煎鸡蛋一样简单?

下面这条命令是我实测过最接地气的一行, 它会把最新 踩个点。 的 Dillinger 镜像拉下来然后塞进容器里:

docker run -d \
    --name=dillinger \
    -e PUID=0 -e PGID=0 \
    -e TZ=Asia/Shanghai \
    -p 8120:8080 \
    -v /data/dillinger/config/:/config \
    --restart unless-stopped \
    linuxserver/dillinger:latest

如果你对挂载目录不满意,可以随意改成自己喜欢的路径;不过记得提前创建好:,动手。

mkdir -p /data/dillinger/config/ && chmod -R 777 /data/dillinger/config/

完成后用 docker ps 看一眼容器状态,如果看到 “Up X minutes” 那么恭喜,你已经把 Dillinger 放进了 openEuler 的锅里。

小插曲:随机表格来调剂味蕾 🍰

产品/特性DillingerTyporaMarkText
云端同步
离线模式
AOT 渲染速度 120~15080~110130~160
主题自定义程度CSS + AngularJS 插件化 Sass + Electron Cascade CSS
注:以上数据均为个人实验室测试,仅供娱乐参考。

Dillinger UI 小体验——从左到右,从码到画的快感!

Dillinger 的页面布局极其直白:左侧是 Markdown 编辑区,右侧实时预览。每次敲完一句话, 就能立刻看到渲染后的效果——这让我想起大学时写毕业论文时常常“刷新页面等渲染”的痛苦,如今全消失在云端。

  • PUID/PGID 为 0 意味着什么? - 简单就是容器以 root 身份运行,这样文件权限问题基本不会卡死你。但如果你是平安狂魔,请自行改成非特权用户。
  • TZ 环境变量为何重要? - 时区决定了日志时间戳和导出文件名,否则凌晨三点生成的文档会让人怀疑自己是否穿越回了上个世纪。
  • -v 挂载目录作用是什么? - 把容器内部配置映射到宿主机, 这样即使容器重启也能保留你的主题、插件和 OAuth 配置。
  • *噪音提示*:有时候容器日志会出现 “ERR! failed to fetch remote config”, 只要删掉挂载目录重新启动即可,大多数时候这只是网络抖动导致的小毛病。
  • *情感炸弹*:每当看到 Markdown 正文瞬间变成彩色网页,我都会忍不住在键盘上敲几下 “YES!”——真的很爽!

Dillinder 与 GitHub 同步 —— 一键推送, 让代码更有温度

Dillinger 支持直接从 GitHub 仓库导入或导出 Markdown 文件,只要在 UI 左上角点开 “Import from GitHub”,填入仓库地址和分支名称,然后点击 “Import”。导出的过程同理,只是换成 “Export to GitHub”。这种“一站式”操作让我忍不住想给自己颁个“小红花”。不过别忘了先生成一个 Personal Access Token,否则 GitHub 会毫不客气地拒绝你的请求。

Troubleshooting 小锦囊——当 Things Go Wrong 时该怎么摆烂?

容器一直 Restarting?检查挂载目录权限是 也许吧... 否为 777 或者 SELinux 是否阻止了写入:

# 临时关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 
启动容器
docker restart dillinder

浏览器访问不到 http://IP:8120 ? 检查防火墙、 云服务器平安组以及是否用了 IPv6 双栈;有时候只是 DNS 缓存问题,用 bypass-cache.sh 清一下就好,太扎心了。。

ICU你。 Markdown 实时预览卡顿?尝试关闭浏览器 或使用轻量级 Chromium;如果仍旧卡,那就降级到旧版 Docker 镜像 。记得先备份配置!

情绪波动记录 📈

Date & Time Mood Score Pain Point & Fixes
2025-04-01 09:12:337首次拉镜像慢到爆炸,换阿里源后恢复正常。
2025-04-02 14:45:079成功打开预览页,激动得差点把咖啡泼在键盘上。
2025-04-03 22:18:504SELinux 报错狂刷屏,到头来决定暂时禁用。
2025-04-05 08:33:218使用 Docker Compose 重建服务,一键搞定所有容器依赖。
以上数据纯属戏言,仅用于制造阅读乐趣。

Epilogue:收官感言与下一步计划 🚀

总算把 Dillinger 装进了 openEuler 的大锅里。回首整个过程, 我体会到了两件事:,你我共勉。

  • #技术层面# —— openEuler 的内核优化真的可以让 Docker 启动更快、更稳,而 Dillinger 本身作为一个轻量级 Markdown 编辑器,又恰好满足了我对云端+离线混合编辑的需求;这两者叠加后产生的协同效应,让我对 Linux 社区 刮目相看。
  • #情感层面# —— 每一次成功部署, 都像是给自己点燃了一根小蜡烛,在暗淡的终端窗口里照亮前路;而每一次报错,则提醒我保持谦逊,主要原因是技术永远比我们想象的更顽固、更需要耐心去抚平它们的小脾气。
  • \endul

    如果你已经跟着本文走完一遍部署流程, 不妨给自己的机器来一次深呼吸,然后打开浏览器访问 http://YOUR_IP:8120/​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​**\* , 醉了... 看看那闪耀着 Markdown 光芒的编辑框是否正等待你的文字倾泻。如果还没有, 那就再检查一次防火墙、端口映射以及 SELinux 状态——毕竟细节决定成败,也决定我们是否还能继续喝咖啡而不是去找 IT 老板哭诉。祝玩得开心! 🎉🖋️📄


提交需求或反馈

Demand feedback