使用 Docker 进行文件运行安装

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

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

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容器里的路径

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

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

docker-compose up -d

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

默认 FileRun 凭据如下所示:

* 用户名:superuser

* 密码:superuser

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

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

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修改成

  proxy_set_header X-Forwarded-Proto "https";