只需一个 docker compose 文件,就能在你自己的机器上运行 cloud.foliowriter.app 背后的同一套服务器:实时协同编辑、端到端加密项目、排版预览,以及 PDF / Word / LaTeX 导出——Pandoc 和 Typst 已内置在镜像中。个人使用免费。
mkdir folio && cd folio
curl -fsSLO https://foliowriter.app/selfhost/docker-compose.yml
FOLIO_DOMAIN=folio.example.com docker compose up -d
内置的 Caddy 会为你的域名获取并续期 Let’s Encrypt 证书,并代理 HTTPS 以及协作用的 WebSocket。然后打开 https://folio.example.com。还没有域名?运行 docker compose up folio-web,然后打开 http://localhost:8787。
foliowriter/folio-web 提供 amd64 和 arm64 两种架构。启动服务器时,把你的邮箱写进 FOLIO_ADMIN_EMAILS:
FOLIO_DOMAIN=folio.example.com [email protected] \
docker compose up -d
其中列出的每个地址都始终是管理员——不受配额限制,还可使用 /admin 控制台(账户、项目、存储、流量)。用该邮箱登录;如果没有配置 SMTP,魔法登录链接会打印到服务器日志中,而不是通过邮件发送:
docker compose logs folio-web | grep -i http
打开打印出来的链接,就登录进去了。要真正发送邮件,请设置 SMTP_* 变量(任何邮件中继都可以),并设置 PUBLIC_BASE_URL,让邮件中的链接使用你的域名。
所有配置都是环境变量。把它们写进与 docker-compose.yml 同目录的 .env 文件(Compose 会自动读取):
FOLIO_DOMAIN=folio.example.com
PUBLIC_BASE_URL=https://folio.example.com
[email protected]
FOLIO_LIMIT_PROJECTS=0 # 0 = unlimited
FOLIO_LIMIT_STORAGE_MB=0 # 0 = unlimited
FOLIO_ENC_KEY=… # openssl rand -hex 32
| 变量 | 作用 |
|---|---|
FOLIO_DOMAIN | Caddy 提供服务并为其申请证书的域名(默认 localhost)。 |
PUBLIC_BASE_URL | 登录邮件和分享链接中使用的绝对源地址。 |
FOLIO_ADMIN_EMAILS | 始终为管理员的邮箱,以逗号分隔——不受配额限制,可使用 /admin。 |
SMTP_HOST / PORT / USER / PASS / SECURE / FROM | 用于魔法链接登录的外发邮件。未设置 → 链接打印到容器日志中。 |
FOLIO_LIMIT_PROJECTS | 每个账户的项目数(默认 2)。0 = 不限——大多数自行托管者都会这样设置。 |
FOLIO_LIMIT_STORAGE_MB | 每个账户的存储空间,单位 MB(默认 50)。0 = 不限。 |
FOLIO_DEMOS | 以逗号分隔的项目 ID,作为会自动重置的演示沙盒提供。 |
FOLIO_ALLOW_GUEST_PROJECTS | 设为 1 可让访客无需登录即可创建项目(默认情况下创建项目需要账户;演示始终开放)。 |
FOLIO_ENC_KEY | 64 位十六进制字符的密钥,用于对存储的身份验证器密钥进行静态加密。 |
更新:docker compose pull && docker compose up -d。如果你更愿意固定版本而不是跟随 latest,也有带标签的版本(foliowriter/folio-web:0.2.0)。
所有内容——项目、账户、会话——都存放在 compose 文件旁边的 ./data 中。备份就是这一个文件夹:
docker compose stop folio-web
tar czf folio-backup-$(date +%F).tgz data
docker compose start folio-web
恢复(或迁移服务器)时,把 data/ 放回原处,然后运行 docker compose up -d。
个人使用免费。镜像是专有软件,但为你自己、你的家人和你个人的合作者自行托管不收取任何费用。
团队和机构需要商业许可。为公司、学校或其他机构运行,或在其内部运行——或用于商业用途——都需要购买许可;免费档位正是靠它维持的。联系我们,我们会尽快为你办妥。
禁止再分发、更换品牌或制作衍生作品;完整条款随镜像文档一同提供。根本不想自己运行服务器?cloud.foliowriter.app 就是托管版——可免费开始使用。