Funkwhale is a very nice audio hosting platform. We’ll install it using docker-compose in Portainer.
services:
funkwhale:
image: funkwhale/all-in-one:latest
container_name: funkwhale2 #I have 2 instances of funkwhale on this docker host
restart: unless-stopped
depends_on:
- postgres
- redis
environment:
- FUNKWHALE_HOSTNAME=audio.MYSITE.COM
- FUNKWHALE_PROTOCOL=https
- FUNKWHALE_PROTOCOL_HEADER=TRUE
- FUNKWHALE_PROXY_BODY_SIZE=200M
- FUNKWHALE_MAX_UPLOAD_SIZE=200M
- DATABASE_URL=postgresql://funkwhale:XXX_MY_DB_PWD_XXX@postgres:5432/funkwhale
- REDIS_URL=redis://redis:6379/0
- DJANGO_SECRET_KEY=XXXXX_MYSECRET_XXXXX
- FUNKWHALE_ENABLE_FEDERATION=false
- FUNKWHALE_DISABLE_REGISTRATION=true
# Email Configuration (for GMAIL)
- EMAIL_CONFIG=smtp+tls://MY_GMAIL_ADDRESS@gmail.com:XX_MY_APP_PASSWORD_XX@smtp.gmail.com:587
- DEFAULT_FROM_EMAIL=MY_GMAIL_ADDRESS@gmail.com
volumes:
- /mnt/funkwhale2-data/media:/data/media
- /mnt/funkwhale2-data/static:/data/static
- /mnt/funkwhale2-data/music:/music
networks:
- funkwhale2
ports:
- "5001:80" # Choose e free host port; default is 5000
postgres:
image: postgres:14
container_name: funkwhale2_postgres
restart: unless-stopped
environment:
- POSTGRES_USER=funkwhale
- POSTGRES_PASSWORD=XXX_MY_DB_PWD_XXX
- POSTGRES_DB=funkwhale
volumes:
- ./postgres2:/var/lib/postgresql/data # Different volume!
networks:
- funkwhale2
redis:
image: redis:7-alpine
container_name: funkwhale2_redis
restart: unless-stopped
networks:
- funkwhale2
networks:
funkwhale2: # I run 2 instances of Funkwhale on my docker.
external: false
Create your Django secret (or passwords) with this:
openssl rand -base64 48