Docker搭建Outline及其进阶使用教程

一直想搭建自己的Wiki,因为觉得在自己手里的数据才是最好的,用商业组件服务器在别人这,一个是不安全,另一个是不保险,再者,有自己的专属服务也是一件酷酷的事情,不是吗?

曾经的尝试

之前尝试过安装过挺多的方案,基本上的方案我都部署并稍微试用了一下,包括但不限于以下几种,我附上了地址和对应的软件界面

Wiki.js

官网地址:https://js.wiki/
使用界面:

Wiki.js使用界面
Wiki.js使用界面

MediaWiki

官网地址:https://www.mediawiki.org/wiki/MediaWiki
使用界面:

MediaWiki使用界面
MediaWiki使用界面

为知笔记

官网地址:https://www.wiz.cn/
使用界面:

MediaWiki使用界面
为知笔记使用界面

Shawdoc

官网地址:https://www.showdoc.com.cn/
使用界面:

Shawdoc使用界面

Docsify

官网地址:https://docsify.js.org/
使用界面:

Docsify使用界面
Docsify使用界面

Google Outline

官网地址:https://www.getoutline.com/
使用界面:

Google Outline的使用界面
Google Outline的使用界面

除此之外,其实还部署过尝试过很多其他的,有些可能记不上名字来了。

最终的选择

试过了很多同类型的产品,最终还是选择了Google的Outline,不得不说,实在是太强大了,我列举几个特点吧:

  • 对Markdown格式兼容特别好UI美观
  • 支持权限控制和团队协作,虽然就我一个人写。。。。
  • 支持导入导出
  • 免费,可以自己搭建
  • 支持邮件通知
  • 支持外链分享
  • 支持自定义页面模板,新建页面可以基于模板创建页面
  • 支持历史版本,可以查看文档创建到现在所有的历史版本
  • 支持文档中包含公式,代码块,图表,文件附件
  • 原生支持很多服务以链接的形式嵌入。可以直接渲染出来,比如draw.io的图表,Youtube视频,Google Docs等等

这个是我差不多翻遍了互联网才翻到这个玩意儿,介绍的教程特别少,因为他依赖于很多外部服务,如果需要自己搭建的话,需要搭建好Oss对象存储、Redis、Nginx、以及OIDC认证服务。一般人看到这么多玩意儿就放弃了,网上一些硬刚的博客也是巨复杂和繁琐。最终在我的不懈努力之下,终于在Github找到了一个基于Docker Compose的快速部署脚本。

安装与部署

这个项目的Github地址为:https://github.com/vicalloy/outline-docker-compose.git
这个项目是使用docker-compose的方式来部署,里面包含了所需要的Redis,Minio,PostgreSQL,OIDC Server服务,只需要下载下来,进行一些必要的配置,就可以运行了。

脚本的部署

获取部署脚本

先使用Git将远程仓库下载下来,下载完成后本地会有outline-docker-compose这个文件夹,并进入该目录

git clone https://github.com/vicalloy/outline-docker-compose.git
cd outline-docker-compose

个性化配置

config.sh文件配置介绍

因为安装的时候配置是从scripts/config.sh读取的,最开始我们没有这个文件,只有scripts/config.sh.sample这个配置样例,所以我们需要先拷贝配置样例,然后在配置样例上进行修改

cp scripts/config.sh.sample scripts/config.sh
vim scripts/config.sh

默认的配置是这样的:

# The url used to vist this web site.
URL=http://127.0.0.1:8888
# The default interface language. See translate.getoutline.com for a list of
# available language codes and their rough percentage translated.
DEFAULT_LANGUAGE=en_US
# https://docs.djangoproject.com/en/2.2/ref/settings/#language-code
LANGUAGE_CODE=en-us
# https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
TIME_ZONE=UTC
FORCE_HTTPS=false
# The domain in you email.
# Comma separated list of domains to be allowed (optional).
# If not set, the first user's domain is allowed by default.
ALLOWED_DOMAINS=

# Docker image version
OUTLINE_VERSION=0.67.2
POSTGRES_VERSION=15.2-alpine3.17
MINIO_VERSION=RELEASE.2022-11-17T23-20-09Z
MINIO_MC_VERSION=RELEASE.2022-11-17T21-20-39Z

# Nginx
# The nginx bind ip and port.
# If you use ip address to access outline, this ip and port should be same as the URL.
# If this server behind a proxy(nginx), you can bind to `127.0.0.1`.
HTTP_IP=127.0.0.1
HTTP_PORT_IP=8888

# Docker
# If you server behind a proxy(nginx), and the proxy created by docker. You can use the proxy's network. Set the `NETWORKS` to proxy's network name, and set `NETWORKS_EXTERNAL` to `true` .
# The sample config for host nginx can be find in `config/sample/nginx_outline.conf`.
NETWORKS=outlinewiki
NETWORKS_EXTERNAL=false

## Secret keys, update by script.
# You shouldn't edit it.
MINIO_ACCESS_KEY=
MINIO_SECRET_KEY=
OIDC_CLIENT_SECRET=
OUTLINE_SECRET_KEY=
OUTLINE_UTILS_SECRET=
DJANGO_SECRET_KEY=

其中有几个需要了解的配置,这些配置可以根据需要修改,其他的配置请尽量不要修改:

  • URL:我们最终网页访问的自己Outline的地址,例如:http://111.111.111.111:8888或者http://youdomain.com
  • DEFAULT_LANGUAGE:页面显示的语言,默认是英文,想修改成中文就设置为zh_CN即可
  • FORCE_HTTPS:是否强制开启HTTPS,默认为false,一般不动这个值,要用的话也是自己额外搭建一个Nginx实现HTTP跳转HTTPS
  • HTTP_IP:直接设置成0.0.0.0。注释中的127.0.0.1我之前试过,改成自己服务器的公网IP的话,又会导致脚本创建的Nginx无法启动,因此还是得设置0.0.0.0
  • HTTP_PORT_IP:想绑定的服务器(宿主机)的端口,默认是8888,如果是用IP访问,记得和IP的端口保持一致
  • NETWORKS:网络名称,这个脚本搭建的服务都是有自己的一个网络,只把内部的一个Nginx暴露出来了,依赖的其他组件相当于都是内网通信,极大的增加了安全性,这个参数的值就是一个名字,不需要修改。

config.sh部分配置参考

这里针对上面的配置提供几套可以参考的取值:

注意这里并没有列举出文件中所有的配置项,没有列举出来的属性保持默认值或根据自己的需要修改即可。

假设我们的服务器公网IP是111.111.111.111

  • 通过IP端口访问

如果自己没有额外搭建Nginx,只是想直接通过IP+端口的形式来访问,可以这样设置:

URL=http://111.111.111.111:8888
FORCE_HTTPS=false
HTTP_IP=0.0.0.0
HTTP_PORT_IP=8888
  • 通过域名访问

这里假设你的域名是aaa.domain.com,并且Outline打算使用8888端口

如果通过域名访问,说明你额外搭建了一个Nginx作为网络流量的入口,你需要让先在域名提供商中配置好域名DNS解析到自己的服务器IP,并让自己搭建的Nginx监听你的域名并将请求转发到你自己的IP的8888端口。这样的话,你可以使用如下的配置。

URL=http://aaa.domain.com
FORCE_HTTPS=false
HTTP_IP=0.0.0.0
HTTP_PORT_IP=8888
  • 通过域名访问并配置SSL

如果你要通过HTTPS来访问你的Outline,你需要拥有SSL证书,将其添加到你自己额外搭建的Nginx中,然后对HTTP请求做301跳转到HTTPS,然后再对HTTPS的请求转发到你的Outline对应端口。这样的话,你可以采用如下配置:

URL=https://aaa.domain.com
FORCE_HTTPS=false
HTTP_IP=0.0.0.0
HTTP_PORT_IP=8888

注意Nginx做了HTTP重定向HTTPS后,不要将FORCE_HTTPS置为true,否则你的Outline会无法正常打开,浏览器会显示当前页面被重定向次数过多。因为你自己额外搭建的Nginx做了重定向,Outline的Nginx又做了重定向。

env.*配置介绍

还有一个可以配置的地方是scripts/templates目录中的以env.开头的文件

-rw-r--r-- 1 root root 2.5K Nov 30 08:54 env.outline
-rw-r--r-- 1 root root   76 Nov 30 08:54 env.oidc-server
-rw-r--r-- 1 root root  640 Nov 30 08:54 env.oidc
-rw-r--r-- 1 root root   54 Nov 30 08:54 env.minio

这些文件是outline及其依赖的服务的配置模板,部署的时候会在这个模板的基础上进行填充配置,因此如果我们可以在部署前就配置好一些日后需要做的修改,就可以一劳永逸。

env.*配置修改

这里主要是需要修改一下env.outline的部分配置,例如上传大小限制,邮件发送配置,这样不需要以后更新的时候频繁修改,具体需要修改一下几个配置项

  • 上传和导入的文件大小限制

修改上传大小限制为100MB,注意单位为Byte

AWS_S3_UPLOAD_MAX_SIZE=104857600 

新增导入功能文件大小限制为100MB,默认是5MB,这里单位也是Byte

MAXIMUM_IMPORT_SIZE=102400000
  • 邮件发送配置(可选)

找到Emails configuration,填入对应的邮件客户端SMTP设置,SMTP_USERNAMESMTP_FROM_EMAILSMTP_REPLY_EMAIL这三个配置项可以设置成一样的,其他的根据自己的邮件客户端的文档设置即可。

# Emails configuration (optional)
SMTP_HOST=
SMTP_PORT=
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_FROM_EMAIL=
SMTP_REPLY_EMAIL=

正式安装

当配置就绪了之后,就可以开始安装了,只需要在outline-docker-compose目录下执行如下命令即可

make install

安装过程会先去pull对应版本的远程镜像,然后创建容器,创建完成后,会要求创建一个用户,需要我们输入用户名密码等信息,根据流程走即可。

之后在浏览器中访问你刚刚配置的URL,就可以看到Outline的登录界面了。

如果发现502,别着急,大概率不是你的问题。尝试重启一下这个脚本安装的Nginx容器即可,这个是部署脚本的Bug,后续我有时间看看能不能提一个PR修复一下。

安装后的再配置

如果你足够细心,你会发现,当你执行完make install后,除了创建了很多容器,outline-docker-compose目录下也多出了很多文件

-rw-r--r-- 1 root root 1.7K Nov 30 08:54 README.md
-rw-r--r-- 1 root root 1.5K Nov 30 08:54 LICENSE
drwxr-xr-x 5 root root 4.0K Nov 30 08:54 config
drwxr-xr-x 6 root root 4.0K Feb 27 00:25 data
-rw-r--r-- 1 root root 2.4K Feb 27 00:26 docker-compose.yml
-rw-r--r-- 1 root root  134 Feb 27 00:26 env.minio
-rw-r--r-- 1 root root  747 Feb 27 00:26 env.oidc
-rw-r--r-- 1 root root  140 Feb 27 00:26 env.oidc-server
-rw-r--r-- 1 root root 2.5K Feb 27 00:36 env.outline
-rw-r--r-- 1 root root 1022 Feb 27 00:37 Makefile
drwxr-xr-x 3 root root 4.0K Mar 16 00:53 scripts

里面那一堆以env.开头的文件,这些就是对应容器的配置文件,config文件夹则存储了Nginx的配置,当修改这些文件后,使用make stop停止服务后再使用make start启动服务就可以让里面的配置生效

使用进阶教程

如何多人协作

点击左上角,并点击弹出的设置按钮,便可以进入设置界面

outline如何进入设置界面
outline如何进入设置界面

左侧找到功能菜单,右侧会出现无缝编辑功能,打开后,就可以大家一起编辑同一篇文章了。

outline如何打开多人协作开关
outline如何打开多人协作开关

打开多人协作后,文档的编辑就不需要点击对应文档右上角的编辑按钮了,直接修改正文内容即可,如果是自己一个人用,还是关闭这个功能感觉好一点

导入和导出功能

同样点击左上角的设置,进来设置界面,左侧可以看到导出菜单,里面就有导出按钮,直接点击即可,点击后会提交任务,需要等待一段时间。

Outline导出功能界面
Outline导出功能界面

如果我们配置了通知邮箱,导出任务完成后会发送邮件通知,如果没有设置我们也可以定时回来这个界面看一下。在导出按钮下方会出现导出文件的下载按钮,点击下载即可获取到一个ZIP格式的压缩文件,里面就是我们导出的数据。

在导出菜单的上方,是导入功能,导入支持多种形式导入,我们可以导入之前在Outline中导出的存储Markdown的压缩包,也可以从Notion中导入文档,如果是企业服务,甚至可以从Confluence中导入(需要企业服务才可以,应该是要付费使用)。选择我们需要的方式,点击导入并上传压缩包即可。

Outline导入功能界面
Outline导入功能界面

如果导入的时候报错unable to verify the first certificate,这个一般是配置了SSL之后可能会出现,问题原因是我们的SSL证书存在问题,没有设置好,需要去检查你的Nginx证书设置。除了这个方式,我们也可以在outline-docker-compose目录中找到env.outline文件,在里面添加一行参数:

NODE_TLS_REJECT_UNAUTHORIZED=0

之后在outline-docker-compose目录依次使用make stopmake start重启服务,即使不修改Nginx证书也可以正常导入了,不过最好还是尽快将证书正确设置,否则可能会影响网站的SEO。

如果导入的时候报错Sorry, this file is too large – the maximum size is 5.12 MB,是因为Outline有默认的上传大小限制,需要修改参数以下参数来放开Outline以及存储服务对上传文件的限制:
修改env.outline 文件中的参数值,单位为Byte:

AWS_S3_UPLOAD_MAX_SIZE=102400000

并添加下面的参数,单位同样为Byte:

MAXIMUM_IMPORT_SIZE=102400000

如果你额外自己还搭建了一个Nginx,你还需要注意修改Nginx的client_max_body_size参数来提高Nginx对上传文件的大小限制,比如在Server中设置:

client_max_body_size 100m;

然后使用make stopmake start重启服务即可

访问页面502了怎么办

这个是部署脚本的bug,你显示着重启一下这个脚本安装的Nginx容器,如果还不行,看看脚本部署的这几个容器的日志是不是正常,看看是不是配置文件出错了。

大部分502会发生在容器重启之后(包含执行make start等运维操作的重启),502的原因应该是Nginx路由没有及时刷新导致的,在容器日志里面可以看到no route to host这样的报错,可以使用下面两个命令中的任何一个进行解决。

# 让outline的Nginx重新加载配置,xxxxx注意修改成你自己的容器id
docker exec xxxxx nginx -s reload
# 重启outline的Nginx,xxxxx注意修改成你自己的容器id
docker restart xxxxx 

一般执行完之后,就可以正常加载了。

如何配置邮件通知

如果你通知功能的这个界面是这样的,那说明env.outline文件里面的邮件SMTP设置没有设置

配置邮件通知前的通知界面
配置邮件通知前的通知界面

要配置邮件通知功能,我们要在outline-docker-compose目录中找到env.outline文件。找到Emails configuration,填入对应的邮件客户端SMTP设置,SMTP_USERNAMESMTP_FROM_EMAILSMTP_REPLY_EMAIL这三个配置项可以设置成一样的,其他的根据自己的邮件客户端的文档设置即可。

# Emails configuration (optional)
SMTP_HOST=
SMTP_PORT=
SMTP_USERNAME=
SMTP_PASSWORD=
SMTP_FROM_EMAIL=
SMTP_REPLY_EMAIL=

当配置好SMTP信息后,使用依次使用make stopmake start重启服务后,通知功能界面就变成这样了

配置邮件通知后的通知界面
配置邮件通知后的通知界面

如何分享文档或文档集给他人

Outline有严格的权限控制,可以对每个文档集设置不同的权限。如果想要查看某个文档集的权限,可以点击对应文档集右侧的省略号,找到权限按钮

如何查看Outline文档集的权限
如何查看Outline文档集的权限

然后里面可以看到这个文档集的权限:

额外访问权限:可以对某个群组或者某个人员设置特定的访问权限,比如这个人

默认访问权限:一个用户如果没有设置额外访问权限,这个文档集的权限对于他来说就是取决于默认访问权限

公开共享设置:这个文档集里面的文档是否可以被用户公开到互联网中,如果公开到互联网中,任何人都可以查看

如何修改Outline文档集的权限
如何修改Outline文档集的权限

当我们打开了公开共享文档后,就可以在对应的文档右上角点击分享按钮(如果不能的话,刷新一下网页),勾选发布到互联网,然后复制链接即可,如果要共享这个页面下包含的文档,可以勾选下方的共享子文档

在对应的Outline文档界面分享文档到互联网
在对应的Outline文档界面分享文档到互联网

如何备份数据

备份数据可以有以下几种方式:

  • 直接备份整个outline-docker-compose目录,可以备份所有配置和个人数据,是最彻底的备份
  • 备份outline-docker-compose/data目录,可以备份个人数据
  • 使用Outline的导出功能,也可以实现个人数据的备份,里面是markdown文档,相对来说可移植性会更强

如何升级

一般来说,只要Outline没有大版本更新是可以直接升级的。只需要先把容器停止,然后编辑scripts/config.sh里面的OUTLINE_VERSION为想要升级到的Outline版本,如果要修改PostgreSQL版本,也可以修改POSTGRES_VERSION,然后重新make install即可,由于容器无状态,可以直接使用之前的数据。

make stop
vi scripts/config.sh
make install

由于使用了make install后,会执行初始化流程,创建好容器后会执行创建用户的脚本,由于我们已经有了管理员账户,因此要求我们输入用户名和密码的时候,我们直接使用Ctrl+C结束即可,过程可以参考下图。

[test@localhost outline-docker-compose]# make install
cd ./scripts && bash ./main.sh init_cfg
docker compose up -d
[+] Running 13/13
 ⠿ wk-outline Pulled                                                                                                              139.8s
   ⠿ df9b9388f04a Already exists                                                                                                    0.0s
   ⠿ 622e2b598d8a Already exists                                                                                                    0.0s
   ⠿ f7c8a32a53f2 Already exists                                                                                                    0.0s
   ⠿ 7da04ed7d1ef Already exists                                                                                                    0.0s
   ⠿ 99d20de9b067 Pull complete                                                                                                     2.4s
   ⠿ d9f9a5a50eb9 Pull complete                                                                                                     8.5s
   ⠿ fc49631fd2f7 Pull complete                                                                                                     8.6s
   ⠿ 693134add7ff Pull complete                                                                                                     8.7s
   ⠿ 19e3f90bf091 Pull complete                                                                                                     8.8s
   ⠿ 27e5d3cf711f Pull complete                                                                                                    90.4s
   ⠿ 7a066faad3fd Pull complete                                                                                                    90.5s
   ⠿ d5750fb517f5 Pull complete                                                                                                    90.9s
[+] Running 8/8
 ⠿ Network outline-docker-compose_outlinewiki           Created                                                                     0.2s
 ⠿ Container outline-docker-compose-wk-postgres-1       Started                                                                     2.8s
 ⠿ Container outline-docker-compose-wk-minio-1          Started                                                                     2.3s
 ⠿ Container outline-docker-compose-wk-oidc-server-1    Started                                                                     2.9s
 ⠿ Container outline-docker-compose-wk-redis-1          Started                                                                     2.8s
 ⠿ Container outline-docker-compose-wk-createbuckets-1  Started                                                                     2.2s
 ⠿ Container outline-docker-compose-wk-outline-1        Started                                                                     2.2s
 ⠿ Container outline-docker-compose-wk-nginx-1          Started                                                                     3.2s
cd ./scripts && bash ./main.sh reload_nginx
2023/03/16 17:29:41 [notice] 25#25: signal process started
docker compose exec wk-oidc-server bash -c "make init"
python manage.py creatersakey
RSA key successfully created with kid: 555d657d19378da4a175bbc0e63cf324
python manage.py createsuperuser
Username: ^C
Operation cancelled.
make: *** [Makefile:11: init] Error 1
make: *** [install] Error 130

如何寻求更多帮助

如果还有一些疑问不知道如何解决,可以自己思考一下看看这个是部署脚本的问题还是Outline本身的问题

Outline服务本身的问题

如果是Outline本身的问题,可以去Outline官方的Github仓库地址进行搜索,可以找到更权威的帮助,主要的地方有两个。

第一个是Issues,一般会在这里提交Bug信息,可以在其中进行搜索你的需求或者错误信息,注意用英文搜索。

Outline官方仓库Issues地址
Outline官方仓库Issues地址

第二个是Discussions,一般会在这里进行讨论,里面有一个分类是Self Hosting,聚集了一堆我们这种自己搭建服务的一群人,大部分问题都可以在里面找到解决。

Outline官方仓库Discussions搜索
Outline官方仓库Discussions搜索

注意删除一些非必要的筛选条件,防止我们需要的结果被过滤掉了。

Outline官方仓库Issues搜索删除过滤条件
Outline官方仓库Issues搜索删除过滤条件

如果这两个地方都不能满足你的需求,去百度或者谷歌基本上也是搜索不到的,那么你可以点击这两个地方的任何一个地方(最好是第二个地方)的界面右上角的绿色按钮进行提交你的问题,然后耐心等待,热心群众会帮你解决的。

部署脚本的问题

如果是部署脚本的问题,同样可以去部署脚本所在Github仓库的Issues界面查找自己需要的内容,如果查不到,也可以提交自己的Issues,然后耐心等待解答或自己继续钻研。

参考链接

原创文章,创作不易,版权所有,抄袭必究

作者:幽叶草。如若转载,需要先经过作者同意,并附上原文链接 https://blog.uusite.com/cloud/deploy/331.html

(17)
幽叶草的头像幽叶草
上一篇 2023年3月12日 下午5:14
下一篇 2023年3月19日 上午9:24

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

评论列表(62条)

  • wetzelmhoonjgq1a2+3l4ehg1p9n9l@gmail.com
    wetzelmhoonjgq1a2+3l4ehg1p9n9l@gmail.com 2024年7月11日 上午7:45

    quas facere sit iure aspernatur dignissimos ut. et quos deleniti est et eligendi debitis. fugiat voluptate omnis qui magni sit et illum delectus vitae voluptatem labore soluta sunt quia qui sapiente n

  • medranostarckuzz8n0+3l4ehhncurqi@gmail.com
    medranostarckuzz8n0+3l4ehhncurqi@gmail.com 2024年6月29日 下午1:50

    nostrum qui suscipit tempore consequatur odio qui eveniet consequuntur et temporibus dicta odio ipsum sunt soluta doloremque. beatae vitae autem labore voluptatem qui est quis qui amet rerum optio ius

  • cantrellmechanicfcy5k2+3l4ehgmjthuk@gmail.com
    cantrellmechanicfcy5k2+3l4ehgmjthuk@gmail.com 2024年6月18日 下午10:48

    omnis quia velit soluta quaerat. veritatis perferendis quaerat pariatur unde voluptas enim velit nisi et quidem architecto iusto ut inventore aspernatur dolore et reprehenderit. maxime voluptatem magn

  • xxxx@hotmail.com
    xxxx@hotmail.com 2024年4月18日 下午4:07

    当前博客就是基于getoutline?

    • 幽叶草的头像
      幽叶草 2024年4月24日 下午12:38

      @xxxx@hotmail.com不是的哈,我这边outline主要倾向于当成笔记或者个人文档类的,主要是自己记录,博客主要是发表归纳好的东西,要对wiki的内容进行加工和整理。

  • 手动更新outline知识库 - 有序集合 2024年1月11日 下午7:12

    […] 参考链接:幽夜草博客 […]

  • hai
    hai 2023年12月18日 上午11:17

    hi,make install 后报错呢

  • pipu
    pipu 2023年12月12日 下午1:44

    Hi,我部署成功了感谢你的教程。有个问题想请教下,我登录以后看到了openid登录,请问这个如何操作?

    • 幽叶草的头像
      幽叶草 2023年12月12日 下午6:44

      @pipu你在执行make install的时候会让你创建一个用户名和密码,使用这个用户名和密码登录即可。

  • steady
    steady 2023年11月12日 上午11:11

    博主你好,请问文档集里面的图标要怎么修改呢? 如果用docker compose方式部署是不是没办法修改呢?

    • 幽叶草的头像
      幽叶草 2023年11月12日 上午11:42

      @steady不是的,都可以修改的,修改图标的话,你选中左侧对应的文档集,有编辑按钮,在编辑界面可以进行重命名和修改图标

    • steady
      steady 2023年11月12日 上午11:57

      @幽叶草是的 这个我清楚,我的图标选框中只有默认的几个图标,我看你博客里面图标都是自定义的。请问你是怎么添加图表的呢?
      另外outline有windows的客户端,如果是私有化部署的,登录使用gitlab。是不是没办法使用windows客户端呢?因为没有找到gitlab登录的选项。

    • steady
      steady 2023年11月12日 下午3:26

      @幽叶草好的 我知道了,图标是一样的,只不过你的配色不一样,猛的一看以为你是自定义的图标,抱歉。你一定是UE出身的,哈哈哈哈。

    • 幽叶草的头像
      幽叶草 2023年11月12日 下午3:59

      @steady哈哈哈哈,我就是瞎整,都弄成不一样的

  • inno
    inno 2023年11月9日 下午8:50

    博主,我有个新的问题,outline wiki似乎无法导出进行备份。
    我查找了这个docker项目中的issue发现也有人提出了[这个问题](https://github.com/vicalloy/outline-docker-compose/issues/69)
    看了一下好像就是博主您教程中的提到的`AWS_S3_UPLOAD_MAX_SIZE`以及`MAXIMUM_IMPORT_SIZE`这两项,我检查后仍然无法进行导出
    issue也已经提交了

    • 幽叶草的头像
      幽叶草 2023年11月12日 下午4:01

      @inno这两个参数跟导出关系不大,主要是导入的。你这边用的是什么文件系统?这个问题有没有在各个容器的日志里面发现什么异常?

    • inno
      inno 2023年11月13日 下午10:00

      @幽叶草现在默认是local

    • Rick
      Rick 2023年11月13日 上午3:36

      @inno升级outline至0.72.2后可以导出

    • 幽叶草的头像
      幽叶草 2023年11月13日 下午10:01

      @Rick嗯嗯,可以的,这也是Issues的解决方案

    • inno
      inno 2023年11月13日 下午10:06

      @Rick好的 谢谢!

  • 李逍遥
    李逍遥 2023年11月4日 下午4:22

    楼主,为什么部署完之后只能在服务器上用127.0.0.1:8888访问,在服务器或者其他电脑上用IP就不行呢。。。。

    • 幽叶草的头像
      幽叶草 2023年11月4日 下午4:29

      @李逍遥你看一下其他电脑上telnet看看能连通你这个端口吗?
      如果连不通的话,那你要看看是不是防火墙需要开放端口

    • 李逍遥
      李逍遥 2023年11月4日 下午5:50

      @李逍遥服务器端口全放开了 也不行,上传附件也失败,好难啊。。。

    • 幽叶草的头像
      幽叶草 2023年11月4日 下午7:20

      @李逍遥先telnet看看端口能不能通吧,能的话看看nginx的日志,然后你可以看看各个容器异常的日志,从里面找出问题

  • 一般路过的路人
    一般路过的路人 2023年11月3日 下午7:26

    今天试了一下图片本地存储,效果有点不及预期。
    文件结构还是和minio一样,uploads里面套两层才到图片,本来以为可以统一在一个路径下方便管理。优点是图片名字和上传的图片名保持一致了,至少可以用find比较好找(之前前台上传图片名字都变成image)。
    修改很简单:config.sh和env.outline添加local、nginx的default.conf和docker-compose.yml删去minio相关内容,添加本地存储路径即可。存储文件夹权限我配成777才行,官方的改法还是提示无权限。

    • 幽叶草的头像
      幽叶草 2023年11月3日 下午7:28
    • 一般路过的路人
      一般路过的路人 2023年11月4日 上午10:32

      @幽叶草补充一下,如果选择直接切换,minio的文件会因为路径不同在前台变成空白图片。
      这个时候要先把这些空白图片都处理掉再使用导出功能。否则会导出失败并在前台持续出现正在导出的提示。这个导出会记录在数据库中,所以通过版本更新没法去除,只能进数据库删。详见issue
      https://github.com/outline/outline/issues/6109

  • Pluto
    Pluto 2023年10月31日 下午12:18

    ✔ Network outline-docker-compose_outlinewiki Created 0.2s
    ✔ Container outline-docker-compose-wk-postgres-1 Started 1.6s
    ✔ Container outline-docker-compose-wk-oidc-server-1 Started 1.6s
    ✔ Container outline-docker-compose-wk-redis-1 Started 1.4s
    ✔ Container outline-docker-compose-wk-outline-1 Started 2.3s
    ✔ Container outline-docker-compose-wk-nginx-1 Started 3.2s
    cd ./scripts && bash ./main.sh reload_nginx
    http: invalid Host header
    waiting nginx
    http: invalid Host header
    waiting nginx
    http: invalid Host header
    waiting nginx
    http: invalid Host header
    waiting nginx
    http: invalid Host header
    waiting nginx
    http: invalid Host header
    waiting nginx
    http: invalid Host header
    waiting nginx
    http: invalid Host header
    waiting nginx
    ^Z
    [4]+ Stopped make install

    一直报这个错,是在解决不了。
    config.sh 是这样的,改成IP也不行
    FILE_STORAGE=local
    # The url used to vist this web site.
    URL=http://nsg.ac.cn
    # The default interface language. See translate.getoutline.com for a list of
    # available language codes and their rough percentage translated.
    DEFAULT_LANGUAGE=zh_CN
    # https://docs.djangoproject.com/en/2.2/ref/settings/#language-code
    LANGUAGE_CODE=en-us
    # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
    TIME_ZONE=UTC
    FORCE_HTTPS=false
    # The domain in you email.
    # Comma separated list of domains to be allowed (optional).
    # If not set, the first user’s domain is allowed by default.
    ALLOWED_DOMAINS=

    # Docker image version
    OUTLINE_VERSION=0.72.2
    POSTGRES_VERSION=15.2-alpine3.17
    MINIO_VERSION=RELEASE.2022-11-17T23-20-09Z
    MINIO_MC_VERSION=RELEASE.2022-11-17T21-20-39Z

    # Nginx
    # The nginx bind ip and port.
    # If you use ip address to access outline, this ip and port should be same as the URL.
    # If this server behind a proxy(nginx), you can bind to `127.0.0.1`.
    HTTP_IP=0.0.0.0
    HTTP_PORT_IP=8888

    # Docker
    # If you server behind a proxy(nginx), and the proxy created by docker. You can use the proxy’s network. Set the `NETWORKS` to proxy’s network name, and set `NETWORK>
    # The sample config for host nginx can be find in `config/sample/nginx_outline.conf`.
    NETWORKS=outlinewiki
    NETWORKS_EXTERNAL=false

    • 幽叶草的头像
      幽叶草 2023年10月31日 下午1:07

      @Pluto看起来是执行cd ./scripts && bash ./main.sh reload_nginx的时候报错了导致的
      你先看下创建的这些容器各自的日志,看看有没有报错,然后再看下outline-docker-compose-wk-nginx-1这个容器里面生成的default.conf和nginx.conf有没有问题

    • 李逍遥
      李逍遥 2023年11月3日 下午4:48

      @Pluto我也是一样的问题,你解决了吗?搞了大半天了直接处理不了笑哭

    • 一般路过的路人
      一般路过的路人 2023年11月4日 上午10:23

      @Pluto看起来你是用local的存储方式?nginx没开启来可能是default配置文件里面minio的部分还在,导致nginx一直起不来。删掉即可。详见我下面11月3日评论

    • 李逍遥
      李逍遥 2023年11月4日 下午4:15

      @PlutoLinux服务器权限问题,应该使用的ubuntuserver版,生成的docker里边文件无权限特别是nginx的配置文件,我也不知道为毛这样,因为我从docker镜像往外复制文件时提示权限不足,所以想到这里。重装了服务器好了。。。汗笑哭

  • inno
    inno 2023年10月29日 下午5:42

    老哥我想问一下,按照您的步骤进行搭建此服务,有出现过outline无法上传图片的情形吗

    • 幽叶草的头像
      幽叶草 2023年10月29日 下午5:49

      @inno从来没有的,你的报错是啥呢,我可以帮你简单看看

    • inno
      inno 2023年10月29日 下午6:03

      @inno应该是这一串
      “`
      {“event”:{“actorId”:”1fcbec38-58cb-4e76-aa3b-1ffbdc5e53af”,”collectionId”:null,”createdAt”:”2023-10-29T09:59:39.262Z”,”data”:{“name”:”11.jpg”},”documentId”:null,”id”:”2a928627-ecfb-477d-9226-00d8c6371a6d”,”ip”:”212.107.30.155″,”modelId”:”b5442c91-d904-4f42-b9b9-2bb989a80d81″,”name”:”attachments.create”,”teamId”:”72c3acf0-b3f6-4350-9498-501e1c7e7f33″,”userId”:null},”label”:”worker”,”level”:”info”,”message”:”WebhookProcessor running attachments.create”}
      [Error: EACCES: permission denied, mkdir ‘/var/lib/outline/data/uploads’] {
      errno: -13,
      code: ‘EACCES’,
      syscall: ‘mkdir’,
      path: ‘/var/lib/outline/data/uploads’,
      status: 500
      }
      “`

    • 幽叶草的头像
      幽叶草 2023年10月29日 下午6:21

      @inno你是用本地存储还是minio容器呢,这是哪里的报错,接口还是minio容器呢,如果是minio,可能要检查下配置文件的key之类的。

    • inno
      inno 2023年10月29日 下午6:45

      @inno@幽叶草 谢谢老哥,我发现docker中没有minio这一项存在 我现在再重试一边看看

    • inno
      inno 2023年10月29日 下午6:49

      @inno@幽叶草 运行docker的时候没有minio docker这一项

      root@debian:~/outline-docker-compose# make install
      cd ./scripts && bash ./main.sh init_cfg
      /usr/local/bin/docker-compose up -d
      [+] Building 0.0s (0/0) docker:default
      [+] Running 6/6
      ✔ Network outline-docker-compose_outlinewiki Created 0.0s
      ✔ Container outline-docker-compose-wk-oidc-server-1 Started 0.1s
      ✔ Container outline-docker-compose-wk-postgres-1 Started 0.1s
      ✔ Container outline-docker-compose-wk-redis-1 Started 0.1s
      ✔ Container outline-docker-compose-wk-outline-1 Started 0.1s
      ✔ Container outline-docker-compose-wk-nginx-1 Started 0.1s
      cd ./scripts && bash ./main.sh reload_nginx
      2023/10/29 10:48:36 [notice] 22#22: signal process started

    • 幽叶草的头像
      幽叶草 2023年10月29日 下午6:55

      @inno看起来应该是他的脚本改了,我看他已经现在用S3作为数据存储了,你可以看一下他git log前几个版本,我现在还在外面,回去我帮你看下,或者明天。

    • 幽叶草的头像
      幽叶草 2023年10月29日 下午7:06

      @inno我看了下脚本作者的Issues,里面有反馈这个问题,也给出了解决方案,你可以试下:https://github.com/vicalloy/outline-docker-compose/issues/64

    • inno
      inno 2023年10月29日 下午7:09

      @inno@幽叶草 谢谢大佬,感激不尽

    • inno
      inno 2023年10月29日 下午9:33

      @inno@幽叶草 谢谢大佬的指路,按照issue中的做法 docker-compose中加了一行后能够成功上传了

      但新的问题又出现了大哭大哭,我在另外两台机子上进行安装发现打不开网页。我感觉是nginx出了问题 但不知道怎么修

      这个是正常的日志
      103.116.72.132 – – [29/Oct/2023:13:13:56 +0000] “POST /api/documents.deleted HTTP/1.1” 200 140 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:13:56 +0000] “POST /api/collections.documents HTTP/1.1” 200 531 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:13:59 +0000] “POST /api/documents.list HTTP/1.1” 200 12309 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:13:59 +0000] “POST /api/pins.list HTTP/1.1” 200 156 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:13:59 +0000] “POST /api/documents.viewed HTTP/1.1” 200 139 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:13:59 +0000] “POST /api/pins.list HTTP/1.1” 200 156 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:01 +0000] “POST /api/documents.list HTTP/1.1” 200 12309 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:01 +0000] “POST /api/pins.list HTTP/1.1” 200 156 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:04 +0000] “POST /api/documents.list HTTP/1.1” 200 12309 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:04 +0000] “POST /api/documents.list HTTP/1.1” 200 12309 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:10 +0000] “GET /realtime/?EIO=4&transport=websocket HTTP/1.1” 101 8092 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:23 +0000] “POST /api/collections.delete HTTP/1.1” 200 39 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:23 +0000] “POST /api/documents.list HTTP/1.1” 200 12309 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:23 +0000] “POST /api/documents.viewed HTTP/1.1” 200 139 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:31 +0000] “POST /api/collections.create HTTP/1.1” 200 656 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:31 +0000] “GET /collaboration/document.9da2b0ef-bd4b-4999-a569-c61af0fbd3a8 HTTP/1.1” 101 12416 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:31 +0000] “POST /api/collections.documents HTTP/1.1” 200 34 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:31 +0000] “POST /api/pins.list HTTP/1.1” 200 156 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:31 +0000] “POST /api/documents.list HTTP/1.1” 200 137 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:33 +0000] “POST /api/documents.create HTTP/1.1” 200 1818 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:33 +0000] “POST /api/documents.list HTTP/1.1” 200 137 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:33 +0000] “POST /api/comments.list HTTP/1.1” 200 139 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:33 +0000] “POST /api/views.list HTTP/1.1” 200 34 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:33 +0000] “POST /api/subscriptions.list HTTP/1.1” 200 127 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:33 +0000] “POST /api/shares.info HTTP/1.1” 204 0 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:33 +0000] “POST /api/collections.documents HTTP/1.1” 200 34 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:14:36 +0000] “POST /api/views.create HTTP/1.1” 200 616 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”
      103.116.72.132 – – [29/Oct/2023:13:17:40 +0000] “GET /collaboration/document.44f5cfbf-6e03-4c18-a182-fa478d846ea2 HTTP/1.1” 101 1339 “-” “Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0” “-”

      这个是不正常的日志
      /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
      /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
      /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
      10-listen-on-ipv6-by-default.sh: info: can not modify /etc/nginx/conf.d/default.conf (read-only file system?)
      /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
      /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
      /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
      /docker-entrypoint.sh: Configuration complete; ready for start up
      2023/10/29 12:45:37 [notice] 1#1: using the “epoll” event method
      2023/10/29 12:45:37 [notice] 1#1: nginx/1.25.3
      2023/10/29 12:45:37 [notice] 1#1: built by gcc 12.2.0 (Debian 12.2.0-14)
      2023/10/29 12:45:37 [notice] 1#1: OS: Linux 5.4.0-165-generic
      2023/10/29 12:45:37 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1048576:1048576
      2023/10/29 12:45:37 [notice] 1#1: start worker processes
      2023/10/29 12:45:37 [notice] 1#1: start worker process 21
      2023/10/29 12:45:37 [notice] 1#1: start worker process 22
      2023/10/29 12:45:37 [notice] 1#1: start worker process 23
      2023/10/29 12:45:37 [notice] 1#1: start worker process 24
      2023/10/29 12:45:37 [notice] 1#1: signal 1 (SIGHUP) received from 25, reconfiguring
      2023/10/29 12:45:37 [notice] 1#1: reconfiguring
      2023/10/29 12:45:37 [notice] 1#1: using the “epoll” event method
      2023/10/29 12:45:37 [notice] 1#1: start worker processes
      2023/10/29 12:45:37 [notice] 1#1: start worker process 32
      2023/10/29 12:45:37 [notice] 1#1: start worker process 33
      2023/10/29 12:45:37 [notice] 1#1: start worker process 34
      2023/10/29 12:45:37 [notice] 1#1: start worker process 35
      2023/10/29 12:45:37 [notice] 23#23: gracefully shutting down
      2023/10/29 12:45:37 [notice] 22#22: gracefully shutting down
      2023/10/29 12:45:37 [notice] 23#23: exiting
      2023/10/29 12:45:37 [notice] 23#23: exit
      2023/10/29 12:45:37 [notice] 22#22: exiting
      2023/10/29 12:45:37 [notice] 21#21: gracefully shutting down
      2023/10/29 12:45:37 [notice] 21#21: exiting
      2023/10/29 12:45:37 [notice] 22#22: exit
      2023/10/29 12:45:37 [notice] 21#21: exit
      2023/10/29 12:45:37 [notice] 24#24: gracefully shutting down
      2023/10/29 12:45:37 [notice] 24#24: exiting
      2023/10/29 12:45:37 [notice] 24#24: exit
      2023/10/29 12:45:38 [notice] 1#1: signal 17 (SIGCHLD) received from 24
      2023/10/29 12:45:38 [notice] 1#1: worker process 23 exited with code 0
      2023/10/29 12:45:38 [notice] 1#1: worker process 24 exited with code 0
      2023/10/29 12:45:38 [notice] 1#1: signal 29 (SIGIO) received
      2023/10/29 12:45:38 [notice] 1#1: signal 17 (SIGCHLD) received from 21
      2023/10/29 12:45:38 [notice] 1#1: worker process 21 exited with code 0
      2023/10/29 12:45:38 [notice] 1#1: signal 29 (SIGIO) received
      2023/10/29 12:45:38 [notice] 1#1: signal 17 (SIGCHLD) received from 22
      2023/10/29 12:45:38 [notice] 1#1: worker process 22 exited with code 0
      2023/10/29 12:45:38 [notice] 1#1: signal 29 (SIGIO) received
      2023/10/29 12:46:12 [notice] 1#1: signal 1 (SIGHUP) received from 36, reconfiguring
      2023/10/29 12:46:12 [notice] 1#1: reconfiguring
      2023/10/29 12:46:12 [notice] 1#1: using the “epoll” event method
      2023/10/29 12:46:12 [notice] 1#1: start worker processes
      2023/10/29 12:46:12 [notice] 1#1: start worker process 42
      2023/10/29 12:46:12 [notice] 1#1: start worker process 43
      2023/10/29 12:46:12 [notice] 1#1: start worker process 44
      2023/10/29 12:46:12 [notice] 1#1: start worker process 45
      2023/10/29 12:46:12 [notice] 35#35: gracefully shutting down
      2023/10/29 12:46:12 [notice] 34#34: gracefully shutting down
      2023/10/29 12:46:12 [notice] 34#34: exiting
      2023/10/29 12:46:12 [notice] 34#34: exit
      2023/10/29 12:46:12 [notice] 35#35: exiting
      2023/10/29 12:46:12 [notice] 35#35: exit
      2023/10/29 12:46:12 [notice] 33#33: gracefully shutting down
      2023/10/29 12:46:12 [notice] 33#33: exiting
      2023/10/29 12:46:12 [notice] 33#33: exit
      2023/10/29 12:46:12 [notice] 32#32: gracefully shutting down
      2023/10/29 12:46:12 [notice] 32#32: exiting
      2023/10/29 12:46:12 [notice] 32#32: exit
      2023/10/29 12:46:12 [notice] 1#1: signal 17 (SIGCHLD) received from 34
      2023/10/29 12:46:12 [notice] 1#1: worker process 34 exited with code 0
      2023/10/29 12:46:12 [notice] 1#1: signal 29 (SIGIO) received
      2023/10/29 12:46:12 [notice] 1#1: signal 17 (SIGCHLD) received from 35
      2023/10/29 12:46:12 [notice] 1#1: worker process 35 exited with code 0
      2023/10/29 12:46:12 [notice] 1#1: signal 29 (SIGIO) received
      2023/10/29 12:46:12 [notice] 1#1: signal 17 (SIGCHLD) received from 32
      2023/10/29 12:46:12 [notice] 1#1: worker process 32 exited with code 0
      2023/10/29 12:46:12 [notice] 1#1: signal 29 (SIGIO) received
      2023/10/29 12:46:12 [notice] 1#1: signal 17 (SIGCHLD) received from 33
      2023/10/29 12:46:12 [notice] 1#1: worker process 33 exited with code 0
      2023/10/29 12:46:12 [notice] 1#1: signal 29 (SIGIO) received

      大哭大哭不知道怎么解决这种问题

    • 幽叶草的头像
      幽叶草 2023年10月29日 下午9:40

      @inno主要的报错信息看起来是:can not modify /etc/nginx/conf.d/default.conf (read-only file system?)

      你的nginx的配置文件是不是没有权限修改。

      还有就是你为什么要在多台机器上都安装outline呢,是想搭建集群吗?

    • inno
      inno 2023年10月29日 下午10:17

      @inno@幽叶草 第一台机子是测试机,因为我不太会装软件,所以专门买了一台(一个月),这台快到期了。所以想先试一试,再在自己的主力机上安装。没想到还是没能复现。
      nginx的文件我没有动过

    • inno
      inno 2023年10月29日 下午10:56

      @inno@幽叶草 谢谢老哥 修复了!

    • 幽叶草的头像
      幽叶草 2023年10月29日 下午11:17

      @inno嗯嗯,后面发现是啥原因导致的呢

    • inno
      inno 2023年10月30日 上午10:23

      @inno@幽叶草 发现是我ip还是127.0.0.1 ,没有改成0.0.0.0笑哭

  • inno
    inno 2023年10月29日 下午5:34

    谢谢老哥!!!我看你的教程一遍过,看别人的教程楞是搭了好几天没好色花。十分感谢!!!

  • ubuntu
    ubuntu 2023年10月23日 下午1:51

    outline的分享功能疑问:点击分享后,获得分享链接,好像只有在登陆后,才能查看。未登录人员,只有一个回到主页的页面?

    • 幽叶草的头像
      幽叶草 2023年10月23日 下午10:46

      @ubuntu如果要不登陆也可以查看的话,分享的地方记得勾选一下”发布到互联网”

  • 雨夜带刀
    雨夜带刀 2023年8月15日 上午11:27

    如果 Nginx 安装在宿主机中的话,再使用 docker 部署一个 Nginx 给 Outline 使用是不是有点多余,毕竟又多了一层转发,是否考虑将 Nginx 作为可选项。

    • 幽叶草的头像
      幽叶草 2023年8月24日 上午1:04

      @雨夜带刀嗯嗯,你可以考虑将宿主机的Nginx直接用来做转发。只是个人觉得这样部署方便,不需要修改脚本,不用了直接删除就好了,而且不是开放给所有人,主要是自己用或者小范围用,数据量也不大,多一个少一个也区别不是很大。

  • 一般路过的路人
    一般路过的路人 2023年8月4日 下午8:53

    感谢!在v2ex上看到项目作者自推,但是对docker了解很少还是不会摆弄。最后搜到作者这篇博客成功部署了,非常感谢
    说一下我遇到的其他小坑(水平低哈哈哈):
    1、make install的时候提示”key cannot contain a space”
    根据https://stackoverflow.com/questions/69512549/key-cannot-contain-a-space-error-while-running-docker-compose的方法把env.oidc有空格的参数(最后一个)用双引号引起来再安装就可以了。
    2、注册的时候邮箱是必填的,否则即使是root账号也会输入账密后无法登录的情况(而且不会有任何提示)
    参考项目作者https://github.com/vicalloy/outline-docker-compose的FAQ

    • 幽叶草的头像
      幽叶草 2023年8月4日 下午8:56

      @一般路过的路人感谢你的认可和补充~

    • 一般路过的路人
      一般路过的路人 2023年8月23日 上午10:51

      @幽叶草你好,请问博主知道要怎么修改文字的行间距、字体大小、字体颜色吗?我加标签好像不成功。如果博主知道的话能否分别给个例子呢?谢谢!

    • 幽叶草的头像
      幽叶草 2023年8月24日 上午1:10

      @一般路过的路人Outline对直接嵌入并渲染html这一块还是不是特别支持,没有本地的Typora支持的好。因为Outline可能主要是偏向于文档(类似于Confluence)而不是一个严格的Markdown编辑器,你说的这些可能主要还是需要靠大小标题,高亮之类的来实现。

    • 一般路过的路人
      一般路过的路人 2023年8月25日 下午3:45

      @幽叶草谢谢,那请问博主知道快捷键里面的”空上箭头”要怎么打吗?比如快捷键->格式化->段落的“Ctrl + ⇧ + 0”

    • 幽叶草的头像
      幽叶草 2023年8月29日 下午11:50

      @一般路过的路人快捷键->格式化->段落的“Ctrl + ⇧ + 0”其实就是按住Ctrl+Shift+0哈
      你说的 ⇧ 其实就是Shift,有的键盘Shift上面就会刻着 ⇧

    • 一般路过的路人
      一般路过的路人 2023年9月16日 下午10:54

      @幽叶草感谢回复,请问博主知道要怎么访问minio吗?

  • eddie
    eddie 2023年7月31日 下午3:53

    根据教程成功部署了,谢谢~