From c72d3ae09810473c7a54ad4245cfb4994cdc8731 Mon Sep 17 00:00:00 2001 From: David Young Date: Thu, 28 Jan 2021 13:15:53 +1300 Subject: [PATCH] Add Funkwhale (#168) Add "Funkwhale", the "Mastodon of Music Federation" --- manuscript/CHANGELOG.md | 1 + manuscript/images/funkwhale.jpg | Bin 0 -> 76319 bytes manuscript/recipes/funkwhale.md | 138 ++++++++++++++++++++++++++++++++ mkdocs.yml | 5 +- 4 files changed, 142 insertions(+), 2 deletions(-) create mode 100644 manuscript/images/funkwhale.jpg create mode 100644 manuscript/recipes/funkwhale.md diff --git a/manuscript/CHANGELOG.md b/manuscript/CHANGELOG.md index 7d0a69d..51b173d 100644 --- a/manuscript/CHANGELOG.md +++ b/manuscript/CHANGELOG.md @@ -8,6 +8,7 @@ hide: Recipe | Description | Date -----------------------------------|-------------------------------------------------------------------------------------|-------------- +[Funkwhale](/recipes/funkwhale/) | Enjoy, share, and federate your music in your own funky "pod". Think "Mastodon for Music" :whale: :musical_note: | _28 Jan 2021_ [CyberChef](/recipes/cyberchef/) | A web-based collection of useful tools for INFOSEC work, by the [GCHQ](https://en.wikipedia.org/wiki/GCHQ) | _19 Jan 2021_ [Linx](/recipes/linx/) | Quickly and securely share media/files with optional password-protection and expiry | _13 Jan 2021_ [Komga](/recipes/komga/) | Beautiful interface to manage and enjoy your comics / graphic novels | _5 Jan 2021_ diff --git a/manuscript/images/funkwhale.jpg b/manuscript/images/funkwhale.jpg new file mode 100644 index 0000000000000000000000000000000000000000..26927d9142338e54ec9721b7594cce9493fd9733 GIT binary patch literal 76319 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%0Akh2BRbE|I0bDmuJNAf7`}i$w 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 /var/data/config/funkwhale/funkwhale.env << EOF +# Replace 'funkwhale.example.com' with your actual domain +FUNKWHALE_HOSTNAME=funkwhale.example.com +# Protocol may also be: http +FUNKWHALE_PROTOCOL=https +# This limits the upload size +NGINX_MAX_BODY_SIZE=100M +# Bind to localhost +FUNKWHALE_API_IP=127.0.0.1 +# Container port you want to expose on the host +FUNKWHALE_API_PORT=80 +# Generate and store a secure secret key for your instance +DJANGO_SECRET_KEY=$(openssl rand -hex 45) +# Remove this if you expose the container directly on ports 80/443 +NESTED_PROXY=1 +# adapt to the pid/gid that own /var/data/funkwhale/ +PUID=1000 +PGID=1000 +EOF +# reduce permissions on the .env file since it contains sensitive data +chmod 600 /var/data/funkwhale/funkwhale.env +``` + +### Setup Docker Swarm + +Create a docker swarm config file in docker-compose syntax (v3) (*I store all my config files as `/var/data/config//.yml`*), something like this: + +--8<-- "premix-cta.md" + +```yaml +version: "3.2" # https://docs.docker.com/compose/compose-file/compose-versioning/#version-3 + +services: + funkwhale: + image: funkwhale/all-in-one:1.0.1 + env_file: /var/data/config/funkwhale/funkwhale.env + volumes: + - /var/data/funkwhale/:/data/ + - /path/to/your/music/dir:/music:ro + deploy: + labels: + # traefik common + - "traefik.enable=true" + - "traefik.docker.network=traefik_public" + + # traefikv1 + - "traefik.frontend.rule=Host:funkwhale.example.com" + - "traefik.port=80" + + # traefikv2 + - "traefik.http.routers.linx.rule=Host(`funkwhale.example.com`)" + - "traefik.http.routers.linx.entrypoints=https" + - "traefik.http.services.linx.loadbalancer.server.port=80" + networks: + - traefik_public + +networks: + traefik_public: + external: true +``` + +## Serving + +### Unleash the Whale! 🐳 + +Launch the Funkwhale stack by running `docker stack deploy funkwhale -c `, and then watch the container logs using `docker stack logs funkywhale_funkywhale`. + +You'll know the container is ready when you see an ascii version of the Funkwhale logo, followed by: + +``` +[2021-01-27 22:52:24 +0000] [411] [INFO] ASGI 'lifespan' protocol appears unsupported. +[2021-01-27 22:52:24 +0000] [411] [INFO] Application startup complete. +``` + +The first time we run Funkwhale, we need to setup the superuser account. + +!!! tip + If you're running a multi-node swarm, this next step needs to be executed on the node which is currently running Funkwhale. Identify this with `docker stack ps funkwhale` + +Run something like the following: + +```bash +docker exec -it funkwhale_funkwhale.1. \ + manage createsuperuser \ + --username admin \ + --email +``` + +You'll be prompted to enter the admin password - here's some sample output: + +```bash +root@swarm:~# docker exec -it funkwhale_funkwhale.1.gnx96tfr0lgmx5u3e8x4tkags \ + manage createsuperuser \ + --username admin \ + --email admin@funkypenguin.co.nz +2021-01-27 22:44:01,953 funkwhale_api.config INFO Running with the following plugins enabled: funkwhale_api.contrib.scrobbler +Password: +Password (again): +Superuser created successfully. +root@swarm:~# +``` + + +[^1]: Since the whole purpose of media sharing is to share **publically**, and Funkwhale includes robust user authentication, this recipe doesn't employ traefik-based authentication using [Traefik Forward Auth](/ha-docker-swarm/traefik-forward-auth/). +[^2]: These instructions are an opinionated simplication of the official instructions found at https://docs.funkwhale.audio/installation/docker.html +[^3]: It should be noted that if you import your existing media, the files will be **copied** into Funkwhale's data folder. There doesn't seem to be a way to point Funkwhale at an existing collection and have it just play it from the filesystem. To this end, be prepared for double disk space usage if you plan to import your entire music collection! +[^5]: No consideration is given at this point to backing up the Funkwhale data. Post a comment below if you'd like to see a backup container added! +[^4]: If the funky whale is "playing your song", note that the funkwhale project is [looking for maintainers](https://blog.funkwhale.audio/~/Announcements/funkwhale-is-looking-for-new-maintainers/). + +--8<-- "recipe-footer.md" \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index b584d20..bea2c89 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -45,7 +45,8 @@ nav: - Docker Swarm Mode: ha-docker-swarm/docker-swarm-mode.md - Traefik: ha-docker-swarm/traefik.md - Traefik Forward Auth: - - Start: ha-docker-swarm/traefik-forward-auth.md + - Start: ha-docker-swarm/traefik-forward-auth.md + - Google: ha-docker-swarm/traefik-forward-auth/google.md - KeyCloak: ha-docker-swarm/traefik-forward-auth/keycloak.md - Registry: ha-docker-swarm/registry.md - Mail Server: recipes/mail.md @@ -63,7 +64,6 @@ nav: - Headphones: recipes/autopirate/headphones.md - Lidarr: recipes/autopirate/lidarr.md - NZBHydra: recipes/autopirate/nzbhydra.md - - NZBHydra 2: recipes/autopirate/nzbhydra2.md - Ombi: recipes/autopirate/ombi.md - Jackett: recipes/autopirate/jackett.md - Heimdall: recipes/autopirate/heimdall.md @@ -97,6 +97,7 @@ nav: - CyberChef: recipes/cyberchef.md - Duplicati: recipes/duplicati.md - ElkarBackup: recipes/elkarbackup.md + - Funkwhale: recipes/funkwhale.md - Ghost: recipes/ghost.md - GitLab: recipes/gitlab.md - GitLab Runner: recipes/gitlab-runner.md