Self hosted
On this page
Docker Usage
The application can run without copying config.yaml into the container. If no config file exists, it will automatically create one with sensible defaults. Use environment variables to override specific settings:
# Build the image
podman build -t musicarr .
# Run with environment variables (config.yaml will be auto-created if missing)
podman run -d \
--name musicarr \
-p 3535:3535 \
-v /host/music:/app/library \
-v /host/downloads:/app/downloads \
-v /host/logs:/app/logs \
-v /host/library.db:/app/library.db \
-v /host/config.yaml:/app/config.yaml \
-e TELEGRAM_TOKEN="your_token" \
-e DEEZER_ARL="your_arl" \
musicarrThe web interface will be available at http://localhost:3535.
Alternatively, you can use the provided Containerfile to build a container image for Musicarr.
Here’s an example compose.yaml file:
version: "3.8"
services:
musicarr:
image: musicarr:latest
ports:
- "3535:3535"
volumes:
- ./config.yaml:/app/config.yaml
- ./library.db:/app/library.db
- ./logs:/app/logs
environment:
- TELEGRAM_TOKEN=your_telegram_bot_token_here
restart: unless-stoppedAlternatively, you can use Podman commands or Podman-kube pod YAMLs for deployment.
apiVersion: v1
kind: Pod
metadata:
name: musicarr
annotations:
io.podman.annotations.infra.name: "musicarr-infra"
labels:
app: Musicarr
purpose: Music Server
category: Musicarr
language: Go
content: movies,series,music
homepage.group: Musicarr
homepage.name: Musicarr
homepage.icon: musicarr.png
homepage.instance.internal.href: https://musicarr.server.home
homepage.instance.public.href: https://musicarr.contre.io
homepage.description: Musicarr server
spec:
restartPolicy: OnFailure
containers:
- name: musicarr
image: contre95/musicarr:beta
ports:
- containerPort: 3535
hostPort: 3055
securityContext:
allowPrivilegeEscalation: false
capabilities: {}
privileged: false
readOnlyRootFilesystem: false
volumeMounts:
- mountPath: /app/config.yaml
name: config
- mountPath: /music
name: music
- mountPath: /downloads
name: downloads
- mountPath: /dev
name: disk-by-uuid
readOnly: true
volumes:
- name: music
hostPath:
path: /path/to/musicarr_music
type: DirectoryOrCreate
- name: downloads
hostPath:
path: /path/to/musicarr_downloads
type: DirectoryOrCreate
- name: config
hostPath:
path: ./config/config.yaml
type: File
- name: disk-by-uuid
hostPath:
path: /dev
Type: DirectoryDevelopment
If you are lucky enough to have nix. You can simple run the following command the all dev dependencies will be setup for you.
nix-shell dev.nixBuilding CSS
Logs
Application logs are written to stdout/stderr. For more detailed logging, check the job logs in ./logs/jobs/ by default.
Musicarr