diff --git a/docs/administrator_documentation/configuration_docs/change_url.md b/docs/administrator_documentation/configuration_docs/change_url.md index ca66ad819..76730d098 100644 --- a/docs/administrator_documentation/configuration_docs/change_url.md +++ b/docs/administrator_documentation/configuration_docs/change_url.md @@ -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 ``` diff --git a/docs/administrator_documentation/configuration_docs/env_file.md b/docs/administrator_documentation/configuration_docs/env_file.md index 781be0608..8caa938cb 100644 --- a/docs/administrator_documentation/configuration_docs/env_file.md +++ b/docs/administrator_documentation/configuration_docs/env_file.md @@ -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 ``` diff --git a/docs/administrator_documentation/configuration_docs/frontend.md b/docs/administrator_documentation/configuration_docs/frontend.md index 9e2811b0b..acefd88e7 100644 --- a/docs/administrator_documentation/configuration_docs/frontend.md +++ b/docs/administrator_documentation/configuration_docs/frontend.md @@ -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 < 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 < 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 diff --git a/docs/administrator_documentation/configuration_docs/mrf.md b/docs/administrator_documentation/configuration_docs/mrf.md index 182a023de..f9eba979a 100644 --- a/docs/administrator_documentation/configuration_docs/mrf.md +++ b/docs/administrator_documentation/configuration_docs/mrf.md @@ -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 ``` diff --git a/docs/administrator_documentation/configuration_docs/object_storage.md b/docs/administrator_documentation/configuration_docs/object_storage.md index c247b6b1e..d48160210 100644 --- a/docs/administrator_documentation/configuration_docs/object_storage.md +++ b/docs/administrator_documentation/configuration_docs/object_storage.md @@ -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 --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:// data:;...media-src https:// '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; diff --git a/docs/administrator_documentation/configuration_docs/optimize.md b/docs/administrator_documentation/configuration_docs/optimize.md index 497e71ecc..eb0d399fa 100644 --- a/docs/administrator_documentation/configuration_docs/optimize.md +++ b/docs/administrator_documentation/configuration_docs/optimize.md @@ -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 ``` diff --git a/docs/administrator_documentation/import_docs/index.md b/docs/administrator_documentation/import_docs/index.md index 149182db8..589d62cca 100644 --- a/docs/administrator_documentation/import_docs/index.md +++ b/docs/administrator_documentation/import_docs/index.md @@ -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 ``` diff --git a/docs/administrator_documentation/installation_docs/debian.md b/docs/administrator_documentation/installation_docs/debian.md index ba9873acc..f398cdf5f 100644 --- a/docs/administrator_documentation/installation_docs/debian.md +++ b/docs/administrator_documentation/installation_docs/debian.md @@ -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 \ diff --git a/docs/administrator_documentation/installation_docs/docker.md b/docs/administrator_documentation/installation_docs/docker.md index 89f6ba3f6..8cb01c332 100644 --- a/docs/administrator_documentation/installation_docs/docker.md +++ b/docs/administrator_documentation/installation_docs/docker.md @@ -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 \ diff --git a/docs/administrator_documentation/installation_docs/migrate.md b/docs/administrator_documentation/installation_docs/migrate.md index 5270ab21a..438fa17b6 100644 --- a/docs/administrator_documentation/installation_docs/migrate.md +++ b/docs/administrator_documentation/installation_docs/migrate.md @@ -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 ``` diff --git a/docs/administrator_documentation/installation_docs/quick_install.md b/docs/administrator_documentation/installation_docs/quick_install.md index ebf692a6a..68bc6bb84 100644 --- a/docs/administrator_documentation/installation_docs/quick_install.md +++ b/docs/administrator_documentation/installation_docs/quick_install.md @@ -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/)" ``` diff --git a/docs/administrator_documentation/manage_script/create_library.md b/docs/administrator_documentation/manage_script/create_library.md index 85c167a6c..0963b9431 100644 --- a/docs/administrator_documentation/manage_script/create_library.md +++ b/docs/administrator_documentation/manage_script/create_library.md @@ -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 ``` diff --git a/docs/administrator_documentation/manage_script/database.md b/docs/administrator_documentation/manage_script/database.md index bb776997e..04575c0c0 100644 --- a/docs/administrator_documentation/manage_script/database.md +++ b/docs/administrator_documentation/manage_script/database.md @@ -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 ``` diff --git a/docs/administrator_documentation/manage_script/fix_uploads.md b/docs/administrator_documentation/manage_script/fix_uploads.md index 7896dd37f..a3e532bd9 100644 --- a/docs/administrator_documentation/manage_script/fix_uploads.md +++ b/docs/administrator_documentation/manage_script/fix_uploads.md @@ -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 ``` diff --git a/docs/administrator_documentation/manage_script/library.md b/docs/administrator_documentation/manage_script/library.md index 7506baac2..6c1710167 100644 --- a/docs/administrator_documentation/manage_script/library.md +++ b/docs/administrator_documentation/manage_script/library.md @@ -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 ``` diff --git a/docs/administrator_documentation/manage_script/tags.md b/docs/administrator_documentation/manage_script/tags.md index a507c20ad..4e8cf0c42 100644 --- a/docs/administrator_documentation/manage_script/tags.md +++ b/docs/administrator_documentation/manage_script/tags.md @@ -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 ``` diff --git a/docs/administrator_documentation/manage_script/thumbnails.md b/docs/administrator_documentation/manage_script/thumbnails.md index 5fa79fa1a..03a7330f5 100644 --- a/docs/administrator_documentation/manage_script/thumbnails.md +++ b/docs/administrator_documentation/manage_script/thumbnails.md @@ -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 ``` diff --git a/docs/administrator_documentation/manage_script/users.md b/docs/administrator_documentation/manage_script/users.md index 7b85ec62c..16bdfdd3d 100644 --- a/docs/administrator_documentation/manage_script/users.md +++ b/docs/administrator_documentation/manage_script/users.md @@ -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 --email -p "" ``` @@ -47,7 +47,7 @@ poetry run python manage.py fw users create --username --email --email -p "" ``` @@ -61,7 +61,7 @@ docker-compose run --rm api python manage.py fw users create --username poetry run python manage.py fw users create --username --email ``` @@ -71,7 +71,7 @@ poetry run python manage.py fw users create --username --email docker-compose run --rm api python manage.py fw users create --username --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 ``` @@ -122,7 +122,7 @@ poetry run python manage.py fw users set --upload-quota 500 :::{tab-item} Docker :sync: docker -```{code} bash +```{code-block} sh docker-compose run --rm api python manage.py fw users set --upload-quota 500 ``` @@ -136,7 +136,7 @@ docker-compose run --rm api python manage.py fw users set --upload-quota 500 ``` @@ -145,7 +145,7 @@ poetry run python manage.py fw users set --staff --superuser :::{tab-item} Docker :sync: docker -```{code} bash +```{code-block} sh docker-compose run --rm api python manage.py fw users set --staff --superuser ``` @@ -159,7 +159,7 @@ docker-compose run --rm api python manage.py fw users set --staff --superuser ``` @@ -168,7 +168,7 @@ poetry run python manage.py fw users set --no-staff --no-superuser :::{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 ``` @@ -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 ``` @@ -191,7 +191,7 @@ poetry run python manage.py fw users set --permission-moderation :::{tab-item} Docker :sync: docker -```{code} bash +```{code-block} sh docker-compose run --rm api python manage.py fw users set --permission-moderation ``` @@ -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 "" ``` @@ -214,7 +214,7 @@ poetry run python manage.py fw users set --password "" :::{tab-item} Docker :sync: docker -```{code} bash +```{code-block} sh docker-compose run --rm api python manage.py fw users set --password "" ``` @@ -228,7 +228,7 @@ docker-compose run --rm api python manage.py fw users set --password " :::{tab-item} Debian :sync: debian -```{code} bash +```{code-block} sh export FUNKWHALE_CLI_USER_UPDATE_PASSWORD= poetry run python manage.py fw users set ``` @@ -238,7 +238,7 @@ poetry run python manage.py fw users set :::{tab-item} Docker :sync: docker -```{code} bash +```{code-block} sh export FUNKWHALE_CLI_USER_UPDATE_PASSWORD= docker-compose run --rm api python manage.py fw users set ``` @@ -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 ``` @@ -289,7 +289,7 @@ poetry run python manage.py fw users rm :::{tab-item} Docker :sync: docker -```{code} py +```{code-block} py docker-compose run --rm api python manage.py fw users rm ``` @@ -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 ``` @@ -314,7 +314,7 @@ poetry run python manage.py fw users rm --hard :::{tab-item} Docker :sync: docker -```{code} py +```{code-block} py docker-compose run --rm api python manage.py fw users rm --hard ``` @@ -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 ``` diff --git a/docs/administrator_documentation/migration_guide/index.md b/docs/administrator_documentation/migration_guide/index.md index 4ff8babd1..2f2d68aac 100644 --- a/docs/administrator_documentation/migration_guide/index.md +++ b/docs/administrator_documentation/migration_guide/index.md @@ -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 ``` diff --git a/docs/administrator_documentation/troubleshooting/backend.md b/docs/administrator_documentation/troubleshooting/backend.md index 302c9ea15..0b4054756 100644 --- a/docs/administrator_documentation/troubleshooting/backend.md +++ b/docs/administrator_documentation/troubleshooting/backend.md @@ -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 ``` diff --git a/docs/administrator_documentation/uninstall_docs/debian.md b/docs/administrator_documentation/uninstall_docs/debian.md index dd7f14112..0daeaf89c 100644 --- a/docs/administrator_documentation/uninstall_docs/debian.md +++ b/docs/administrator_documentation/uninstall_docs/debian.md @@ -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 diff --git a/docs/administrator_documentation/uninstall_docs/docker.md b/docs/administrator_documentation/uninstall_docs/docker.md index 69e717b6c..ab9a5a355 100644 --- a/docs/administrator_documentation/uninstall_docs/docker.md +++ b/docs/administrator_documentation/uninstall_docs/docker.md @@ -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 ``` diff --git a/docs/administrator_documentation/uninstall_docs/quick_install.md b/docs/administrator_documentation/uninstall_docs/quick_install.md index 2c2563a8b..cc133802e 100644 --- a/docs/administrator_documentation/uninstall_docs/quick_install.md +++ b/docs/administrator_documentation/uninstall_docs/quick_install.md @@ -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 diff --git a/docs/administrator_documentation/upgrade_docs/backup.md b/docs/administrator_documentation/upgrade_docs/backup.md index 6d9500732..f2bdc9453 100644 --- a/docs/administrator_documentation/upgrade_docs/backup.md +++ b/docs/administrator_documentation/upgrade_docs/backup.md @@ -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 ``` diff --git a/docs/administrator_documentation/upgrade_docs/debian.md b/docs/administrator_documentation/upgrade_docs/debian.md index 79cb0cc77..a7444a703 100644 --- a/docs/administrator_documentation/upgrade_docs/debian.md +++ b/docs/administrator_documentation/upgrade_docs/debian.md @@ -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 ``` diff --git a/docs/administrator_documentation/upgrade_docs/docker.md b/docs/administrator_documentation/upgrade_docs/docker.md index 208ba4ba6..2d4c0e339 100644 --- a/docs/administrator_documentation/upgrade_docs/docker.md +++ b/docs/administrator_documentation/upgrade_docs/docker.md @@ -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 ``` diff --git a/docs/developer_documentation/architecture.md b/docs/developer_documentation/architecture.md index 76bd846fc..59bcea559 100644 --- a/docs/developer_documentation/architecture.md +++ b/docs/developer_documentation/architecture.md @@ -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: diff --git a/docs/developer_documentation/federation/index.md b/docs/developer_documentation/federation/index.md index 3f1ca4973..1a18bc149 100644 --- a/docs/developer_documentation/federation/index.md +++ b/docs/developer_documentation/federation/index.md @@ -120,7 +120,7 @@ The `Accept` activity sends a positive response, such as confirming a [`Follow` ::::{dropdown} Supported on -- [`Activity` objects](#activity) +- `Activity` objects ::::