「Funkwhale」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(他言語へのリンクを追加)
40行目: 40行目:
 
[https://docs.funkwhale.audio/installation/docker.html] にある Docker のインストール手順に従ってください。
 
[https://docs.funkwhale.audio/installation/docker.html] にある Docker のインストール手順に従ってください。
   
== Configuration ==
+
== 設定 ==
   
  +
以下のセクションでは、Funkwhale が AUR からインストールされたことを前提としています。
The following sections assume that Funkwhale was installed from AUR,
 
  +
手動インストールの場合は、フォルダーを適切に変更する必要があります。
for a manual installation the folders should be changed appropriately.
 
   
  +
また、ローカルネットワーク上で Funkwhale を使用していることも前提としています。
It also assumes that you are using Funkwhale on a local network.
 
See the official [https://docs.funkwhale.audio/index.html documentation] for making it accessible outside,
+
外部からアクセスできるようにする方法については、公式 [https://docs.funkwhale.audio/index.html ドキュメント] を参照してください。
  +
特に [[Certbot]] を使用する証明書の場合。
especially for the certificates using [[Certbot]].
 
   
=== Host config ===
+
=== ホスト設定 ===
   
  +
{{ic|/etc/hosts}} ファイルが正しく設定されていることを確認してください。
Make sure your {{ic|/etc/hosts}} file is setup correctly.
 
The Funkwhale server is running on {{ic|127.0.0.1}} with alias {{ic|funkwhale.local}}, but this can be changed.
+
Funkwhale サーバーは、{{ic|127.0.0.1}} でエイリアス {{ic|funkwhale.local}} で実行されていますが、これは変更できます。
   
Your {{ic|/etc/hosts}} file should look something like the following,
+
{{ic|/etc/hosts}} ファイルは次のようになります。
   
 
{{bc|#<ip-address> <hostname.domain.org> <hostname>
 
{{bc|#<ip-address> <hostname.domain.org> <hostname>
61行目: 61行目:
 
127.0.0.1 funkwhale.local}}
 
127.0.0.1 funkwhale.local}}
   
=== Configure nginx ===
+
=== nginx の設定 ===
   
The upstream template of the Nginx configuration file is provided in {{ic|/etc/webapps/funkwhale/nginx.template}}.
+
Nginx 構成ファイルのアップストリーム テンプレートは、{{ic|/etc/webapps/funkwhale/nginx.template}} で提供されます。
  +
ただし、このファイルには、{{ic|env}} ファイルの値で置き換える必要がある変数が含まれています
However, this file contains variables that need to be replaced by their value from the {{ic|env}} file
 
  +
(このファイルの作成方法についてはセクション [[Funkwhale#初期化|初期化]] を参照してください):
(see section [[#Initialization]] on how to create this file):
 
   
 
$ set -a && source /srv/funkwhale/config/env && set +a
 
$ set -a && source /srv/funkwhale/config/env && set +a
72行目: 72行目:
 
> /etc/nginx/sites-available/funkwhale.conf
 
> /etc/nginx/sites-available/funkwhale.conf
   
  +
証明書へのパスもそれに応じて変更する必要があります。
The paths to the certificates should also be modified accordingly.
 
   
  +
次に、サイトを有効にします:
Then enable the site:
 
   
 
$ ln -s /etc/nginx/sites-available/funkwhale.conf /etc/nginx/sites-enabled/
 
$ ln -s /etc/nginx/sites-available/funkwhale.conf /etc/nginx/sites-enabled/
   
And [[start]] the {{ic|nginx.service}}.
+
そして、{{ic|nginx.service}} を [[起動]] します。
   
=== Configure apache ===
+
=== Apache の設定 ===
   
  +
{{note|[[Redis]]、[[PostgreSQL]]、および Apache [[TLS]] サポートを使用して実行するように [[Apache HTTP Server]] を設定する必要があります。}}
{{note|You will need [[Apache HTTP Server]] configured to run with [[Redis]], [[PostgreSQL]] and Apache [[TLS]] support.}}
 
   
A template Apache configuration file is provided in {{ic|/etc/webapps/funkwhale/apache-funkwhale.conf}}. It configures the Funkwhale instance to be accessible at {{ic|https://funkwhale.local}}.
+
テンプレートの Apache 設定ファイルは、{{ic|/etc/webapps/funkwhale/apache-funkwhale.conf}} で提供されます。Funkwhale インスタンスが {{ic|https://funkwhale.local}} でアクセスできるように設定されます。
   
The folder names should be change to fit your installation. More explanation on which lines need to be modified is provided in [https://docs.funkwhale.audio/installation/index.html#reverse-proxy-setup].
+
フォルダー名は、インストールに合わせて変更する必要があります。どの行を変更する必要があるかについての詳細は、[https://docs.funkwhale.audio/installation/index.html#reverse-proxy-setup] で説明されています。
   
  +
テンプレートを Apache 設定フォルダーにコピーし、
Copy the template to the apache configuration folder,
 
   
 
$ cp /etc/webapps/funkwhale/apache-funkwhale.conf /etc/httpd/conf/extra/funkwhale.conf
 
$ cp /etc/webapps/funkwhale/apache-funkwhale.conf /etc/httpd/conf/extra/funkwhale.conf
   
Next, edit the [[Apache HTTP Server]] configuration file and add the following:
+
次に、[[Apache HTTP Server]] 設定ファイルを編集し、以下を追加します。
   
 
{{hc|# /etc/httpd/conf/httpd.conf|
 
{{hc|# /etc/httpd/conf/httpd.conf|
98行目: 98行目:
 
}}
 
}}
   
  +
変更を適用するには、[[systemd#ユニットを使う|systemd]] を使用して {{ic|httpd.service}} (Apache) を再起動する必要があります。
For the changes to be applied, you need to restart {{ic|httpd.service}} (Apache) using [[systemd#Using units|systemd]].
 
   
=== Configure PostgreSQL ===
+
=== PostgreSQL の設定 ===
   
Here we follow the official documentation: [https://docs.funkwhale.audio/installation/external_dependencies.html]
+
ここでは、公式ドキュメントに従います: [https://docs.funkwhale.audio/installation/external_dependency.html]
   
  +
{{ic|postgres}} ユーザーを使用して [[PostgreSQL]] コマンドラインに接続し、{{ic|funkwhale}} ユーザーとデータベースを作成します。
Connect to the [[PostgreSQL]] command line using the {{ic|postgres}} user to create the {{ic|funkwhale}} user and the database.
 
   
 
{{hc|$ sudo -u postgres psql|2=
 
{{hc|$ sudo -u postgres psql|2=
116行目: 116行目:
 
}}
 
}}
   
The last three lines load the {{ic|unaccent}} and {{ic|citext}} extensions,
+
最後の 3 行は、{{ic|unaccent}} および {{ic|citext}} 拡張機能をロードします。
which are needed for funkwhale to work ({{ic|citext}} since version 0.20).
+
これらは funkwhale が動作するために必要です ({{ic|citext}} バージョン 0.20 以降)
   
 
== Initialization ==
 
== Initialization ==

2024年1月17日 (水) 04:44時点における版

関連記事

メインドキュメントページ: から引用

Funkwhale is a self-hosted, modern, free and open-source music server, heavily inspired by Grooveshark.

インスタンスは ActivityPub プロトコルで連携できます。

インストール

Funkwhale にはリバースプロキシ ([1]) が必要です。 したがって、nginx または Apache HTTP Server をインストールする必要があります。

また、設定された PostgreSQL データベースと Redis キャッシュサーバーも必要です。 詳細については、Funkwhale#設定 およびそれぞれのページを参照してください。

AUR からのインストール

funkwhaleAUR パッケージを インストール して下さい。

警告: このインストールでは Python virtualenv を使用しないため、すべての Python 依存関係は主に AUR からシステム全体にインストールされます。パッケージのバージョンが上流の要件と異なる場合があり、問題が発生する可能性があります。

手動インストール

[2] にある Arch のインストール手順に従ってください。 これにより、すべてのコンポーネントが /srv/funkwhale にインストールされます。

Docker のインストール

[3] にある Docker のインストール手順に従ってください。

設定

以下のセクションでは、Funkwhale が AUR からインストールされたことを前提としています。 手動インストールの場合は、フォルダーを適切に変更する必要があります。

また、ローカルネットワーク上で Funkwhale を使用していることも前提としています。 外部からアクセスできるようにする方法については、公式 ドキュメント を参照してください。 特に Certbot を使用する証明書の場合。

ホスト設定

/etc/hosts ファイルが正しく設定されていることを確認してください。 Funkwhale サーバーは、127.0.0.1 でエイリアス funkwhale.local で実行されていますが、これは変更できます。

/etc/hosts ファイルは次のようになります。

#<ip-address>   <hostname.domain.org>   <hostname>
127.0.0.1       localhost
::1             localhost
127.0.0.1       funkwhale.local

nginx の設定

Nginx 構成ファイルのアップストリーム テンプレートは、/etc/webapps/funkwhale/nginx.template で提供されます。 ただし、このファイルには、env ファイルの値で置き換える必要がある変数が含まれています (このファイルの作成方法についてはセクション 初期化 を参照してください):

$ set -a && source /srv/funkwhale/config/env && set +a
$ envsubst "`env | awk -F = '{printf \" $%s\", $$1}'`" \
   < /etc/webapps/funkwhale/nginx.conf \
   > /etc/nginx/sites-available/funkwhale.conf

証明書へのパスもそれに応じて変更する必要があります。

次に、サイトを有効にします:

$ ln -s /etc/nginx/sites-available/funkwhale.conf /etc/nginx/sites-enabled/

そして、nginx.service起動 します。

Apache の設定

ノート: RedisPostgreSQL、および Apache TLS サポートを使用して実行するように Apache HTTP Server を設定する必要があります。

テンプレートの Apache 設定ファイルは、/etc/webapps/funkwhale/apache-funkwhale.conf で提供されます。Funkwhale インスタンスが https://funkwhale.local でアクセスできるように設定されます。

フォルダー名は、インストールに合わせて変更する必要があります。どの行を変更する必要があるかについての詳細は、[4] で説明されています。

テンプレートを Apache 設定フォルダーにコピーし、

$ cp /etc/webapps/funkwhale/apache-funkwhale.conf /etc/httpd/conf/extra/funkwhale.conf

次に、Apache HTTP Server 設定ファイルを編集し、以下を追加します。

# /etc/httpd/conf/httpd.conf
Include conf/extra/funkwhale.conf

変更を適用するには、systemd を使用して httpd.service (Apache) を再起動する必要があります。

PostgreSQL の設定

ここでは、公式ドキュメントに従います: [5]

postgres ユーザーを使用して PostgreSQL コマンドラインに接続し、funkwhale ユーザーとデータベースを作成します。

$ sudo -u postgres psql
CREATE DATABASE "funkwhale"
 WITH ENCODING 'utf8';
CREATE USER funkwhale;
GRANT ALL PRIVILEGES ON DATABASE funkwhale TO funkwhale;
\c funkwhale;
CREATE EXTENSION "unaccent";
CREATE EXTENSION "citext";

最後の 3 行は、unaccent および citext 拡張機能をロードします。 これらは funkwhale が動作するために必要です (citext バージョン 0.20 以降)

Initialization

Funkwhale user

Funkwhale should be run as the funkwhale user. It is automatically created by the AUR package. If you followed the manual installation, create it with

$ useradd -r -d /srv/funkwhale -m funkwhale -c "Funkwhale music server -s /sbin/nologin"

Create Funkwhale's data folders in /srv/funkwhale, owned by the funkwhale user:

$ mkdir /srv/funkwhale
$ chown funkwhale:funkwhale /srv/funkwhale

Run the following commands as the funkwhale user.

Create sub-folders for api files and storage.

$ sudo -u funkwhale -H bash
[funkwhale]$ cd /srv/funkwhale
[funkwhale]$ mkdir -p api data/static data/media data/music config

To work, Funkwhale needs several environment variables to be present, these should be defined in the environment file /srv/funkwhale/config/env. There is a template at /etc/webapps/funkwhale/env.template, copy and modify it to fit your installation.

[funkwhale]$ cp /etc/webapps/funkwhale/env.template /srv/funkwhale/config/env

The FUNKWHALE_HOSTNAME variable should correspond to the hostname in /etc/hosts. DJANGO_ALLOWED_HOSTS needs also to match the address where the funkwhale instance will be reached. You should generate a unique DJANGO_SECRET_KEY and change the paths accordingly to your installation.

ヒント: As you will need to run several commands as the funkwhale user with the environment variables loaded, you can use the following command-line after logging in:

[funkwhale]$ export $(cat /srv/funkwhale/config/env | grep -v ^# | xargs)

For convenience, you can copy this line to /srv/funkwhale/.bashrc (or whichever shell you are using), so it is loaded automatically everytime you log in to the funkwhale user.

Database setup

Initialize the database before launching the application:

$ sudo -u funkwhale -H bash
[funkwhale]$ python /usr/share/webapps/funkwhale/api/manage.py migrate

Create a superuser for your Funkwhale instance:

[funkwhale]$ python /usr/share/webapps/funkwhale/api/manage.py createsuperuser

Collect the static files for the webapp:

[funkwhale]$ python /usr/share/webapps/funkwhale/api/manage.py collectstatic
ノート: Starting with version 0.21, an alias is provided for /usr/share/webapps/funkwhale/api/manage.py in /usr/bin/funkwhale_manage, so you can instead use:
[funkwhale]$ funkwhale_manage collectstatic

Version upgrade

ノート: Starting with version 0.21, an alias is provided for /usr/share/webapps/funkwhale/api/manage.py in /usr/bin/funkwhale_manage, so you can use:
[funkwhale]$ funkwhale_manage [commands...]

instead of

[funkwhale]$ python /usr/share/webapps/funkwhale/api/manage.py [commands...]

All commands should be entered as funkwhale user. Stop the funkwhale.service before upgrading.

The static files have to be collected again:

[funkwhale]$ funkwhale_manage collectstatic --no-input

Apply database migrations:

[funkwhale]$ funkwhale_manage migrate

To upgrade to version 1.0, the thumbnails quality has been increased from 70 to 95, so all the thumbnails should be regenerated (or set THUMBNAIL_JPEG_RESIZE_QUALITY=70 in the .env file so nothing changes). First delete the __sized__ directory in your MEDIA_ROOT directory, then regenerate the thumbnails,

[funkwhale]$ rm -rf /srv/funkwhale/data/media/__sized__
[funkwhale]$ funkwhale_manage fw media generate-thumbnails

Starting from version 0.20.1, there is a new MUSIC_USE_DENORMALIZATION parameter in the env file set to True (you can set it to False so nothing changes). It is a performance enhancement and to make it work you need to run the following command,

[funkwhale]$ python /usr/share/webapps/funkwhale/api/manage.py rebuild_music_permissions
警告: Check that the apache or nginx configuration file did not change before restarting the service. Consult the official documentation for incompatible changes.
警告: From version 0.20, python-daphneAUR was replaced by uvicorn/gunicorn. The service file was updated not to use python-daphneAUR anymore. This can be changed by editing the funkwhale-server.service file.

Also, the citext extension for postgresql is now needed. It can be loaded with issueing the following command before calling the migrate command:

$ sudo -u postgres psql funkwhale -c 'CREATE EXTENSION "citext";'

After completing all these steps, the funkwhale.service can be started again.

ノート: All the instructions for upgrading are given on the official documentation [6].

Usage

Upstream provides systemd services that are already installed with the AUR package.

To start the instance, just start funkwhale.service.

This starts three services, you can check their status with:

$ systemctl status funkwhale-\*

Troubleshooting

See https://docs.funkwhale.audio/admin/troubleshooting.html

Proxy logs

Apache logs for funkwhale:

$ tail -f /var/log/httpd/funkwhale/error.log