インストールガイド · 5 min read · Nov 30, 2025

Dockerを使用してFileRunをインストールする方法

FileRunは自己ホスト型のファイル同期および共有のWebベースアプリケーションです。Linux、Windows、NASなど、任意のサーバーで実行できます。ファイルはPWAアプリを使用してWebおよびモバイルでアクセス可能です。Nextcloudと互換性があるため、デスクトップおよびモバイルアプリを使用してファイルにアクセスできます。また、WebDAVプロトコルを使用してファイルにアクセスすることもできます。FileRunはGoogleフォトの代替としても使用でき、オフィスおよび画像プラグインをサポートしています。

FileRunは最大10アカウントをサポートする無料版と、より多くの機能とアカウントを希望する場合のエンタープライズ版があります。このチュートリアルでは、Linuxサーバー上のDocker環境を使用してFileRunをインストールする方法を学びます。また、Elasticsearchを構成して全文検索サポートを提供します。

前提条件

  • 最低2つのCPUコアと2GBのRAMを持つLinuxサーバー。このチュートリアルはすべてのLinuxディストリビューションで実行できます。
  • sudo権限を持つ非rootユーザー。
  • サーバーを指す完全修飾ドメイン名(FQDN)。ここでは、filerun.example.comをドメイン名として使用します。
  • すべてが更新されていることを確認してください。 ## Ubuntu/Debian $ sudo apt update && sudo apt upgrade ## CentOS/Fedora/Rocky Linux/AlmaLinux $ sudo dnf update
  • 基本的なユーティリティパッケージをインストールします。これらのいくつかはすでにインストールされている場合があります。 ## Ubuntu/Debian $ sudo apt install wget curl nano unzip -y ## CentOS/Rocky Linux/AlmaLinux $ sudo dnf install wget curl nano unzip yum-utils -y

ステップ1 - ファイアウォールの構成

Cent OS/Rocky Linux/Alma Linux

Firewalldファイアウォールがインストールされている必要があります。ファイアウォールの状態を確認します。

$ sudo firewall-cmd --state
running

ポート80、9443、および443を開きます。PortainerはHTTPS経由でWeb UIを公開するためにポート9443を使用します。Nginx Proxy ManagerはUIのためにポート81を使用します。

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

変更を有効にするためにファイアウォールを再読み込みします。

$ sudo firewall-cmd --reload

Ubuntu/Debian

UbuntuおよびDebianシステムはデフォルトでufw(Uncomplicated Firewall)を使用します。

ファイアウォールが実行中かどうかを確認します。

$ sudo ufw status

実行中の場合は、HTTPおよびHTTPSポートを開きます。

$ sudo ufw allow http
$ sudo ufw allow https

ファイアウォールが実行されていない場合はSSHポートを開きます。

$ sudo ufw allow "OpenSSH"

ファイアウォールが実行されていない場合は有効にします。

$ sudo ufw enable

実行中の場合は、変更を適用するために再読み込みします。

$ sudo ufw reload

ステップ2 - DockerおよびDocker Composeのインストール

Dockerをインストールするために次のコマンドを実行します。

CentOS/Rocky Linux/Alma Linux

$ sudo dnf install -y yum-utils
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Dockerをインストールしようとすると、次のエラーが発生する場合があります。

ror: 
 Problem: problem with installed package buildah-1:1.26.2-1.el9_0.x86_64
  - package buildah-1:1.26.2-1.el9_0.x86_64 requires runc >= 1.0.0-26, but none of the providers can be installed
  - package containerd.io-1.6.9-3.1.el9.x86_64 conflicts with runc provided by runc-4:1.1.3-2.el9_0.x86_64
  - package containerd.io-1.6.9-3.1.el9.x86_64 obsoletes runc provided by runc-4:1.1.3-2.el9_0.x86_64
  - cannot install the best candidate for the job

上記のエラーが発生した場合は、次のコマンドを使用します。

$ sudo dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing

Ubuntu

$ sudo apt install ca-certificates curl gnupg lsb-release
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Debian

$ sudo apt install ca-certificates curl gnupg lsb-release
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Dockerサービスを有効にして開始します。

$ sudo systemctl start docker --now

ユーザー名をDockerグループに追加します。

$ sudo usermod -aG docker $USER

システムからログアウトし、変更を適用するために再度ログインします。

ステップ3 - FileRun Docker構成の作成

Filerun Docker構成のためのディレクトリを作成します。

$ mkdir dockerfilerun

ディレクトリに移動します。

$ cd ~/dockerfilerun

編集のためにDocker Composeファイルを作成して開きます。

$ nano docker-compose.yml

以下のコードを貼り付けます。

version: '3.8'

services:
  db:
    image: mariadb:10.5
    container_name: filerun_mariadb
    environment:
      MYSQL_ROOT_PASSWORD: your_mysql_root_password
      MYSQL_USER: your_filerun_username
      MYSQL_PASSWORD: your_filerun_password
      MYSQL_DATABASE: your_filerun_database
    volumes:
      - ./db:/var/lib/mysql

  web:
    image: filerun/filerun
    container_name: filerun_web
    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
      - tika
      - elasticsearch
    ports:
      - "8080:80"
    volumes:
      - ./html:/var/www/html
      - ./user-files:/user-files

  tika:
    image: apache/tika
    container_name: filerun_tika

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.23
    container_name: filerun_search
    environment:
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65535
        hard: 65535
    mem_limit: 1g
    volumes:
      - ./esearch:/usr/share/elasticsearch/data

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

Composeファイルを見てみましょう。

  • 最初に、データを保存するためのMariaDB Dockerイメージをプルします。ルートパスワード、MySQLユーザー名、MySQLパスワード、およびFileRun用のデータベース名を入力します。データベースは~/dockerfilerun/dbディレクトリにマウントしてバックアップします。
  • 次に、MariaDBイメージに同じデータベース資格情報を使用して接続するFileRunコンテナをプルします。また、内部でApacheサーバーを実行し、ポート80を介してFileRunを公開します。ホストの~/dockerfilerun/htmlディレクトリに公開ディレクトリをマウントし、~/dockerfilerun/user-filesディレクトリに対応するユーザーアップロードファイルをマウントします。
  • 次に、ファイルのメタデータを読み取るのに役立つApache Tikaコンテナをプルします。
  • 最後に、FileRunにアップロードされたコンテンツの全文検索を実行するのに役立つElasticsearchコンテナをプルします。現時点ではFileRunはElasticsearch 6.8.xのみをサポートしています。環境変数を使用して、サーバーの利用可能なメモリに応じてメモリ制限を制御できます。Elasticsearchデータは~/dockerfilerun/esearchディレクトリにマウントします。

Elasticsearchのためのディレクトリを作成します。Dockerはボリュームのためにディレクトリを自動的に作成しますが、Elasticsearchはローカルディレクトリがユーザーによって所有され、グループのIDが1000である場合にのみ機能します。

$ mkdir esearch

次のコマンドを使用して正しい権限を設定します。

$ chmod g+rwx esearch
$ sudo chgrp 1000 esearch

コンテナを開始する前に、Elasticsearchが機能するためにmmapカウントの制限を増やす必要があります。/etc/sysctl.confファイルを編集のために開きます。

$ sudo nano /etc/sysctl.conf

以下の行を最後に貼り付けます。

vm.max_map_count = 262144

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。これにより、システムを再起動した場合に変更が永続化されます。

今すぐ変更を実施するために次のコマンドを実行します。

$ sudo sysctl -w vm.max_map_count=262144

Dockerサービスを再起動します。

$ sudo systemctl restart docker

ステップ4 - FileRun Dockerコンテナを実行する

次のコマンドを実行してDockerコンテナを起動します。

$ docker compose up -d

このプロセスには、Dockerイメージの取得、ネットワークの作成、および必要なコンテナの起動が含まれるため、しばらく時間がかかります。

コンテナの状態を確認します。

$ docker ps

同様の出力が得られます。

次のステップは、Nginxを使用してSSLをインストールし、より安全にすることです。これを行うためにNginxサーバーを使用します。

ステップ5 - Nginxのインストール

CentOS/Rocky Linux/Alma Linux

最新のNginxをインストールするには、公式のNginxリポジトリをインストールする必要があります。

前提条件パッケージをインストールします。

$ sudo dnf install yum-utils

Nginx yumリポジトリを作成して開きます。

$ sudo nano /etc/yum.repos.d/nginx.repo

以下のコードを貼り付けます。

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

Nginxをインストールします。

$ sudo dnf install nginx

Nginxサーバーを有効にして開始します。

$ sudo systemctl start nginx --now

Filerunからのネットワーク接続を許可するようにSELinuxを構成します。

$ sudo setsebool -P httpd_can_network_connect on

Ubuntu/Debian

Ubuntu 22.04およびDebian 11には古いバージョンのNginxが付属しています。最新バージョンをインストールするには、公式のNginxリポジトリをダウンロードする必要があります。

Nginxの署名キーをインポートします。

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Nginxの安定版のリポジトリを追加します。

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

Debianの場合は、次のコマンドを使用します。

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list

システムリポジトリを更新します。

$ sudo apt update

Nginxをインストールします。

$ sudo apt install nginx

インストールを確認します。

$ nginx -v
nginx version: nginx/1.22.1

ステップ6 - SSLのインストール

Ubuntu/Debian

SSL証明書を生成するためにCertbotをインストールする必要があります。Ubuntuのリポジトリを使用してCertbotをインストールするか、Snapdツールを使用して最新バージョンを取得できます。Snapdバージョンを使用します。

Ubuntu 22.04およびDebian 11には、デフォルトでSnapdがインストールされています。次のコマンドを実行して、Snapdのバージョンが最新であることを確認します。

$ sudo snap install core

Certbotをインストールします。

$ sudo snap install --classic certbot

次のコマンドを使用して、Certbotコマンドが/usr/binディレクトリで実行できるようにシンボリックリンクを作成します。

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

CentOS/Rocky Linux/Alma Linux

CertbotはEPELリポジトリを必要とします。

$ sudo dnf install epel-release

Snapdを使用してCertbotをインストールします。Snapdをインストールします。

$ sudo dnf install snapd

Snapサービスを有効にして開始します。

$ sudo systemctl enable snapd --now

Snap coreパッケージをインストールします。

$ sudo snap install core
$ sudo snap refresh core

Snapdが機能するために必要なリンクを作成します。

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

次のコマンドを実行してCertbotをインストールします。

$ sudo snap install --classic certbot

実行可能ファイルへのシンボリックリンクを作成してCertbotを有効にします。

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

次のコマンドを実行してSSL証明書を生成します。

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d filerun.example.com

Nginxを使用してcertonlyオプションでSSL証明書を生成しました。これはNginxサーバーを使用して証明書をインストールしますが、何も変更しません。

上記のコマンドは、サーバーの/etc/letsencrypt/live/filerun.example.comディレクトリに証明書をダウンロードします。

Diffie-Hellmanグループ証明書を生成します。

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

SSL更新が正常に機能しているかどうかを確認するために、プロセスのドライランを実行します。

$ sudo certbot renew --dry-run

エラーが表示されない場合は、すべて設定完了です。証明書は自動的に更新されます。

ステップ7 - Nginxの構成

/etc/nginx/nginx.confファイルを編集のために開きます。

$ sudo nano /etc/nginx/nginx.conf

include /etc/nginx/conf.d/*.conf;の前に次の行を追加します。

server_names_hash_bucket_size  64;

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

/etc/nginx/conf.d/filerun.confファイルを作成して開きます。

$ sudo nano /etc/nginx/conf.d/filerun.conf

以下のコードを貼り付けます。filerun.example.comをあなたのドメイン名に置き換えます。

upstream backend {
   server 127.0.0.1:8080;
   keepalive 32;
}

server {
  listen 80 default_server;
  server_name filerun.example.com;
  return 301 https://$server_name$request_uri;
}

server {
   listen 443 ssl http2;
   server_name filerun.example.com;

   http2_push_preload on; # Enable HTTP/2 Server Push

   ssl_certificate /etc/letsencrypt/live/filerun.example.com/fullchain.pem;
   ssl_certificate_key /etc/letsencrypt/live/filerun.example.com/privkey.pem;
   ssl_trusted_certificate /etc/letsencrypt/live/filerun.example.com/chain.pem;
   ssl_session_timeout 1d;

   # Enable TLS versions (TLSv1.3 is required upcoming HTTP/3 QUIC).
   ssl_protocols TLSv1.2 TLSv1.3;

   # Enable TLSv1.3's 0-RTT. Use $ssl_early_data when reverse proxying to
   # prevent replay attacks.
   #
   # @see: https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_early_data
   ssl_early_data on;

   ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:50m;
   # OCSP Stapling --- fetch OCSP records from URL in ssl_certificate and cache them
   ssl_stapling on;
   ssl_stapling_verify on;
   ssl_dhparam /etc/ssl/certs/dhparam.pem;

   add_header X-Early-Data $tls1_3_early_data;

   access_log /var/log/nginx/filerun.access.log main;
   error_log  /var/log/nginx/filerun.error.log;

   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Forwarded-Protocol $scheme;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 1800s;
       proxy_connect_timeout 1800s;
       proxy_http_version 1.1;
       proxy_pass http://backend;
   }
}

# This block is useful for debugging TLS v1.3. Please feel free to remove this
# and use the `$ssl_early_data` variable exposed by NGINX directly should you
# wish to do so.
map $ssl_early_data $tls1_3_early_data {
  "~." $ssl_early_data;
  default "";
}

Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。

Nginx構成を確認します。

$ sudo nginx -t

Nginxサーバーを再起動します。

$ sudo systemctl restart nginx

ステップ8 - FileRunにアクセスして構成する

URL https://filerun.example.comにアクセスすると、次の画面が表示されます。

FileRunインストーラー

次へボタンをクリックしてシステム要件ページを開きます。

FileRunサーバー要件ページ

すべてが正常であれば、次へボタンをクリックしてデータベース設定ページに進みます。

FileRunデータベース設定ページ

データベース名、ユーザー、およびパスワードを入力し、次へボタンをクリックして進みます。

FileRunユーザー資格情報

ここでログイン詳細が提供されます。次へボタンをクリックしてログインページを開きます。

FileRunログインページ

前のステップからのログイン資格情報を入力し、サインインボタンをクリックしてFileRunのダッシュボードを開きます。

FileRunダッシュボード

画面の左下にあるスーパーユーザーリンクをクリックし、アカウント設定をクリックします。

パスワードを変更タブをクリックして、デフォルトのパスワードを変更できる次のページにアクセスします。変更を保存ボタンをクリックして保存します。

FileRunパスワード変更画面

ページの左下にあるコントロールパネルリンクをクリックしてFileRunコントロールパネルにアクセスします。ページのファイル >> 検索セクションに移動します。ここで、いくつかの高度なファイル検索およびOCR機能を有効にします。

http://elasticsearch:9200をElasticSearchホストURLとして入力します。ホスト名はDockerファイル内のElasticのサービス名を指します。サーバーをテストボタンをクリックして、正常に動作しているかテストします。

FileRun ElasticSearchテスト

正常に動作していることを確認する同様の出力が得られます。

Apache Tikaサーバーのホスト名としてtikaを入力します。ポート番号として9998を入力します。OCR PDFファイルボタンをチェックします。サーバーをテストボタンをクリックして、正常に動作しているかテストします。

FileRun Tikaテスト

正常に動作していることを確認する同様の出力が得られます。また、OCR画像ファイルボタンをクリックします。ページの上部にある変更を保存ボタンをクリックします。

次に、デフォルトの検索基準オプションの値を名前から内容に変更して全文検索を有効にします。プロセスを完了するために再度変更を保存ボタンをクリックします。

FileRun検索設定

ステップ9 - FileRunを更新する

FileRunのアップグレードは簡単なステップです。FileRunのDocker Composeディレクトリに移動します。

$ cd ~/dockerfilerun

次に、既存のコンテナを停止して削除します。ただし、データは保持されます。

$ docker compose down --remove-orphans

最新バージョンのFileRun Dockerイメージをプルします。

$ docker compose pull

コンテナを再起動します。

$ docker compose up -d

FileRunのインストールが更新され、再起動されました。

結論

これで、Linuxサーバー上のDockerを使用してFileRunファイルホスティングソフトウェアをインストールする方法を学んだチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。