2

Docker安装filerun的注意事项

 2 years ago
source link: https://3mile.github.io/archives/2020/1127124547/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

使用 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";

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK