インストールガイド · 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コントロールパネルにアクセスします。ページのファイル >> 検索セクションに移動します。ここで、いくつかの高度なファイル検索およびOCR機能を有効にします。
http://elasticsearch:9200をElasticSearchホストURLとして入力します。ホスト名はDockerファイル内のElasticのサービス名を指します。サーバーをテストボタンをクリックして、正常に動作しているかテストします。

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

正常に動作していることを確認する同様の出力が得られます。また、OCR画像ファイルボタンをクリックします。ページの上部にある変更を保存ボタンをクリックします。
次に、デフォルトの検索基準オプションの値を名前から内容に変更して全文検索を有効にします。プロセスを完了するために再度変更を保存ボタンをクリックします。

ステップ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ファイルホスティングソフトウェアをインストールする方法を学んだチュートリアルが終了しました。質問がある場合は、下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。