Funkwhale
メインドキュメントページ: から引用
- 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 パッケージを インストール して下さい。
手動インストール
[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 の設定
テンプレートの 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 以降)
初期化
Funkwhale ユーザー
Funkwhale は、funkwhale
ユーザーとして実行する必要があります。これは、AUR パッケージによって自動的に作成されます。
手動インストールに従った場合は、次のように作成します。
# useradd -r -d /srv/funkwhale -m funkwhale -c "Funkwhale music server -s /sbin/nologin"
Funkwhale のデータフォルダーを /srv/funkwhale
に作成します。
funkwhale
ユーザーが所有:
# mkdir /srv/funkwhale # chown funkwhale:funkwhale /srv/funkwhale
funkwhale
ユーザーとして次のコマンドを実行します。
API ファイルとストレージ用のサブフォルダーを作成します:
[funkwhale]$ cd /srv/funkwhale [funkwhale]$ mkdir -p api data/static data/media data/music config
Funkwhale が動作するには、いくつかの環境変数が必要です。これらは環境ファイル /srv/funkwhale/config/env
で定義されている必要があります。
/etc/webapps/funkwhale/env.template
にテンプレートがあります。これをコピーして、インストールに合わせて変更します。
[funkwhale]$ cp /etc/webapps/funkwhale/env.template /srv/funkwhale/config/env
FUNKWHALE_HOSTNAME
変数は、/etc/hosts
のホスト名に対応する必要があります。
DJANGO_ALLOWED_HOSTS
も、funkwhale インスタンスに到達するアドレスと一致する必要があります。
一意の DJANGO_SECRET_KEY
を生成し、インストールに応じてパスを変更する必要があります。
データベースのセットアップ
AUR から funkwhale-venvAUR をインストールした場合は、/usr/bin/funkwhale_manage
を使用して /usr/share/webapps/funkwhale/api/manage.py
を実行しますfunkwhale
ユーザーとしてコマンドを実行します。
アプリケーションを起動する前にデータベースを初期化します:
[funkwhale]$ funkwhale_manage migrate
Funkwhale インスタンスのスーパーユーザーを作成します:
[funkwhale]$ funkwhale_manage createsuperuser
Web アプリの静的ファイルを収集します:
[funkwhale]$ funkwhale_manage collectstatic
バージョンアップ
自動
AUR から funkwhale-venvAUR をインストールした場合は、特別なことは何もありません。エラーが発生した場合は、/usr/bin/funkwhale_manage
スクリプトを使用して、/usr/share/webapps/funkwhale/api/manage.py
コマンドを実行します sudo を使用して (実行する必要があります))
マニュアル
AUR から funkwhaleAUR をインストールした場合は、次の手順に従ってください。
アップグレードする前に、funkwhale.target
を 停止 してください。
すべてのコマンドは、funkwhale
ユーザー として入力する必要があります。
静的ファイルを再度収集する必要があります:
[funkwhale]$ funkwhale_manage collectstatic --no-input
データベース移行を適用します:
[funkwhale]$ funkwhale_manage migrate
これらの手順をすべて完了すると、funkwhale.target
は再び 起動状態 になります。
使い方
アップストリームは、AUR パッケージとともにすでにインストールされている systemd サービスを提供します。
インスタンスを開始するには、funkwhale.target
を 起動 するだけです。
これにより 3 つのサービスが開始され、次のコマンドでステータスを確認できます:
$ 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