Sign inSign up

contre95/soulsolid

By contre95

•Updated 1 day ago

An self-hosted tool to organize your music.

Image
Web servers
0

10K+

contre95/soulsolid repository overview

⁠Soulsolid

Join Discord

A work in progress, feature rich music organization app built for the music hoarder. Heavily under development, focused on ease of usage and start up. Feel free to check the docs⁠ or demo⁠

See the deepwiki⁠

⁠Features

  • Music Library Management: Organize and browse albums, artists, and tracks
  • Downloading: Download tracks and albums.
  • Importing: Import music from directories with automatic fingerprinting
  • Metadata Tagging: Auto-tag using MusicBrainz and Discogs APIs
  • Telegram Integration: Control via Telegram bot
  • Web UI: Mobile-friendly interface for all operations
  • Job Management: Background processing for downloads, imports, and synced lyrics and more.

Documentation: https://soulsolid.contre.io⁠ Demo: https://soulsolid-demo.contre.io⁠

⁠Quick Start

⁠🦭 Container 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.

⁠Environment Variable Support

Soulsolid supports environment variables in configuration files using the !env_var tag:

telegram:
  token: !env_var TELEGRAM_BOT_TOKEN
metadata:
  providers:
    discogs:
      secret: !env_var DISCOGS_API_KEY

The application will fail to start if a referenced environment variable is not set.

# Build the image
podman build -t soulsolid .

# Run with environment variables
podman run -d \
  --name soulsolid \
  -p 3535:3535 \
  -v /host/music:/app/library \ <-- Music will be imported (copied/moved) TO this folder 
  -v /host/downloads:/app/downloads \ <-- Music will be import FROM this folder
  -v /host/logs:/app/logs \ # optional
  -v /host/library.db:/data/library.db \
  -v /host/config.yaml:/config/config.yaml \
  soulsolid

The web interface will be available at http://localhost:3535.

⁠Development

To set up the development environment:

⁠Option 1: Manual Setup
cp config.example.yaml config.yaml
npm run dev
go run ./src/main.go

If you have Nix installed, use the provided dev.nix shell:

# Set up all dependencies (Node.js, Go, etc.) and run the necessary commands
nix-shell dev.nix
# Then, simply run:
go run ./src/main.go

The web interface will be available at http://localhost:3535.

Tag summary

Content type

Image

Digest

sha256:3987749f2…

Size

198.6 MB

Last updated

1 day ago

docker pull contre95/soulsolid:nightly