주요 콘텐츠로 건너뛰기

WaveFlow Server

안정 버전v2.2.1

어디서 들어도, 내 음악.

내 파일. 내 서버. 어떤 플레이어든.

음악이 있는 폴더를 WaveFlow Server에 알려 주세요. 라이브러리가 만들어지고, 브라우저, 휴대폰, WaveFlow 플레이어에서 집에서도 밖에서도 재생할 수 있습니다. 연결이 약하면 음질도 알아서 낮춰 줍니다.

Docker · Windows · macOS · Linux · Raspberry Pi 4 및 5

WaveFlow Server 웹 플레이어. 왼쪽에 탐색 메뉴가 있고, 위쪽에는 들은 음악으로 만든 믹스, 그 아래에는 앨범 목록이 보입니다
웹 플레이어입니다. 표시된 커버는 개발자 본인의 라이브러리에 있는 것으로, 예시로만 사용했습니다.

할 수 있는 일

  1. 브라우저에서 바로 듣는 플레이어

    설치할 앱이 없습니다. 서버 주소를 열면 컴퓨터에서도 휴대폰에서도 들을 수 있습니다. HTTPS에서는 오프라인에서 들을 곡을 저장해 둘 수도 있습니다.

  2. 쓰던 앱 그대로 사용하세요

    Subsonic을 지원하는 음악 앱은 그대로 연결됩니다. WaveFlow 플레이어는 여러 컴퓨터에서 라이브러리와 재생 기록을 맞춰 줍니다.

  3. 파일의 진짜 모습을 알아봅니다

    모든 무손실 파일을 측정하므로, 손실 압축 원본의 흔적이 있는 FLAC은 손실 압축일 가능성이 높은 파일로 표시됩니다.

  4. 다시 스캔해도 링크는 그대로

    라이브러리를 다시 스캔해도 앨범과 아티스트의 식별 정보는 그대로입니다. 그래서 앱이 가지고 있는 링크도 계속 동작합니다.

  5. 1분이면 시작됩니다

    프로그램 하나와 데이터베이스 파일 하나. 내 컴퓨터에서 실행하거나, Docker로 집의 서버에서 계속 켜 둘 수 있습니다.

  6. 오직 나만의 것

    음악 파일은 변경되지 않습니다. 외부 연결 기능을 직접 켜지 않으면 서버 밖으로 아무것도 전송되지 않으며, 가족 구성원마다 별도의 계정을 만들 수 있습니다.

현재 상황

2.0부터 안정 버전입니다. 최신 버전은 2.2.1이고, 새 버전은 계속 나옵니다. 확인을 허용하면 새 버전이 나왔을 때 서버가 알려 줍니다.

  • Docker 안정 버전

    amd64와 arm64용 이미지 하나. 서버, NAS, Raspberry Pi 4 또는 5에서 실행됩니다.

  • Windows · macOS · Linux 안정 버전

    내 컴퓨터에서 압축을 풀어 바로 실행하는 아카이브. FFmpeg 포함, 설치 불필요.

웹 플레이어

브라우저에서 바로 듣는 플레이어

설치할 앱이 없습니다. 컴퓨터나 휴대폰에서 서버 주소를 열기만 하면 됩니다. 앨범, 아티스트, 폴더, 장르, 입력 즉시 결과가 표시되는 검색, 재생 대기열, 전체 화면으로 볼 수 있는 동기화 가사, 실제로 재생한 곡으로 만든 믹스를 쓸 수 있습니다.

오프라인
고른 곡을 저장해 두면 연결 없이도 들을 수 있습니다. 저장은 그 브라우저 안에서, 내 계정에만 적용됩니다. 브라우저 규칙상 HTTPS로 접속했거나 서버가 실행 중인 컴퓨터에서 열었을 때만 가능합니다.
설치 가능
앱처럼 휴대폰에 추가할 수 있습니다. 잠금 화면 컨트롤, 미디어 키, 키보드 단축키도 지원합니다.
테마 14종
라이트와 다크. 방의 분위기와 시간대에 맞게 고를 수 있습니다.
9개 언어
영어, 프랑스어, 독일어, 스페인어, 이탈리아어, 일본어, 한국어, 중국어 간체와 번체.
웹 플레이어의 재생 화면. 큰 앨범 커버와 곡 제목, 아티스트 이름, 그 아래에 스트림의 음질이 표시되어 있습니다
재생 중인 화면. 실제로 전송되는 음질도 함께 보여 줍니다

쓰던 앱 그대로 사용하세요

WaveFlow Server는 많은 음악 앱이 이미 알고 있는 열린 프로토콜인 Subsonic과 OpenSubsonic을 지원합니다. 앱에 서버 주소, 사용자 이름, 앱 비밀번호를 입력하면 끝입니다. 플러그인도, 따로 설치할 것도 없습니다.

프로토콜
Subsonic · OpenSubsonic
주소
/rest/*대부분의 앱은 알아서 붙여 줍니다. 서버 주소만 입력하세요.
비밀번호
앱에는 전용 비밀번호가 따로 주어집니다. 브라우저에서 쓰는 비밀번호와는 별개입니다.
WaveFlow Server에서 실행해 본 앱과, 각각 확인된 동작
앱확인된 동작
SymfoniumAndroid라이브러리 탐색, Opus·MP3·FLAC 재생 위치 이동, 즐겨찾기, 별점, 북마크, 가사
FeishinWindows탐색, 폴더, 동기화 가사, 라디오, 재생목록
DSubAndroid폴더, 팟캐스트, 재생 대기열, 재생목록, 공유
JulietiPhone탐색, 트랜스코딩, 재생 대기열, 재생목록

각 앱을 수동으로 테스트했으며, 결과는 앱 화면이 아닌 서버에서 다시 조회해 확인했습니다. 마지막 전체 점검은 2.0.0 이전인 2026년 10월 28일에 끝났습니다. 그 뒤에 추가된 기능 중에는 이 앱들로 아직 확인하지 못한 것도 있습니다.

호환성 표 보기

WaveFlow DesktopWindows · macOS · Linux

네이티브 API를 통해 여러 컴퓨터에서 라이브러리와 재생 기록을 맞춰 줍니다

파일의 진짜 모습을 알아봅니다

오랜 세월 모은 라이브러리에는 뜻밖의 파일이 섞이기 마련입니다. WaveFlow Server는 파일 자체를 들여다보고, 각 앱이 감당할 수 있는 소리로 보내 줍니다.

품질 페이지. 무손실 파일을 오디오에서 측정해 판정별 개수와 트랙마다 고음이 어디서 끊기는지 보여 줍니다
모든 무손실 파일을 표기만 믿지 않고 직접 측정합니다
  • 가짜 무손실을 찾아냅니다

    모든 무손실 파일의 오디오를 측정합니다. 손실 압축 원본의 흔적이 있는 FLAC은 손실 압축일 가능성이 높은 파일로 표시됩니다. 0으로 채워 비트 심도만 늘린 파일이나 더 높은 샘플 레이트로 업샘플링한 파일도 마찬가지입니다.

  • 원본 그대로, 또는 가볍게

    원본 파일을 그대로 재생할 수도 있고, 연결이 좋지 않을 때는 서버가 그 자리에서 MP3, Opus, AAC로 변환할 수도 있습니다. 바이트 범위 요청으로 재생 위치를 이동하는 앱에서는 변환이 진행 중인 파일의 재생 위치를 바꾸지 못할 수 있습니다. 이 경우 해당 앱에서 원본 파일을 재생하세요.

  • 고른 음량

    ReplayGain 정보를 모든 트랙과 함께 앱에 보냅니다. 이를 지원하지 않는 앱에는 서버가 변환된 스트림의 음량을 직접 맞춰 줄 수도 있습니다.

오직 나만의 것

집에 있는 서버는 나에게만 응답해야 합니다. WaveFlow Server는 처음 시작할 때부터 그렇게 만들어져 있습니다.

서버가 접속할 수 있는 모든 곳
  • 파일은 그대로입니다

    스캔이나 태그 편집이 오디오 파일을 건드리는 일은 없습니다. 사라진 파일의 즐겨찾기, 별점, 재생 기록은 파일이 돌아올 때까지 남아 있습니다.

  • 외부 연결 기능은 직접 켠 경우에만 작동합니다

    기본 설정 그대로라면 서버는 스스로 아무것도 보내지 않습니다. 가사, 아티스트 사진, 스크로블, 업데이트 확인은 모두 내가 허락해야 시작됩니다.

  • 가족 각자의 계정

    각 계정은 자신이 속한 라이브러리만 볼 수 있습니다. 비밀번호는 Argon2id로 해시되고, 로그인은 무차별 대입을 막기 위해 횟수가 제한되며, 일회용 토큰이 있어 낯선 사람이 새 서버를 가로챌 수 없습니다.

  • 명령어 하나로 백업

    명령어 하나로 데이터베이스와 그 키를 함께 복사합니다. 데이터베이스를 바꾸는 업그레이드 전에는 끄지 않는 한 서버가 둘 다 스스로 복사본을 만들어 둡니다. 아티스트 사진, 캔버스, 내려받은 팟캐스트는 데이터 폴더 안의 다른 위치에 있으니, 이것들까지 지키려면 폴더 전체를 백업하세요.

1분이면 시작됩니다

컨테이너 하나, 데이터베이스 파일 하나, 키 파일 하나. 데이터베이스 서버도 캐시도 필요 없고, 따로 실행할 것이 없습니다. FFmpeg도 이미 들어 있습니다.

  1. compose.yaml로 저장하세요

    /path/to/music을 음악이 들어 있는 폴더로 바꾸세요. 서버는 그 폴더를 읽기만 합니다.

    compose.yaml
    services:
      waveflow:
        image: ghcr.io/instazdll/waveflow-server:2.2.1
        restart: unless-stopped
        ports:
          - "4533:4533"
        environment:
          WAVEFLOW_DATA_DIR: /data
          WAVEFLOW_BIND: 0.0.0.0:4533
        volumes:
          - waveflow-data:/data
          - /path/to/music:/music:ro
    
    volumes:
      waveflow-data:
    
  2. 시작하세요

    Docker가 이미지를 받아 서버를 백그라운드에서 시작합니다.

    Terminal
    docker compose up -d
  3. 계정을 만드세요

    http://your-host:4533를 여세요. 초기 설정 화면에서 관리자 계정을 만들고, 서버에 기록된 일회용 토큰을 입력하라는 안내가 표시됩니다.

    Terminal
    docker compose exec waveflow cat /data/setup-token
  4. 음악을 추가하세요

    방금 만든 계정의 이름을 입력하세요(여기서는 admin). 첫 스캔은 저절로 시작됩니다.

    Terminal
    docker compose exec waveflow \
      waveflow-server library add --owner admin --name Music --path /music

이미지

ghcr.io/instazdll/waveflow-server

amd64와 arm64용으로 만들어서, 64비트 시스템을 쓰는 Raspberry Pi 4나 5에서도 실행됩니다. 모든 릴리스에는 버전 태그가 붙고, latest는 가장 최근의 안정 버전을 가리킵니다. 같은 이미지는 Docker Hub에도 있습니다.

  • linux/amd64
  • linux/arm64

밖에서 듣기

서버는 암호화되지 않은 HTTP로 통신하므로 믿을 수 있는 네트워크 안에서 쓰기에 알맞습니다. 어디서나 들으려면 HTTPS 뒤에 두세요. 저장소에는 Caddy를 쓴 설정 예시가 있고, 인증서 발급과 갱신은 Caddy가 알아서 합니다.

Caddy 설정

Docker 없이

모든 릴리스에는 내 컴퓨터에서 압축을 풀어 바로 실행할 수 있는 아카이브도 있습니다. 설치가 필요 없고 FFmpeg도 들어 있으며, 웹 플레이어는 저절로 열립니다. 처음 실행할 때 Windows와 macOS가 경고를 띄웁니다. 무엇을 눌러야 하는지는 안에 든 README.txt에 적혀 있습니다.

  • Windows · x86_64.zip
  • macOS · Apple silicon.zip
  • macOS · Intel.zip
  • Linux · x86_64.tar.gz
  • Linux · arm64.tar.gz

체크섬은 같은 릴리스의 SHA256SUMS에 있습니다.

아카이브 다운로드