Standardize code blocks
This commit is contained in:
parent
fa1417c4f6
commit
5dfc2c341d
|
@ -27,7 +27,7 @@ Running `fix_federation_ids` with the `--no-dry-run` flag is irreversible. Make
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fix_federation_ids https://old-url https://new-url --no-dry-run --no-input
|
||||
```
|
||||
|
||||
|
@ -36,7 +36,7 @@ Running `fix_federation_ids` with the `--no-dry-run` flag is irreversible. Make
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fix_federation_ids https://old-url https://new-url --no-dry-run --no-input
|
||||
```
|
||||
|
||||
|
@ -76,7 +76,7 @@ Running `fix_federation_ids` with the `--no-dry-run` flag is irreversible. Make
|
|||
:::{tab-item} Nginx
|
||||
:sync: nginx
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
||||
|
@ -85,7 +85,7 @@ Running `fix_federation_ids` with the `--no-dry-run` flag is irreversible. Make
|
|||
:::{tab-item} Apache
|
||||
:sync: apache
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl restart apache2
|
||||
```
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ You need to restart your Funkwhale services after changing your `.env` file.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl restart funkwhale.target
|
||||
```
|
||||
|
||||
|
@ -18,7 +18,7 @@ You need to restart your Funkwhale services after changing your `.env` file.
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose restart
|
||||
```
|
||||
|
||||
|
|
|
@ -11,19 +11,19 @@ To customize your Funkwhale pod, you need to serve a {file}`settings.json` file
|
|||
1. SSH into your Funkwhale server.
|
||||
2. Navigate to your `/srv/funkwhale` folder
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
3. Create a new `custom` directory for your file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mkdir custom
|
||||
```
|
||||
|
||||
4. Create a new config file and populate it with placeholder settings.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cat <<EOF > custom/settings.json
|
||||
{
|
||||
"additionalStylesheets": [],
|
||||
|
@ -67,7 +67,7 @@ Once you've created your {file}`settings.json` file you need to configure your r
|
|||
|
||||
Add the following snippet to your {file}`/etc/nginx/sites-available/funkwhale.conf` config file:
|
||||
|
||||
```{code} text
|
||||
```{code-block} text
|
||||
location /settings.json {
|
||||
alias /srv/funkwhale/custom;
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ location /settings.json {
|
|||
|
||||
Add the following snippet to your webserver configuration:
|
||||
|
||||
```{code} text
|
||||
```{code-block} text
|
||||
Alias /settings.json /srv/funkwhale/custom/settings.json
|
||||
```
|
||||
|
||||
|
@ -95,13 +95,13 @@ You can use a custom stylesheet to theme your Funkwhale pod. To do this:
|
|||
|
||||
1. Navigate to your {file}`/srv/funkwhale/custom` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale/custom
|
||||
```
|
||||
|
||||
2. Copy your CSS file to this directory, or create a new one.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
# A basic CSS file. Turns the pod's background red.
|
||||
|
||||
cat <<EOF > custom.css
|
||||
|
@ -113,7 +113,7 @@ You can use a custom stylesheet to theme your Funkwhale pod. To do this:
|
|||
|
||||
3. Add the location of your CSS file to the `additionalStylesheets` parameter in your {file}`settings.json` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
nano settings.json
|
||||
|
||||
# Add ["/front/custom/custom.css"] to the additionalStylesheets parameter
|
||||
|
@ -133,7 +133,7 @@ You can use a custom stylesheet to theme your Funkwhale pod. To do this:
|
|||
|
||||
Add the following to your {file}`/etc/nginx/sites-available/funkwhale.conf` file:
|
||||
|
||||
```{code} text
|
||||
```{code-block} text
|
||||
location /custom {
|
||||
alias /srv/funkwhale/custom;
|
||||
}
|
||||
|
@ -146,7 +146,7 @@ You can use a custom stylesheet to theme your Funkwhale pod. To do this:
|
|||
|
||||
Add the following to your webserver configuration file.
|
||||
|
||||
```{code} text
|
||||
```{code-block} text
|
||||
Alias /custom /srv/funkwhale/custom
|
||||
|
||||
<Directory "/srv/funkwhale/custom">
|
||||
|
|
|
@ -27,7 +27,7 @@ MRF policies are written as Python 3 functions that take at least one `payload`
|
|||
|
||||
In the example below we write a policy that discards all Follow requests from listed domains:
|
||||
|
||||
```{code} py
|
||||
```{code-block} py
|
||||
import urllib.parse
|
||||
from funkwhale_api.moderation import mrf
|
||||
|
||||
|
@ -54,7 +54,7 @@ def blocked_follow_domains_policy(payload, **kwargs):
|
|||
|
||||
You need to store this code in a Funkwhale plugin. To create one, execute the following:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
|
||||
# Plugin names can only contain ASCII letters, numbers and underscores.
|
||||
export PLUGIN_NAME="myplugin"
|
||||
|
@ -89,7 +89,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py mrf_check --list
|
||||
```
|
||||
|
||||
|
@ -98,7 +98,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py mrf_check --list
|
||||
```
|
||||
|
||||
|
@ -112,7 +112,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export MRF_MESSAGE='{"actor": "https://normal.domain/@alice", "type": "Create", "object": {"type": "Follow"}}'
|
||||
echo $MRF_MESSAGE | poetry run python manage.py mrf_check inbox - -p blocked_follow_domains
|
||||
```
|
||||
|
@ -122,7 +122,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export MRF_MESSAGE='{"actor": "https://normal.domain/@alice", "type": "Create", "object": {"type": "Follow"}}'
|
||||
echo $MRF_MESSAGE | docker-compose run --rm api python manage.py mrf_check inbox - -p blocked_follow_domains
|
||||
```
|
||||
|
@ -136,7 +136,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export MRF_MESSAGE='{"actor": "https://botdomain.org/@bob", "type": "Create", "object": {"type": "Follow"}}'
|
||||
echo $MRF_MESSAGE | poetry run python manage.py mrf_check inbox - -p blocked_follow_domains
|
||||
```
|
||||
|
@ -146,7 +146,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export MRF_MESSAGE='{"actor": "https://botdomain.org/@bob", "type": "Create", "object": {"type": "Follow"}}'
|
||||
echo $MRF_MESSAGE | docker-compose run --rm api python manage.py mrf_check inbox - -p blocked_follow_domains
|
||||
```
|
||||
|
@ -161,7 +161,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export ACTIVITY_UUID="06208aea-c687-4e8b-aefd-22f1c3f76039"
|
||||
echo $MRF_MESSAGE | poetry run python manage.py mrf_check inbox $ACTIVITY_UUID -p blocked_follow_domains
|
||||
```
|
||||
|
@ -171,7 +171,7 @@ To make the job of writing and debugging MRF policies easier, we provide a manag
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
|
||||
export ACTIVITY_UUID="06208aea-c687-4e8b-aefd-22f1c3f76039"
|
||||
|
||||
|
@ -189,7 +189,7 @@ There are extra options for testing MRF policies. Check the command help for mor
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py mrf_check --help
|
||||
```
|
||||
|
||||
|
@ -198,7 +198,7 @@ There are extra options for testing MRF policies. Check the command help for mor
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code}
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py mrf_check --help
|
||||
```
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ Before you begin, you need to secure your object store. Many S3-compatible store
|
|||
|
||||
To prevent listing content, add the following policy to your S3-compatible object store.
|
||||
|
||||
```{code} json
|
||||
```{code-block} json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
|
@ -38,7 +38,7 @@ To prevent listing content, add the following policy to your S3-compatible objec
|
|||
|
||||
If you're using `awscli`, you can store this policy in a `/tmp/policy` file and apply it using the following command:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
aws s3api put-bucket-policy --bucket <yourbucketname> --policy file:///tmp/policy
|
||||
```
|
||||
|
||||
|
@ -93,7 +93,7 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo nano /etc/nginx/sites-available/funkwhale.template
|
||||
```
|
||||
|
||||
|
@ -102,7 +102,7 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
nano /srv/funkwhale/nginx/funkwhale.template
|
||||
```
|
||||
|
||||
|
@ -111,7 +111,7 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
|
||||
2. Comment out the `location /_protected/media/` block by adding a `#` to the start of each line.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
# location /_protected/media/ {
|
||||
# internal;
|
||||
# alias ${MEDIA_ROOT};
|
||||
|
@ -120,7 +120,7 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
|
||||
3. Uncomment the `location ~ /_protected/media/(.+)` block by removing the `#` from the start of each line.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
location ~ /_protected/media/(.+) {
|
||||
internal;
|
||||
proxy_set_header Authorization "";
|
||||
|
@ -130,13 +130,13 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
|
||||
4. Add your S3 store URL to the `img-src` and `media-src` headers.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
add_header Content-Security-Policy "...img-src 'self' https://<your-s3-URL> data:;...media-src https://<your-s3-URL> 'self' data:";
|
||||
```
|
||||
|
||||
5. Test your Nginx configuration.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo nginx -t
|
||||
```
|
||||
|
||||
|
@ -147,7 +147,7 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl restart funkwhale.target
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
@ -157,7 +157,7 @@ Serving files from an object store requires some changes to the reverse proxy.
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose restart
|
||||
sudo systemctl restart nginx
|
||||
```
|
||||
|
@ -173,13 +173,13 @@ That's it! Files are now uploaded to and stored from your S3 bucket.
|
|||
|
||||
You may see the following error when streaming music from your S3-compatible store:
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
[error] 2832#2832: *1 no resolver defined to resolve [address] client: [IP], server: [servername], request: "GET API request", host: "[your_domain]", referrer: "[your_domain/library]"
|
||||
```
|
||||
|
||||
This happens when the Nginx config is unable to use your server’s DNS resolver. We're still looking into this issue. You can work around this by adding a resolver to the `location ~/_protected/media/(.+)` block.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
location ~ /_protected/media/(.+) {
|
||||
resolver 1.1.1.1;
|
||||
internal;
|
||||
|
|
|
@ -23,19 +23,19 @@ Celery uses a `prefork` pool by default. This enables the server to process many
|
|||
|
||||
1. Open your `funkwhale-worker` unit file in an editor.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo nano /etc/systemd/system/funkwhale-worker.service
|
||||
```
|
||||
|
||||
2. Add the `--pool=solo` flag to the `ExecStart` line of your unit file.
|
||||
|
||||
```{code} text
|
||||
```{code-block} text
|
||||
ExecStart=/srv/funkwhale/.local/bin/poetry run celery -A --pool=solo funkwhale_api.taskapp worker -l INFO --concurrency=${CELERYD_CONCURRENCY}
|
||||
```
|
||||
|
||||
3. Restart the Celery service.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl restart funkwhale-worker.service
|
||||
```
|
||||
|
||||
|
@ -46,7 +46,7 @@ Celery uses a `prefork` pool by default. This enables the server to process many
|
|||
|
||||
1. Add the `--pool=solo` flag to the `celerybeat` command in `docker-compose.yml`.
|
||||
|
||||
```{code} yaml
|
||||
```{code-block} yaml
|
||||
celerybeat:
|
||||
…
|
||||
command: celery -A --pool=solo funkwhale_api.taskapp beat --pidfile= -l INFO
|
||||
|
@ -54,7 +54,7 @@ Celery uses a `prefork` pool by default. This enables the server to process many
|
|||
|
||||
2. Restart Celery.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose restart celerybeat
|
||||
```
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ To see a full list of options, run the command with the `--help` flag.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py import_files --help
|
||||
```
|
||||
|
||||
|
@ -23,7 +23,7 @@ poetry run python manage.py import_files --help
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py import_files --help
|
||||
```
|
||||
|
||||
|
@ -52,7 +52,7 @@ If you don't have music on your server, you can download creative commons music
|
|||
|
||||
3. Run the shell script against the music list to download the tracks.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
./download-tracks.sh music.txt
|
||||
```
|
||||
|
||||
|
@ -78,19 +78,19 @@ Once you have your library ID, you can copy content from your server and import
|
|||
|
||||
1. Log in to your server and navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
2. Export your library ID to reference it later. In this example, the library ID is "769a2bc3". Replace this with your library ID.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export LIBRARY_ID="769a2bc3"
|
||||
```
|
||||
|
||||
3. Run the `import_files` command to copy your files. In this example, the music is stored in `data/music`. Replace this with your music directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py import_files $LIBRARY_ID "data/music" --recursive --noinput
|
||||
```
|
||||
|
||||
|
@ -111,7 +111,7 @@ We recommend you symbolically link your music directories to `/srv/funkwhale/dat
|
|||
|
||||
To link your storage directory to the Funkwhale store, use the `ln -s` command. For example, if you have an NFS share at `/media/nfsshare`, you can link it to a folder like this:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
ln -s ln -s /media/mynfsshare /srv/funkwhale/data/music/nfsshare
|
||||
```
|
||||
|
||||
|
@ -124,7 +124,7 @@ You can then run the `import_files` command against `/srv/funkwhale/data/music/n
|
|||
|
||||
On a Docker install you can use bind mounts to reference your storage directory. To do this, you need to add the directory to the `api` and `celeryworker` blocks in your `docker-compose.yml` file. For example, if you have an NFS share at `/media/nfsshare`, you can add the following to your `docker-compose.yml` file:
|
||||
|
||||
```{code} yaml
|
||||
```{code-block} yaml
|
||||
celeryworker:
|
||||
volumes:
|
||||
- ./data/music:/music:ro
|
||||
|
@ -160,20 +160,20 @@ To use the in-place import method, follow these steps:
|
|||
|
||||
1. Log in to your server and navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
2. Add your storage location to your `.env` file if you don't want to link it to the Funkwhale store. See the [in-place import configuration variables](../configuration_docs/env_file.md#in-place-import-configuration) for more information.
|
||||
3. Export your library ID to reference it later. In this example, the library ID is "769a2bc3". Replace this with your library ID.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export LIBRARY_ID="769a2bc3"
|
||||
```
|
||||
|
||||
4. Run your import command against your music storage directory. In this example, the storage directory is `/srv/funkwhale/data/music/nfsshare`. Replace this with your storage directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/nfsshare/" --recursive --noinput --in-place
|
||||
```
|
||||
|
||||
|
@ -187,7 +187,7 @@ Funkwhale imports the music in your storage directory into the specified library
|
|||
1. Add your storage location to your `.env` file if you don't want to bind it to the Funkwhale store. See the [in-place import configuration variables](../configuration_docs/env_file.md#in-place-import-configuration) for more information.
|
||||
2. Run your import command against your music storage directory:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/nfsshare/" --recursive --noinput --in-place
|
||||
```
|
||||
|
||||
|
@ -215,7 +215,7 @@ The `--watch` flag performs the following actions when it detects a change:
|
|||
- File metadata updated – updates the track metadata in the database.
|
||||
- File deleted – removes the file from the database.
|
||||
|
||||
:::dropdown} Watched metadata
|
||||
:::{dropdown} Watched metadata
|
||||
|
||||
The `import_files --watch` command watches for changes to the following metadata fields:
|
||||
|
||||
|
@ -240,7 +240,7 @@ The `import_files --watch` command watches for changes to the following metadata
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/nfsshare/" --recursive --noinput --in-place --watch
|
||||
```
|
||||
|
||||
|
@ -249,7 +249,7 @@ poetry run python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/nfsshare/" --recursive --noinput --in-place --watch
|
||||
```
|
||||
|
||||
|
@ -271,7 +271,7 @@ You can use the `--prune` flag with the `--watch` flag. This means Funkwhale rem
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/nfsshare/" --recursive --noinput --in-place --watch --prune
|
||||
```
|
||||
|
||||
|
@ -280,7 +280,7 @@ poetry run python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py import_files $LIBRARY_ID "/srv/funkwhale/data/music/nfsshare/" --recursive --noinput --in-place --watch --prune
|
||||
```
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ We support [Debian](https://debian.org) and Debian-based Linux distributions. Fo
|
|||
|
||||
- Install `curl`
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo apt update # update apt cache
|
||||
sudo apt install curl
|
||||
```
|
||||
|
@ -26,7 +26,7 @@ We support [Debian](https://debian.org) and Debian-based Linux distributions. Fo
|
|||
|
||||
To install Funkwhale on your server, you first need to install its dependencies. We provide all dependencies in a single file to enable you to install everything at once. You can pass the information from this file to `apt` using the following command:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo apt install $(curl https://dev.funkwhale.audio/funkwhale/funkwhale/-/raw/$FUNKWHALE_VERSION/deploy/requirements.apt)
|
||||
```
|
||||
|
||||
|
@ -40,19 +40,19 @@ It's good practice to create a user on your server for Funkwhale administration.
|
|||
|
||||
1. Create the `funkwhale` user and set its shell to `bash` and its home directory to `/srv/funkwhale`.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo useradd -r -s /usr/bin/bash -d /srv/funkwhale -m funkwhale
|
||||
```
|
||||
|
||||
2. Create a password for the user. You need to do this so that you can use this user to perform database administration.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo passwd funkwhale
|
||||
```
|
||||
|
||||
3. Finally, give the user `sudo` privileges. You need to do this so that the user can run administrative tasks.
|
||||
|
||||
```{code}
|
||||
```{code-block} sh
|
||||
usermod -aG sudo funkwhale
|
||||
```
|
||||
|
||||
|
@ -66,20 +66,20 @@ Once you've created your `funkwhale` user you can download the Funkwhale softwar
|
|||
|
||||
1. Log in to your `funkwhale` account and go to the `/srv/funkwhale` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
su funkwhale
|
||||
```
|
||||
|
||||
2. Create the directories for Funkwhale.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mkdir -p config api data/static data/media data/music front
|
||||
```
|
||||
|
||||
That's it! Your directory structure should look like this:
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
.
|
||||
├── config # config / environment files
|
||||
├── api # the Funkwhale API
|
||||
|
@ -96,7 +96,7 @@ Once you've created the directory structure you can download Funkwhale. Funkwhal
|
|||
|
||||
1. Download the API.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o "api-$FUNKWHALE_VERSION.zip" "https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_api"
|
||||
unzip "api-$FUNKWHALE_VERSION.zip" -d extracted
|
||||
mv extracted/api/* api/
|
||||
|
@ -105,7 +105,7 @@ Once you've created the directory structure you can download Funkwhale. Funkwhal
|
|||
|
||||
2. Download the frontend
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o "front-$FUNKWHALE_VERSION.zip" "https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_front"
|
||||
unzip "front-$FUNKWHALE_VERSION.zip" -d extracted
|
||||
mv extracted/front .
|
||||
|
@ -120,20 +120,20 @@ The Funkwhale API is written in Python. You need to install the API's dependenci
|
|||
|
||||
1. Install Poetry. Follow the steps in this wizard to set it up.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -sSL https://install.python-poetry.org | python3 -
|
||||
```
|
||||
|
||||
2. Add Poetry to your `$PATH`. This allows you to use `poetry` commands.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export "PATH=$HOME/.local/bin:$PATH" >> ~/.bashrc
|
||||
echo 'export "PATH=$HOME/.local/bin:$PATH"' >> ~/.bashrc
|
||||
```
|
||||
|
||||
3. Set up poetry in your `/srv/funkwhale/api` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale/api
|
||||
poetry install
|
||||
```
|
||||
|
@ -146,25 +146,25 @@ The environment file contains options you can use to control your Funkwhale pod.
|
|||
|
||||
1. Download the `.env` template to your `/srv/funkwhale/config` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o /srv/funkwhale/config/.env "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/env.prod.sample"
|
||||
```
|
||||
|
||||
2. Generate a secret key for Django. This keeps your Funkwhale data secure. Do not share this key with anybody.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
openssl rand -base64 45
|
||||
```
|
||||
|
||||
3. Reduce the permissions on your `.env` file to `600`. This means that only the `funkwhale` user can read and write this file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
chmod 600 /srv/funkwhale/config/.env
|
||||
```
|
||||
|
||||
4. Open the `.env` file in a text editor. For this example, we will use `nano`.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
nano /srv/funkwhale/config/.env
|
||||
```
|
||||
|
||||
|
@ -172,13 +172,13 @@ The environment file contains options you can use to control your Funkwhale pod.
|
|||
- Paste the secret key in the `DJANGO_SECRET_KEY` field.
|
||||
- Populate the `DATABASE_URL` field:
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
DATABASE_URL=postgresql://funkwhale@:5432/funkwhale
|
||||
```
|
||||
|
||||
- Populate the `CACHE_URL` field:
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
CACHE_URL=redis://127.0.0.1:6379/0
|
||||
```
|
||||
|
||||
|
@ -194,45 +194,45 @@ Funkwhale uses a [PostgreSQL](https://www.postgresql.org/) database to store inf
|
|||
|
||||
1. Install PostgreSQL and the `postgresql-contrib` package. This package contains extra features that Funkwhale uses.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo apt-get install postgresql postgresql-contrib
|
||||
```
|
||||
|
||||
2. Once you've installed PostgreSQL, launch a `psql` shell as the `postgres` user to set up your database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres psql
|
||||
```
|
||||
|
||||
3. Create your Funkwhale database.
|
||||
|
||||
```{code} psql
|
||||
```{code-block} psql
|
||||
CREATE DATABASE funkwhale WITH ENCODING 'utf8';
|
||||
```
|
||||
|
||||
4. Create a user for Funkwhale. This user needs all privileges so it can manage the database.
|
||||
|
||||
```{code} psql
|
||||
```{code-block} psql
|
||||
CREATE USER funkwhale;
|
||||
GRANT ALL PRIVILEGES ON DATABASE funkwhale TO funkwhale;
|
||||
```
|
||||
|
||||
5. Once you're finished, exit the shell
|
||||
|
||||
```{code} psql
|
||||
```{code-block} psql
|
||||
exit
|
||||
```
|
||||
|
||||
6. Run the following commands to create extra extensions for the `funkwhale` database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres psql funkwhale -c 'CREATE EXTENSION "unaccent";'
|
||||
sudo -u postgres psql funkwhale -c 'CREATE EXTENSION "citext";'
|
||||
```
|
||||
|
||||
7. Your database is ready to be populated! Use the `manage.py` script to create the database structure.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale/api
|
||||
poetry run python manage.py migrate
|
||||
```
|
||||
|
@ -240,7 +240,7 @@ Funkwhale uses a [PostgreSQL](https://www.postgresql.org/) database to store inf
|
|||
````{note}
|
||||
You may see the following warning when applying migrations:
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
"Your models have changes that are not yet reflected in a migration, and so won't be applied."
|
||||
```
|
||||
|
||||
|
@ -261,7 +261,7 @@ You can create several superusers.
|
|||
|
||||
To start using Funkwhale, you need to create a superuser for your pod. This user has all the permissions needed to administrate the pod. Follow these steps to create a superuser.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py createsuperuser
|
||||
```
|
||||
|
||||
|
@ -271,7 +271,7 @@ That's it! You can log in as this user when you finish setting up Funkwhale.
|
|||
|
||||
Funkwhale uses several static assets to serve its frontend. Use `manage.py` to collect these files so that the webserver can serve them.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py collectstatic
|
||||
```
|
||||
|
||||
|
@ -281,7 +281,7 @@ Funkwhale uses [systemd](https://www.freedesktop.org/wiki/Software/systemd/) to
|
|||
|
||||
1. Download the sample unit files from Funkwhale.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo curl -L -o "/etc/systemd/system/funkwhale.target" "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/funkwhale.target"
|
||||
sudo curl -L -o "/etc/systemd/system/funkwhale-server.service" "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/funkwhale-server.service"
|
||||
sudo curl -L -o "/etc/systemd/system/funkwhale-worker.service" "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/funkwhale-worker.service"
|
||||
|
@ -290,19 +290,19 @@ Funkwhale uses [systemd](https://www.freedesktop.org/wiki/Software/systemd/) to
|
|||
|
||||
2. Reload systemd to register the new services.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl daemon-reload
|
||||
```
|
||||
|
||||
3. Start all Funkwhale services.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl start funkwhale.target
|
||||
```
|
||||
|
||||
4. Enable the services. Systemd can then start the services after a reboot.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl enable --now funkwhale.target
|
||||
```
|
||||
|
||||
|
@ -314,21 +314,21 @@ Funkwhale uses a reverse proxy to serve content to users. We use [Nginx](https:/
|
|||
|
||||
1. Install Nginx.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install nginx
|
||||
```
|
||||
|
||||
2. Download the Nginx templates from Funkwhale.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo curl -L -o /etc/nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/funkwhale_proxy.conf"
|
||||
sudo curl -L -o /etc/nginx/sites-available/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/nginx.template"
|
||||
```
|
||||
|
||||
3. Create an Nginx template with details from your `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
# Log in to a root shell.
|
||||
|
||||
sudo su
|
||||
|
@ -351,7 +351,7 @@ Funkwhale uses a reverse proxy to serve content to users. We use [Nginx](https:/
|
|||
|
||||
That's it! You've created your Nginx file. Run the following command to check the `.env` details populated correctly.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
grep '${' /etc/nginx/sites-enabled/funkwhale.conf
|
||||
```
|
||||
|
||||
|
@ -361,31 +361,31 @@ To enable your users to connect to your pod securely, you need to set up {abbr}`
|
|||
|
||||
1. Log in as the superuser account to run these commands.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
su
|
||||
```
|
||||
|
||||
2. Create the `/etc/certs` folder to store the certificates.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mkdir /etc/certs
|
||||
```
|
||||
|
||||
3. Download and run `acme.sh`. Replace `my@example.com` with your email address.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl https://get.acme.sh | sh -s email=my@example.com
|
||||
```
|
||||
|
||||
4. Generate a certificate. Replace `example.com` with your Funkwhale pod name. Use `/srv/funkwhale/front` as your web root folder.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
acme.sh --issue -d example.com -w /srv/funkwhale/front
|
||||
```
|
||||
|
||||
5. Install the certificate to your Nginx config. Replace `example.com` with your Funkwhale pod name.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
acme.sh --install-cert -d example.com \
|
||||
--key-file /etc/certs/key.pem \
|
||||
--fullchain-file /etc/certs/cert.pem \
|
||||
|
|
|
@ -21,7 +21,7 @@ This guide assumes you are using a [Debian](https://debian.org)-based system.
|
|||
- Install [Docker](https://docs.docker.com/engine/install/) and [Docker Compose](https://docs.docker.com/compose/install/).
|
||||
- Install `curl`.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo apt update # update apt cache
|
||||
sudo apt install curl
|
||||
```
|
||||
|
@ -30,19 +30,19 @@ This guide assumes you are using a [Debian](https://debian.org)-based system.
|
|||
|
||||
1. Create the project directory structure.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mkdir /srv/funkwhale /srv/funkwhale/nginx
|
||||
```
|
||||
|
||||
2. Navigate to the project directory
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
3. Download the `docker-compose` template. This contains information about the containers and how they work together.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o /srv/funkwhale/docker-compose.yml "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/${FUNKWHALE_VERSION}/deploy/docker-compose.yml"
|
||||
```
|
||||
|
||||
|
@ -54,31 +54,31 @@ The environment file contains options you can use to control your Funkwhale pod.
|
|||
|
||||
1. Download the `.env` template to your `/srv/funkwhale` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o /srv/funkwhale/.env "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/${FUNKWHALE_VERSION}/deploy/env.prod.sample"
|
||||
```
|
||||
|
||||
2. Update `FUNKWHALE_VERSION` in the `.env` file to the `$FUNKWHALE_VERSION` variable you set earlier.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sed -i "s/FUNKWHALE_VERSION=latest/FUNKWHALE_VERSION=$FUNKWHALE_VERSION/" .env
|
||||
```
|
||||
|
||||
3. Reduce the permissions on your `.env` file to `600`. This means that only your user can read and write this file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
chmod 600 /srv/funkwhale/.env
|
||||
```
|
||||
|
||||
4. Generate a secret key for Django. This keeps your Funkwhale data secure. Do not share this key with anybody.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
openssl rand -base64 45
|
||||
```
|
||||
|
||||
5. Open the `.env` file in a text editor. For this example, we will use `nano`.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
nano /srv/funkwhale/.env
|
||||
```
|
||||
|
||||
|
@ -96,27 +96,27 @@ Once you've filled in your environment file, you can set up Funkwhale. Follow th
|
|||
|
||||
1. Pull the containers to download all the required services.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
docker-compose pull
|
||||
```
|
||||
|
||||
2. Bring up the database container so you can run the database migrations.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose up -d postgres
|
||||
```
|
||||
|
||||
3. Run the database migrations.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py migrate
|
||||
```
|
||||
|
||||
````{note}
|
||||
You may see the following warning when applying migrations:
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
"Your models have changes that are not yet reflected in a migration, and so won't be applied."
|
||||
```
|
||||
|
||||
|
@ -125,13 +125,13 @@ Once you've filled in your environment file, you can set up Funkwhale. Follow th
|
|||
|
||||
4. Create your superuser.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py createsuperuser
|
||||
```
|
||||
|
||||
5. Launch all the containers to bring up your pod.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
|
@ -143,21 +143,21 @@ Funkwhale uses a reverse proxy to serve content to users. We use [Nginx](https:/
|
|||
|
||||
1. Install Nginx.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo apt-get update
|
||||
sudo apt-get install nginx
|
||||
```
|
||||
|
||||
2. Download the Nginx templates from Funkwhale.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo curl -L -o /etc/nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/funkwhale_proxy.conf"
|
||||
sudo curl -L -o /etc/nginx/sites-available/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/$FUNKWHALE_VERSION/deploy/docker.proxy.template"
|
||||
```
|
||||
|
||||
3. Create an Nginx template with details from your `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
# Log in to a root shell.
|
||||
|
||||
sudo su
|
||||
|
@ -180,7 +180,7 @@ Funkwhale uses a reverse proxy to serve content to users. We use [Nginx](https:/
|
|||
|
||||
That's it! You've created your Nginx file. Run the following command to check the `.env` details populated correctly.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
grep '${' /etc/nginx/sites-enabled/funkwhale.conf
|
||||
```
|
||||
|
||||
|
@ -190,31 +190,31 @@ To enable your users to connect to your pod securely, you need to set up {abbr}`
|
|||
|
||||
1. Log in as the superuser account to run these commands.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
su
|
||||
```
|
||||
|
||||
2. Create the `/etc/certs` folder to store the certificates.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mkdir /etc/certs
|
||||
```
|
||||
|
||||
3. Download and run `acme.sh`. Replace `my@example.com` with your email address.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl https://get.acme.sh | sh -s email=my@example.com
|
||||
```
|
||||
|
||||
4. Generate a certificate. Replace `example.com` with your Funkwhale pod name. Use `/srv/funkwhale/front` as your web root folder.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
acme.sh --issue -d example.com -w /srv/funkwhale/front
|
||||
```
|
||||
|
||||
5. Install the certificate to your Nginx config. Replace `example.com` with your Funkwhale pod name.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
acme.sh --install-cert -d example.com \
|
||||
--key-file /etc/certs/key.pem \
|
||||
--fullchain-file /etc/certs/cert.pem \
|
||||
|
|
|
@ -45,7 +45,7 @@ On your {term}`destination server`, follow the [installation guide](debian.md).
|
|||
|
||||
Once you have finished the installation, stop the Funkwhale services. These shouldn't be running when you copy your existing data over.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl stop funkwhale.target
|
||||
```
|
||||
|
||||
|
@ -61,7 +61,7 @@ On your {term}`destination server`, follow the [installation guide](docker.md).
|
|||
|
||||
Once you have finished the installation, stop the Funkwhale services. These shouldn't be running when you copy your existing data over.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose stop
|
||||
```
|
||||
|
||||
|
@ -77,7 +77,7 @@ You need to create a database backup on your {term}`original server` so that you
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres -H pg_dump funkwhale > /srv/funkwhale/dump.sql
|
||||
```
|
||||
|
||||
|
@ -86,7 +86,7 @@ sudo -u postgres -H pg_dump funkwhale > /srv/funkwhale/dump.sql
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose exec postgres pg_dumpall -c -U postgres > dump.sql
|
||||
```
|
||||
|
||||
|
@ -107,14 +107,14 @@ To do this:
|
|||
1. Log in to your {term}`destination server`.
|
||||
2. Export your server hostname or IP address and your user name on the server. In this example, the IP address is `123.123.123.123` and the username is `funkwhale`.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export ORIGIN="123.123.123.123"
|
||||
export USERNAME="funkwhale"
|
||||
```
|
||||
|
||||
3. Use `rsync` to copy the information to your {term}`destination server`.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rsync -a $username@$origin:/srv/funkwhale/data/media/ /srv/funkwhale/data/media/ rsync -a #Copy the media folder
|
||||
$username@$origin:/srv/funkwhale/data/music/ /srv/funkwhale/data/music/ rsync -a # Copy the music folder
|
||||
$username@$origin:/srv/funkwhale/config/.env /srv/funkwhale/config/ rsync -a # Copy the .env file
|
||||
|
@ -132,13 +132,13 @@ When you've copied everything to the {term}`destination server`, you need to imp
|
|||
|
||||
Run the following on your {term}`destination server`:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo psql -d funkwhale dump.sql
|
||||
```
|
||||
|
||||
When the import finishes, run the `manage.py migrate` command to set up the database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale/api
|
||||
poetry run python manage.py migrate
|
||||
```
|
||||
|
@ -152,7 +152,7 @@ You need to initialize the postgres container on your {term}`destination server`
|
|||
|
||||
1. Export the permissions and create an `init.sql` database dump.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
echo "CREATE DATABASE "funkwhale" WITH ENCODING 'utf8'; \
|
||||
CREATE USER funkwhale; \
|
||||
GRANT ALL PRIVILEGES ON DATABASE funkwhale TO funkwhale;" > init.sql # Create an init.sql file with the correct permissions
|
||||
|
@ -162,13 +162,13 @@ You need to initialize the postgres container on your {term}`destination server`
|
|||
|
||||
2. Import your database backup.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm postgres psql -U postgres -d postgres < "dump.sql"
|
||||
```
|
||||
|
||||
3. When the import finishes, run the `manage.py migrate` command to set up the database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py migrate
|
||||
```
|
||||
|
||||
|
@ -188,7 +188,7 @@ Once you confirm DNS points to your {term}`destination server`, start the Funkwh
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl start funkwhale.target
|
||||
```
|
||||
|
||||
|
@ -197,7 +197,7 @@ sudo systemctl start funkwhale.target
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ The quick install script is the easiest way to install Funkwhale. Run this scrip
|
|||
|
||||
To download the quick install script, install `curl`:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo apt update # update the apt cache
|
||||
sudo apt install curl
|
||||
```
|
||||
|
@ -20,7 +20,7 @@ sudo apt install curl
|
|||
|
||||
Now that you have `curl` installed, download and run the quick install script:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo sh -c "$(curl -sSL https://get.funkwhale.audio/)"
|
||||
```
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ Use the following command to create a new library with a custom name and privacy
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py create_library username1 --name="Library 1" --privacy-level="everyone"
|
||||
```
|
||||
|
||||
|
@ -46,7 +46,7 @@ poetry run python manage.py create_library username1 --name="Library 1" --privac
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py create_library username1 --name="Library 1" --privacy-level="everyone"
|
||||
```
|
||||
|
||||
|
@ -56,7 +56,7 @@ docker-compose run --rm api python manage.py create_library username1 --name="Li
|
|||
|
||||
### Returns
|
||||
|
||||
```{code-block} text-output
|
||||
```{code-block} text
|
||||
Created library Library 1 for user username1 with UUID 436da05b-8cb1-4a4d-b870-4a3b235d8517
|
||||
```
|
||||
|
||||
|
@ -69,7 +69,7 @@ You can create a library using only a username. The script substitutes default v
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py create_library username1
|
||||
```
|
||||
|
||||
|
@ -78,7 +78,7 @@ poetry run python manage.py create_library username1
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py create_library username1
|
||||
```
|
||||
|
||||
|
@ -88,7 +88,7 @@ docker-compose run --rm api python manage.py create_library username1
|
|||
|
||||
### Returns
|
||||
|
||||
```{code-block} text-output
|
||||
```{code-block} text
|
||||
Created library default for user username1 with UUID 436da05b-8cb1-4a4d-b870-4a3b235d8517
|
||||
```
|
||||
|
||||
|
@ -101,7 +101,7 @@ If a library with the same name already exists for the given user, the script wi
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py create_library username1 --name="Library 1" --privacy-level="everyone"
|
||||
```
|
||||
|
||||
|
@ -110,7 +110,7 @@ poetry run python manage.py create_library username1 --name="Library 1" --privac
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py create_library username1 --name="Library 1" --privacy-level="everyone"
|
||||
```
|
||||
|
||||
|
@ -120,6 +120,6 @@ docker-compose run --rm api python manage.py create_library username1 --name="Li
|
|||
|
||||
### Returns
|
||||
|
||||
```{code-block} text-output
|
||||
```{code-block} text
|
||||
Found existing library Library 1 for user username1 with UUID 436da05b-8cb1-4a4d-b870-4a3b235d8517
|
||||
```
|
||||
|
|
|
@ -15,7 +15,7 @@ To ensure you don't remove data by accident, this command runs in dry run mode b
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py check_inplace_files
|
||||
```
|
||||
|
||||
|
@ -24,7 +24,7 @@ poetry run python manage.py check_inplace_files
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py check_inplace_files
|
||||
```
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ Check and fix file mimetypes with the `--mimetype` flag. This helps prevent issu
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fix_uploads --mimetype
|
||||
```
|
||||
|
||||
|
@ -22,7 +22,7 @@ poetry run python manage.py fix_uploads --mimetype
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fix_uploads --mimetype
|
||||
```
|
||||
|
||||
|
@ -38,7 +38,7 @@ Check and fix bitrate and duration with the `--audio-data` flag. This process ca
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fix_uploads --audio-data
|
||||
```
|
||||
|
||||
|
@ -47,7 +47,7 @@ poetry run python manage.py fix_uploads --audio-data
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fix_uploads --audio-data
|
||||
```
|
||||
|
||||
|
@ -63,7 +63,7 @@ Check and fix the file size with the `--size` flag.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fix_uploads --size
|
||||
```
|
||||
|
||||
|
@ -72,7 +72,7 @@ poetry run python manage.py fix_uploads --size
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fix_uploads --size
|
||||
```
|
||||
|
||||
|
@ -88,7 +88,7 @@ Check and fix file checksums with the `--checksum` flag.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fix_uploads --checksum
|
||||
```
|
||||
|
||||
|
@ -97,7 +97,7 @@ poetry run python manage.py fix_uploads --checksum
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fix_uploads --checksum
|
||||
```
|
||||
|
||||
|
@ -113,7 +113,7 @@ Choose the batch size you want to process with the `--batch-size` or -`s` flag.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fix_uploads --batch-size 500
|
||||
```
|
||||
|
||||
|
@ -122,7 +122,7 @@ poetry run python manage.py fix_uploads --batch-size 500
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fix_uploads --batch-size 500
|
||||
```
|
||||
|
||||
|
|
|
@ -42,7 +42,7 @@ docker-compose run --rm api python manage.py prune_library --tracks
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py prune_library --albums
|
||||
```
|
||||
|
||||
|
@ -51,7 +51,7 @@ poetry run python manage.py prune_library --albums
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py prune_library --albums
|
||||
```
|
||||
|
||||
|
@ -65,7 +65,7 @@ docker-compose run --rm api python manage.py prune_library --albums
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py prune_library --artists
|
||||
```
|
||||
|
||||
|
@ -74,7 +74,7 @@ poetry run python manage.py prune_library --artists
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py prune_library --artists
|
||||
```
|
||||
|
||||
|
@ -88,7 +88,7 @@ docker-compose run --rm api python manage.py prune_library --artists
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py prune_library --tracks --albums --artists
|
||||
```
|
||||
|
||||
|
@ -97,7 +97,7 @@ poetry run python manage.py prune_library --tracks --albums --artists
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py prune_library --tracks --albums --artists
|
||||
```
|
||||
|
||||
|
@ -111,7 +111,7 @@ There are extra options for pruning your database. Check the command help for mo
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py prune_library --help
|
||||
```
|
||||
|
||||
|
@ -120,7 +120,7 @@ poetry run python manage.py prune_library --help
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py prune_library --help
|
||||
```
|
||||
|
||||
|
|
|
@ -20,13 +20,13 @@ To add tags to untagged albums:
|
|||
1. SSH into your Funkwhale server.
|
||||
2. Navigate to the Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
3. Run the `manage.py` script to generate tags for untagged albums.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw albums add-tags-from-tracks
|
||||
```
|
||||
|
||||
|
@ -38,13 +38,13 @@ To add tags to untagged albums:
|
|||
1. SSH into your Funkwhale server.
|
||||
2. Navigate to the Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
3. Run the `manage.py` script to generate tags for untagged albums.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw albums add-tags-from-tracks
|
||||
```
|
||||
|
||||
|
@ -63,13 +63,13 @@ To add tags to untagged artists:
|
|||
1. SSH into your Funkwhale server.
|
||||
2. Navigate to the Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
3. Run the `manage.py` script to generate tags for untagged artists.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw artists add-tags-from-tracks
|
||||
```
|
||||
|
||||
|
@ -81,13 +81,13 @@ To add tags to untagged artists:
|
|||
1. SSH into your Funkwhale server.
|
||||
2. Navigate to the Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
3. Run the `manage.py` script to generate tags for untagged artists.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw artists add-tags-from-tracks
|
||||
```
|
||||
|
||||
|
|
|
@ -16,19 +16,19 @@ To generate new thumbnails:
|
|||
1. SSH into your Funkwhale server.
|
||||
2. Navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
3. Delete the `__sized__` directory inside your `MEDIA_ROOT` directory. By default this is `/srv/funkwhale/data/media`. This directory contains the current thumbnails.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rm -r __sized__/
|
||||
```
|
||||
|
||||
4. Run the `manage.py` script to regenerate the thumbnails.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw media generate-thumbnails
|
||||
```
|
||||
|
||||
|
@ -40,19 +40,19 @@ To generate new thumbnails:
|
|||
1. SSH into your Funkwhale server.
|
||||
2. Navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale/
|
||||
```
|
||||
|
||||
3. Delete the `__sized__` directory inside your `MEDIA_ROOT` directory. By default this is `/srv/funkwhale/data/media`. This directory contains the current thumbnails.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rm -r data/media/__sized__/
|
||||
```
|
||||
|
||||
4. Run the `manage.py` script to regenerate the thumbnails.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw media generate-thumbnails
|
||||
```
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ You can create users with the {file}`manage.py` script. There are different ways
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users create
|
||||
```
|
||||
|
||||
|
@ -24,7 +24,7 @@ poetry run python manage.py fw users create
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users create
|
||||
```
|
||||
|
||||
|
@ -38,7 +38,7 @@ docker-compose run --rm api python manage.py fw users create
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users create --username <username> --email <user email> -p ""
|
||||
```
|
||||
|
||||
|
@ -47,7 +47,7 @@ poetry run python manage.py fw users create --username <username> --email <user
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users create --username <username> --email <user email> -p ""
|
||||
```
|
||||
|
||||
|
@ -61,7 +61,7 @@ docker-compose run --rm api python manage.py fw users create --username <usernam
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export FUNKWHALE_CLI_USER_PASSWORD=<password>
|
||||
poetry run python manage.py fw users create --username <username> --email <user email>
|
||||
```
|
||||
|
@ -71,7 +71,7 @@ poetry run python manage.py fw users create --username <username> --email <user
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export FUNKWHALE_CLI_USER_PASSWORD=<password>
|
||||
docker-compose run --rm api python manage.py fw users create --username <username> --email <user email>
|
||||
```
|
||||
|
@ -86,7 +86,7 @@ There are extra options for user configuration, such as quota and {term}`permiss
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users --help
|
||||
```
|
||||
|
||||
|
@ -95,7 +95,7 @@ poetry run python manage.py fw users --help
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users --help
|
||||
```
|
||||
|
||||
|
@ -113,7 +113,7 @@ You can update user accounts using the {file}`manage.py` script. Update commands
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users set --upload-quota 500 <user>
|
||||
```
|
||||
|
||||
|
@ -122,7 +122,7 @@ poetry run python manage.py fw users set --upload-quota 500 <user>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users set --upload-quota 500 <user>
|
||||
```
|
||||
|
||||
|
@ -136,7 +136,7 @@ docker-compose run --rm api python manage.py fw users set --upload-quota 500 <us
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users set --staff --superuser <user 1> <user 2>
|
||||
```
|
||||
|
||||
|
@ -145,7 +145,7 @@ poetry run python manage.py fw users set --staff --superuser <user 1> <user 2>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users set --staff --superuser <user 1> <user 2>
|
||||
```
|
||||
|
||||
|
@ -159,7 +159,7 @@ docker-compose run --rm api python manage.py fw users set --staff --superuser <u
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users set --no-staff --no-superuser <user>
|
||||
```
|
||||
|
||||
|
@ -168,7 +168,7 @@ poetry run python manage.py fw users set --no-staff --no-superuser <user>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users set --no-staff --no-superuser <user>
|
||||
```
|
||||
|
||||
|
@ -182,7 +182,7 @@ docker-compose run --rm api python manage.py fw users set --no-staff --no-superu
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users set --permission-moderation <user>
|
||||
```
|
||||
|
||||
|
@ -191,7 +191,7 @@ poetry run python manage.py fw users set --permission-moderation <user>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users set --permission-moderation <user>
|
||||
```
|
||||
|
||||
|
@ -205,7 +205,7 @@ docker-compose run --rm api python manage.py fw users set --permission-moderatio
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users set --password "<password>" <user>
|
||||
```
|
||||
|
||||
|
@ -214,7 +214,7 @@ poetry run python manage.py fw users set --password "<password>" <user>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users set --password "<password>" <user>
|
||||
```
|
||||
|
||||
|
@ -228,7 +228,7 @@ docker-compose run --rm api python manage.py fw users set --password "<password>
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export FUNKWHALE_CLI_USER_UPDATE_PASSWORD=<password>
|
||||
poetry run python manage.py fw users set <user>
|
||||
```
|
||||
|
@ -238,7 +238,7 @@ poetry run python manage.py fw users set <user>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export FUNKWHALE_CLI_USER_UPDATE_PASSWORD=<password>
|
||||
docker-compose run --rm api python manage.py fw users set <user>
|
||||
```
|
||||
|
@ -253,7 +253,7 @@ There are extra options for updating users. Check the command help for more opti
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users set --help
|
||||
```
|
||||
|
||||
|
@ -262,7 +262,7 @@ poetry run python manage.py fw users set --help
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users set --help
|
||||
```
|
||||
|
||||
|
@ -280,7 +280,7 @@ This prevents the same username being used in future.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} py
|
||||
```{code-block} py
|
||||
poetry run python manage.py fw users rm <user>
|
||||
```
|
||||
|
||||
|
@ -289,7 +289,7 @@ poetry run python manage.py fw users rm <user>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} py
|
||||
```{code-block} py
|
||||
docker-compose run --rm api python manage.py fw users rm <user>
|
||||
```
|
||||
|
||||
|
@ -305,7 +305,7 @@ This means the username can be reused.
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} py
|
||||
```{code-block} py
|
||||
poetry run python manage.py fw users rm --hard <user>
|
||||
```
|
||||
|
||||
|
@ -314,7 +314,7 @@ poetry run python manage.py fw users rm --hard <user>
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} py
|
||||
```{code-block} py
|
||||
docker-compose run --rm api python manage.py fw users rm --hard <user>
|
||||
```
|
||||
|
||||
|
@ -328,7 +328,7 @@ There are extra options for deleting users. Check the command help for more opti
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py fw users rm --help
|
||||
```
|
||||
|
||||
|
@ -337,7 +337,7 @@ poetry run python manage.py fw users rm --help
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py fw users rm --help
|
||||
```
|
||||
|
||||
|
|
|
@ -13,20 +13,20 @@ Follow this guide to migrate a mono-container installation to a multi-container
|
|||
|
||||
1. Before you begin, log in as your `funkwhale` user
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u funkwhale -H bash
|
||||
```
|
||||
|
||||
2. Create a full backup of your `/srv/funkwhale` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/
|
||||
sudo cp funkwhale funkwhale.bak
|
||||
```
|
||||
|
||||
3. Go to the original `/srv/funkwhale` folder to run the migration.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
|
@ -34,7 +34,7 @@ Follow this guide to migrate a mono-container installation to a multi-container
|
|||
|
||||
1. Create a backup of your Funkwhale database. We will import this into the new postgres container later.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose exec funkwhale /usr/bin/pg_dumpall -U funkwhale > db_dump.sql
|
||||
```
|
||||
|
||||
|
@ -42,7 +42,7 @@ Follow this guide to migrate a mono-container installation to a multi-container
|
|||
|
||||
1. Stop all Funkwhale services. This ensures that no data is changed while you migrate your instance.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
|
@ -56,13 +56,13 @@ Follow this guide to migrate a mono-container installation to a multi-container
|
|||
|
||||
2. Take a backup of your current `docker-compose.yml` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mv docker-compose.yml docker-compose.yml.bak
|
||||
```
|
||||
|
||||
3. Download the required template files.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o docker-compose.yml "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/${FUNKWHALE_VERSION}/deploy/docker-compose.yml"
|
||||
curl -L -o nginx/funkwhale.template "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/${FUNKWHALE_VERSION}/deploy/docker.nginx.template"
|
||||
curl -L -o nginx/funkwhale_proxy.conf "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/${FUNKWHALE_VERSION}/deploy/docker.funkwhale_proxy.conf"
|
||||
|
@ -72,37 +72,37 @@ Follow this guide to migrate a mono-container installation to a multi-container
|
|||
|
||||
1. Take a backup of your current `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mv .env .env.bak
|
||||
```
|
||||
|
||||
2. Download the `.env` file template.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o .env "https://dev.funkwhale.audio/funkwhale/funkwhale/raw/${FUNKWHALE_VERSION}/deploy/env.prod.sample"
|
||||
```
|
||||
|
||||
3. Change the permissions on your `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
chmod 600 .env
|
||||
```
|
||||
|
||||
4. Replace the version number in your new `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sed -i "s/FUNKWHALE_VERSION=latest/FUNKWHALE_VERSION=$FUNKWHALE_VERSION/" .env
|
||||
```
|
||||
|
||||
5. Copy the settings from your old `.env` file to your new `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cat .env.bak >> .env
|
||||
```
|
||||
|
||||
6. Update the database URL in your new `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
echo "DATABASE_URL=postgresql://funkwhale@postgres:5432/funkwhale" >> .env
|
||||
```
|
||||
|
||||
|
@ -112,19 +112,19 @@ Check the file and remove any duplicated settings after copying.
|
|||
|
||||
1. Start up your new database container.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose up -d postgres
|
||||
```
|
||||
|
||||
2. Import your database dump into the new container.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cat db_dump.sql | docker-compose exec -T postgres psql -U postgres
|
||||
```
|
||||
|
||||
3. Run the database migrations.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py migrate
|
||||
```
|
||||
|
||||
|
@ -132,6 +132,6 @@ Check the file and remove any duplicated settings after copying.
|
|||
|
||||
Once you have imported your database and run migrations, you can start all containers.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
|
|
@ -13,7 +13,7 @@ If you have access to the Funkwhale backend, you can use logs to get more inform
|
|||
:::{tab-item} Nginx
|
||||
:sync: nginx
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo tail -f /var/log/nginx/access.log # Follow the access log
|
||||
sudo tail -f /var/log/nginx/error.log # Follow the error log
|
||||
```
|
||||
|
@ -23,7 +23,7 @@ If you have access to the Funkwhale backend, you can use logs to get more inform
|
|||
:::{tab-item} Apache2
|
||||
:sync: apache2
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo tail -f /var/log/apache/access.log # Follow the access log
|
||||
sudo tail -f /var/log/apache/error.log # Follow the error log
|
||||
```
|
||||
|
@ -37,7 +37,7 @@ If you have access to the Funkwhale backend, you can use logs to get more inform
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
journalctl -xn -u funkwhale-server
|
||||
```
|
||||
|
||||
|
@ -46,7 +46,7 @@ If you have access to the Funkwhale backend, you can use logs to get more inform
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose logs -f --tail=50 api # Follow the last 50 messages
|
||||
```
|
||||
|
||||
|
@ -60,7 +60,7 @@ If you have access to the Funkwhale backend, you can use logs to get more inform
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
journalctl -xn -u funkwhale-worker
|
||||
```
|
||||
|
||||
|
@ -69,7 +69,7 @@ If you have access to the Funkwhale backend, you can use logs to get more inform
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose logs -f --tail=50 celery # Follow the last 50 messages
|
||||
```
|
||||
|
||||
|
@ -123,13 +123,13 @@ If your Funkwhale server uses more memory than expected, you can check the footp
|
|||
|
||||
1. Add the middleware to your `.env` file.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
ADDITIONAL_MIDDLEWARES_BEFORE=funkwhale_api.common.middleware.PymallocMiddleware
|
||||
```
|
||||
|
||||
2. Enable memory tracing in your `.env` file.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
PYTHONTRACEMALLOC=1
|
||||
```
|
||||
|
||||
|
@ -140,7 +140,7 @@ If your Funkwhale server uses more memory than expected, you can check the footp
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl restart funkwhale.target
|
||||
```
|
||||
|
||||
|
@ -149,7 +149,7 @@ If your Funkwhale server uses more memory than expected, you can check the footp
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose restart
|
||||
```
|
||||
|
||||
|
@ -162,13 +162,13 @@ To disable memory tracing:
|
|||
|
||||
1. Remove the middleware from your `.env` file.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
# ADDITIONAL_MIDDLEWARES_BEFORE=funkwhale_api.common.middleware.PymallocMiddleware
|
||||
```
|
||||
|
||||
2. Disable memory tracing in your `.env` file.
|
||||
|
||||
```{code}
|
||||
```{code-block} text
|
||||
PYTHONTRACEMALLOC=0
|
||||
```
|
||||
|
||||
|
@ -179,7 +179,7 @@ To disable memory tracing:
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl restart funkwhale.target
|
||||
```
|
||||
|
||||
|
@ -188,7 +188,7 @@ To disable memory tracing:
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose restart
|
||||
```
|
||||
|
||||
|
|
|
@ -17,13 +17,13 @@ Before you uninstall anything from your server, you need to stop the Funkwhale s
|
|||
|
||||
1. Stop all systemd services listed under the `funkwhale` target
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl stop funkwhale.target
|
||||
```
|
||||
|
||||
2. Disable all systemd services to prevent launch at startup.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl disable funkwhale-server
|
||||
sudo systemctl disable funkwhale-worker
|
||||
sudo systemctl disable funkwhale-beat
|
||||
|
@ -31,7 +31,7 @@ Before you uninstall anything from your server, you need to stop the Funkwhale s
|
|||
|
||||
3. Remove the service files.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/systemd/system/funkwhale-server.service
|
||||
sudo rm /etc/systemd/system/funkwhale-worker.service
|
||||
sudo rm /etc/systemd/system/funkwhale-beat.service
|
||||
|
@ -40,7 +40,7 @@ Before you uninstall anything from your server, you need to stop the Funkwhale s
|
|||
|
||||
4. Reload all services to pick up the changes.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl reset-failed
|
||||
```
|
||||
|
@ -56,7 +56,7 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
1. Remove the configuration files from your web host.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/nginx/sites-enabled/funkwhale.conf
|
||||
sudo rm /etc/nginx/sites-available/funkwhale.conf
|
||||
sudo rm /etc/nginx/funkwhale_proxy.conf
|
||||
|
@ -64,7 +64,7 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
2. Reload the web server.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
|
@ -75,14 +75,14 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
1. Remove the configuration files from your web host.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/apache2/sites-enabled/funkwhale.conf
|
||||
sudo rm /etc/apache2/sites-available/funkwhale.conf
|
||||
```
|
||||
|
||||
2. Reload the web server.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo service apache2 restart
|
||||
```
|
||||
|
||||
|
@ -99,19 +99,19 @@ Once you have stopped the Funkwhale services, you can remove the Funkwhale datab
|
|||
|
||||
1. Navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
2. Delete the Funkwhale database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres psql -c 'DROP DATABASE funkwhale;'
|
||||
```
|
||||
|
||||
3. Delete the Funkwhale user.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres psql -c 'DROP USER funkwhale;'
|
||||
```
|
||||
|
||||
|
@ -123,7 +123,7 @@ This action deletes the `/srv/funkwhale/` directory. Make sure you have [backed
|
|||
|
||||
Once you have removed the database, you can delete the `funkwhale` user and all associated data.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo userdel -r funkwhale
|
||||
```
|
||||
|
||||
|
@ -138,7 +138,7 @@ Funkwhale uses the following dependencies on your server:
|
|||
:::{tab-item} Apt
|
||||
:sync: apt
|
||||
|
||||
```{code} txt
|
||||
```{code-block} text
|
||||
|
||||
build-essential
|
||||
curl
|
||||
|
|
|
@ -17,13 +17,13 @@ Before you remove any data, you need to stop the Funkwhale containers.
|
|||
|
||||
1. Navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
2. Stop the containers
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose down
|
||||
```
|
||||
|
||||
|
@ -38,7 +38,7 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
1. Remove the configuration files from your web host.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/nginx/sites-enabled/funkwhale.conf
|
||||
sudo rm /etc/nginx/sites-available/funkwhale.conf
|
||||
sudo rm /etc/nginx/funkwhale_proxy.conf
|
||||
|
@ -46,7 +46,7 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
2. Reload the web server.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
|
@ -57,14 +57,14 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
1. Remove the configuration files from your web host.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/apache2/sites-enabled/funkwhale.conf
|
||||
sudo rm /etc/apache2/sites-available/funkwhale.conf
|
||||
```
|
||||
|
||||
2. Reload the web server.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo service apache2 restart
|
||||
```
|
||||
|
||||
|
@ -79,7 +79,7 @@ This action is __irreversible__. Make sure you have [backed up your data](../upg
|
|||
|
||||
Once you have stopped the containers, you can delete all containers and associated volumes.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose rm -fsv
|
||||
```
|
||||
|
||||
|
@ -87,7 +87,7 @@ docker-compose rm -fsv
|
|||
|
||||
Once you have removed the containers and volumes, you can delete the Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm -rf /srv/funkwhale
|
||||
```
|
||||
|
||||
|
|
|
@ -17,13 +17,13 @@ Before you uninstall anything from your server, you need to stop the Funkwhale s
|
|||
|
||||
1. Stop all systemd services listed under the `funkwhale` target
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl stop funkwhale.target
|
||||
```
|
||||
|
||||
2. Disable all systemd services to prevent launch at startup.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl disable funkwhale-server
|
||||
sudo systemctl disable funkwhale-worker
|
||||
sudo systemctl disable funkwhale-beat
|
||||
|
@ -31,7 +31,7 @@ Before you uninstall anything from your server, you need to stop the Funkwhale s
|
|||
|
||||
3. Remove the service files.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/systemd/system/funkwhale-server.service
|
||||
sudo rm /etc/systemd/system/funkwhale-worker.service
|
||||
sudo rm /etc/systemd/system/funkwhale-beat.service
|
||||
|
@ -40,7 +40,7 @@ Before you uninstall anything from your server, you need to stop the Funkwhale s
|
|||
|
||||
4. Reload all services to pick up the changes.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl reset-failed
|
||||
```
|
||||
|
@ -56,7 +56,7 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
1. Remove the configuration files from your web host.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/nginx/sites-enabled/funkwhale.conf
|
||||
sudo rm /etc/nginx/sites-available/funkwhale.conf
|
||||
sudo rm /etc/nginx/funkwhale_proxy.conf
|
||||
|
@ -64,7 +64,7 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
2. Reload the web server.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl reload nginx
|
||||
```
|
||||
|
||||
|
@ -75,14 +75,14 @@ To stop serving Funkwhale from your web server, you need to remove your reverse
|
|||
|
||||
1. Remove the configuration files from your web host.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo rm /etc/apache2/sites-enabled/funkwhale.conf
|
||||
sudo rm /etc/apache2/sites-available/funkwhale.conf
|
||||
```
|
||||
|
||||
2. Reload the web server.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo service apache2 restart
|
||||
```
|
||||
|
||||
|
@ -99,19 +99,19 @@ Once you have stopped the Funkwhale services, you can remove the Funkwhale datab
|
|||
|
||||
1. Navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
2. Delete the Funkwhale database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres psql -c 'DROP DATABASE funkwhale;'
|
||||
```
|
||||
|
||||
3. Delete the Funkwhale user.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres psql -c 'DROP USER funkwhale;'
|
||||
```
|
||||
|
||||
|
@ -123,7 +123,7 @@ This action deletes the `/srv/funkwhale/` directory. Make sure you have [backed
|
|||
|
||||
Once you have removed the database, you can delete the `funkwhale` user and all associated data.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo userdel -r funkwhale
|
||||
```
|
||||
|
||||
|
@ -138,7 +138,7 @@ The quick install script installs the following dependencies on your server:
|
|||
:::{tab-item} Apt
|
||||
:sync: apt
|
||||
|
||||
```{code} txt
|
||||
```{code-block} text
|
||||
|
||||
build-essential
|
||||
curl
|
||||
|
|
|
@ -9,7 +9,7 @@ Before performing big changes, we recommend you back up your database and media
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres -H pg_dumpall -c funkwhale > /path/to/your/backup/dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
|
||||
```
|
||||
|
||||
|
@ -18,7 +18,7 @@ Before performing big changes, we recommend you back up your database and media
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose exec postgres pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
|
||||
```
|
||||
|
||||
|
@ -32,7 +32,7 @@ Before performing big changes, we recommend you back up your database and media
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rsync -avzhP /srv/funkwhale/data/media /path/to/your/backup/media
|
||||
rsync -avzhP /srv/funkwhale/data/music /path/to/your/backup/music
|
||||
```
|
||||
|
@ -42,7 +42,7 @@ Before performing big changes, we recommend you back up your database and media
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
|
||||
rsync -avzhP /srv/funkwhale/data/media /path/to/your/backup/media
|
||||
rsync -avzhP /srv/funkwhale/data/music /path/to/your/backup/music
|
||||
|
@ -58,7 +58,7 @@ Before performing big changes, we recommend you back up your database and media
|
|||
:::{tab-item} Debian
|
||||
:sync: debian
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rsync -avzhP /srv/funkwhale/config/.env /path/to/your/backup/.env
|
||||
```
|
||||
|
||||
|
@ -67,7 +67,7 @@ Before performing big changes, we recommend you back up your database and media
|
|||
:::{tab-item} Docker
|
||||
:sync: docker
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rsync -avzhP /srv/funkwhale/.env /path/to/your/backup/.env
|
||||
```
|
||||
|
||||
|
@ -84,14 +84,14 @@ To restart your files, do the following:
|
|||
|
||||
1. Rename your current file directories.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mv /srv/funkwhale/data/media /srv/funkwhale/data/media.bak
|
||||
mv /srv/funkwhale/data/music /srv/funkwhale/data/music.bak
|
||||
```
|
||||
|
||||
2. Restore your backed-up files to the original directories.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mv /patht/to/your/backup/media /srv/funkwhale/data/media
|
||||
mv /path/to/your/backup/music /srv/funkwhale/data/music
|
||||
```
|
||||
|
@ -107,13 +107,13 @@ To restore your database, do the following:
|
|||
|
||||
1. Restore your database backup:
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo -u postgres psql -f /path/to/your/backup/dump.sql funkwhale
|
||||
```
|
||||
|
||||
2. Run the `manage.py migrate` command to set up the database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale/api
|
||||
poetry run python manage.py migrate
|
||||
```
|
||||
|
@ -125,13 +125,13 @@ To restore your database, do the following:
|
|||
|
||||
1. Restore your database backup.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm -T postgres psql -U postgres postgres < "/path/to/your/backup/dump.sql"
|
||||
```
|
||||
|
||||
2. Run the `manage.py migrate` command to set up the database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py migrate
|
||||
```
|
||||
|
||||
|
|
|
@ -12,13 +12,13 @@ To upgrade your virtualenv:
|
|||
|
||||
1. Change to your api directory.
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale/api
|
||||
```
|
||||
|
||||
2. Rerun `poetry install` to reinstall your dependencies in a new virtualenv.
|
||||
|
||||
```{code-block} bash
|
||||
```{code-block} sh
|
||||
poetry install
|
||||
```
|
||||
|
||||
|
@ -29,19 +29,19 @@ To upgrade your virtualenv:
|
|||
1. SSH into your server.
|
||||
2. Log in as your `funkwhale` user.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
su funkwhale
|
||||
```
|
||||
|
||||
3. Navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
4. Stop the Funkwhale services.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl stop funkwhale.target
|
||||
```
|
||||
|
||||
|
@ -53,25 +53,25 @@ To upgrade your virtualenv:
|
|||
|
||||
6. Download the API files for your chosen Funkwhale version.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
curl -L -o "api-$FUNKWHALE_VERSION.zip" "https://dev.funkwhale.audio/funkwhale/funkwhale/-/jobs/artifacts/$FUNKWHALE_VERSION/download?job=build_api"
|
||||
```
|
||||
|
||||
7. Extract the downloaded archive to a new directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
unzip "api-$FUNKWHALE_VERSION.zip" -o api_new
|
||||
```
|
||||
|
||||
8. Remove the old `api` directory and move the extracted directory to the `api` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rm -rf api/ && mv api_new api
|
||||
```
|
||||
|
||||
9. Remove the downloaded archive file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
rm api-$FUNKWHALE_VERSION.zip
|
||||
```
|
||||
|
||||
|
@ -81,37 +81,37 @@ Once you have downloaded the new files, you can update your Funkwhale instance.
|
|||
|
||||
1. Install or upgrade all OS dependencies using the dependencies script.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo api/install_os_dependencies.sh install
|
||||
```
|
||||
|
||||
2. Enter the `api` directory to run the following commands.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd api
|
||||
```
|
||||
|
||||
3. Install all Python dependencies using `poetry`.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry install
|
||||
```
|
||||
|
||||
4. Collect the new static files to serve.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py collectstatic --no-input
|
||||
```
|
||||
|
||||
5. Apply new database migrations.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
poetry run python manage.py migrate
|
||||
```
|
||||
|
||||
6. Restart the Funkwhale services.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
sudo systemctl start funkwhale.target
|
||||
```
|
||||
|
||||
|
|
|
@ -7,13 +7,13 @@ If you installed Funkwhale following the [Docker guide](../installation_docs/doc
|
|||
1. SSH into your server
|
||||
2. Log in as your `funkwhale` user.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
su funkwhale
|
||||
```
|
||||
|
||||
3. Navigate to your Funkwhale directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
cd /srv/funkwhale
|
||||
```
|
||||
|
||||
|
@ -25,31 +25,31 @@ If you installed Funkwhale following the [Docker guide](../installation_docs/doc
|
|||
|
||||
5. Change the version number in your `.env` file. Update this to the same version number you exported in step 4.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
nano .env
|
||||
```
|
||||
|
||||
6. Load the configuration from your `.env` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
source .env
|
||||
```
|
||||
|
||||
7. Pull the updated containers.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose pull
|
||||
```
|
||||
|
||||
8. Apply the database migrations.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose run --rm api python manage.py migrate
|
||||
```
|
||||
|
||||
9. Relaunch your containers.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
|
@ -63,25 +63,25 @@ To upgrade postgres on Docker we use the [`postgres-upgrade`](https://hub.docker
|
|||
|
||||
1. Export your current postgres version number. You can find this in your `docker-compose.yml` file.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export OLD_POSTGRES=13
|
||||
```
|
||||
|
||||
2. Export the major version number you want to upgrade to.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
export NEW_POSTGRES=14
|
||||
```
|
||||
|
||||
3. Stop the postgres container. This means no data changes while you are upgrading.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose stop postgres
|
||||
```
|
||||
|
||||
4. Run the migration using the `postgres-upgrade` container. This creates a new version of the database in the `/srv/funkwhale/data/postgres-new` directory.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker run --rm \
|
||||
-v $(pwd)/data/postgres:/var/lib/postgresql/${OLD_POSTGRES}/data \
|
||||
-v $(pwd)/data/postgres-new:/var/lib/postgresql/${NEW_POSTGRES}/data \
|
||||
|
@ -90,26 +90,26 @@ To upgrade postgres on Docker we use the [`postgres-upgrade`](https://hub.docker
|
|||
|
||||
5. Re-add the access control rules required by Funkwhale.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
echo "host all all all trust" | sudo tee -a ./data/postgres-new/pg_hba.conf
|
||||
```
|
||||
|
||||
6. Swap your old database out with your new database.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
mv ./data/postgres ./data/postgres-old
|
||||
mv ./data/postgres-new ./data/postgres
|
||||
```
|
||||
|
||||
7. Pull the new postgres version.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose pull
|
||||
```
|
||||
|
||||
8. Restart your containers.
|
||||
|
||||
```{code} bash
|
||||
```{code-block} sh
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ Some common tasks the Celery worker handles are:
|
|||
|
||||
### Celery beat task scheduler
|
||||
|
||||
In addition to handling tasks from the API, the Celery worker also needs to handle some recurring tasks. To manage these, we implement a [Celery beat]() scheduler. The scheduler is responsible for triggering tasks on a schedule and adding messages to the [queue](#redis-cache-and-message-queue) so the worker can work through them.
|
||||
In addition to handling tasks from the API, the Celery worker also needs to handle some recurring tasks. To manage these, we implement a [Celery beat](https://docs.celeryq.dev/en/stable/reference/celery.apps.beat.html#celery.apps.beat.Beat) scheduler. The scheduler is responsible for triggering tasks on a schedule and adding messages to the [queue](#redis-cache-and-message-queue) so the worker can work through them.
|
||||
|
||||
Some common recurring tasks are:
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@ The `Accept` activity sends a positive response, such as confirming a [`Follow`
|
|||
|
||||
::::{dropdown} Supported on
|
||||
|
||||
- [`Activity` objects](#activity)
|
||||
- `Activity` objects
|
||||
|
||||
::::
|
||||
|
||||
|
|
Loading…
Reference in New Issue