使用 Docker 进行文件运行安装

本指南假定您已安装并安装在具有至少 1GB RAM 内存的服务器上。Docker docker-compose

创建名为文本的文件,并将其粘贴到以下内容中:docker-compose.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
version: '2'

services:
db:
image: mariadb:10.1
environment:
MYSQL_ROOT_PASSWORD: your_mysql_root_password
MYSQL_USER: your_filerun_username
MYSQL_PASSWORD: your_filerun_password
MYSQL_DATABASE: your_filerun_database
volumes:
- /filerun/db:/var/lib/mysql

web:
image: afian/filerun
environment:
FR_DB_HOST: db
FR_DB_PORT: 3306
FR_DB_NAME: your_filerun_database
FR_DB_USER: your_filerun_username
FR_DB_PASS: your_filerun_password
APACHE_RUN_USER: www-data
APACHE_RUN_USER_ID: 33
APACHE_RUN_GROUP: www-data
APACHE_RUN_GROUP_ID: 33
depends_on:
- db
links:
- db:db
ports:
- "80:80"
volumes:
- /filerun/html:/var/www/html
- /filerun/user-files:/user-files

请注意上述配置。您需要配置两个文件夹。一个用于 FileRun 应用程序文件。它可以位于任何空文件夹中,并且必须将装载路径设置为 和 一个用于 FileRun 用户文件,并且装载路径设置为 。换句话说,如果使用上述配置文本,您只需要创建两个空文件夹,并且可以启动 FileRun Docker 容器:volumes /var/www/html /user-files /filerun/html /filerun/user-files

其中/filerun是你的本地映射路径,/var/www/html是docker容器里的路径

1
mkdir /filerun /filerun/html /filerun/user-files

然后使用以下命令启动 FileRun:

1
docker-compose up -d

FileRun 现在应该已启动并运行,您可以使用浏览器访问它。

默认 FileRun 凭据如下所示:

* 用户名:superuser

* 密码:superuser

然后设置nginx反向代理,使用ssl访问

/etc/nginx/conf.d/下生成你的xxx.conf文件。当然,你得先用Certbot生成证书。内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
server {
server_name xxx.xxx;#你的域名

location / {
proxy_pass http://127.0.0.1:10080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header X-Forwarded-Proto https;
port_in_redirect off;
proxy_connect_timeout 300;
}

listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/xxx.xxx/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/xxx.xxx/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
if ($host = xxx.xxx) {
return 301 https://$host$request_uri;
} # managed by Certbot


listen 80;
listen [::]:80;
server_name xxx.xxx;
return 404; # managed by Certbot
}

如果你使用了ssl,那么根据官方以及大多数博客的内容,你会在登录的时候出错。一直登录不上去。

强制使用https协议

如果您的nginx服务,并没有直接面向最终用户,而是在某些负载均衡/cdn后面,并且您的ssl证书是在这些负载均衡/cdn上面配置的,那么有可能会导致nginx无法正确获取客户端所使用的协议,从而导致无法将客户端使用的协议传递给为知笔记服务。在这种情况下,您可以修改nginx配置,强制通知服务使用https协议。

修改前面的配置,直接将proxy_set_header X-Forwarded-Proto $scheme修改成

1
proxy_set_header X-Forwarded-Proto "https";