[PR #378] [CLOSED] feat(docker): add docker container setup #538

Closed
opened 2026-02-27 19:04:16 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/afkarxyz/SpotiFLAC/pull/378
Author: @calebe94
Created: 1/24/2026
Status: Closed

Base: mainHead: docker-container


📝 Commits (2)

  • 4a90927 feat(docker): add docker container setup
  • d46cd1f feat(docker): add docker container setup

📊 Changes

25 files changed (+349 additions, -0 deletions)

View changed files

.dockerignore (+7 -0)
Dockerfile (+126 -0)
Dockerfile.arm64 (+114 -0)
docker-compose.yml (+20 -0)
rootfs/etc/s6-overlay/s6-rc.d/init-setup/run (+31 -0)
rootfs/etc/s6-overlay/s6-rc.d/init-setup/type (+1 -0)
rootfs/etc/s6-overlay/s6-rc.d/init-setup/up (+1 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-novnc/dependencies.d/init-setup (+0 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-novnc/run (+3 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-novnc/type (+1 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-openbox/dependencies.d/init-setup (+0 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-openbox/run (+3 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-openbox/type (+1 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-spotiflac/dependencies.d/init-setup (+0 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-spotiflac/run (+7 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-spotiflac/type (+1 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-tigervnc/dependencies.d/init-setup (+0 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-tigervnc/run (+13 -0)
rootfs/etc/s6-overlay/s6-rc.d/svc-tigervnc/type (+1 -0)
rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-setup (+0 -0)

...and 5 more files

📄 Description

Add Docker Container Support

This PR adds full Docker containerization for SpotiFLAC with web-based access via noVNC, following the same architecture pattern as Soulseek Docker.

Features

  • Multi-platform support: Native linux/amd64 and linux/arm64 builds
  • Web interface: Access SpotiFLAC GUI via browser through noVNC
  • s6-overlay: Service management for VNC, noVNC, Openbox, and SpotiFLAC
  • Custom noVNC UI: Quick access buttons for Downloads and Config directories
  • Volume persistence: Separate volumes for downloads, config, and appdata
  • User/permission control: Configurable PUID/PGID and UMASK

Quick Start

services:
  spotiflac:
    image: spotiflac
    container_name: spotiflac
    restart: unless-stopped
    ports:
      - 6090:6090
    volumes:
      - ./appdata:/data/appdata
      - ./config:/data/config
      - ./downloads:/data/Downloads

Access UI at http://localhost:6090

Configuration

Variable Default Description
PUID 1000 User ID
PGID 1000 Group ID
UMASK 022 File permission mask
TZ - Timezone (e.g., America/Sao_Paulo)
VNCPWD - VNC password (optional)
VNCPWD_FILE - Path to VNC password file

Build

x86_64:

docker build -f Dockerfile -t spotiflac:latest .

ARM64:

docker build -f Dockerfile.arm64 -t spotiflac:latest .

Volumes

Path Description
/data/Downloads Downloaded music files
/data/config SpotiFLAC configuration (.spotiflac.yaml)
/data/appdata Application state and cache

Platform Support

Architecture Support
linux/amd64 Native
linux/arm64 Native

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/afkarxyz/SpotiFLAC/pull/378 **Author:** [@calebe94](https://github.com/calebe94) **Created:** 1/24/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `docker-container` --- ### 📝 Commits (2) - [`4a90927`](https://github.com/afkarxyz/SpotiFLAC/commit/4a90927fe7847baae2f53654c19368443887d4f0) feat(docker): add docker container setup - [`d46cd1f`](https://github.com/afkarxyz/SpotiFLAC/commit/d46cd1fe05339b4ca3778d152b59776809d3f757) feat(docker): add docker container setup ### 📊 Changes **25 files changed** (+349 additions, -0 deletions) <details> <summary>View changed files</summary> ➕ `.dockerignore` (+7 -0) ➕ `Dockerfile` (+126 -0) ➕ `Dockerfile.arm64` (+114 -0) ➕ `docker-compose.yml` (+20 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/init-setup/run` (+31 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/init-setup/type` (+1 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/init-setup/up` (+1 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-novnc/dependencies.d/init-setup` (+0 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-novnc/run` (+3 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-novnc/type` (+1 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-openbox/dependencies.d/init-setup` (+0 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-openbox/run` (+3 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-openbox/type` (+1 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-spotiflac/dependencies.d/init-setup` (+0 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-spotiflac/run` (+7 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-spotiflac/type` (+1 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-tigervnc/dependencies.d/init-setup` (+0 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-tigervnc/run` (+13 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/svc-tigervnc/type` (+1 -0) ➕ `rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-setup` (+0 -0) _...and 5 more files_ </details> ### 📄 Description # Add Docker Container Support This PR adds full Docker containerization for SpotiFLAC with web-based access via noVNC, following the same architecture pattern as [Soulseek Docker](https://github.com/realies/soulseek-docker/). ## Features - **Multi-platform support**: Native `linux/amd64` and `linux/arm64` builds - **Web interface**: Access SpotiFLAC GUI via browser through noVNC - **s6-overlay**: Service management for VNC, noVNC, Openbox, and SpotiFLAC - **Custom noVNC UI**: Quick access buttons for Downloads and Config directories - **Volume persistence**: Separate volumes for downloads, config, and appdata - **User/permission control**: Configurable PUID/PGID and UMASK ## Quick Start ```yaml services: spotiflac: image: spotiflac container_name: spotiflac restart: unless-stopped ports: - 6090:6090 volumes: - ./appdata:/data/appdata - ./config:/data/config - ./downloads:/data/Downloads ``` Access UI at `http://localhost:6090` ## Configuration | Variable | Default | Description | |----------|---------|-------------| | `PUID` | `1000` | User ID | | `PGID` | `1000` | Group ID | | `UMASK` | `022` | File permission mask | | `TZ` | - | Timezone (e.g., `America/Sao_Paulo`) | | `VNCPWD` | - | VNC password (optional) | | `VNCPWD_FILE` | - | Path to VNC password file | ## Build **x86_64:** ```bash docker build -f Dockerfile -t spotiflac:latest . ``` **ARM64:** ```bash docker build -f Dockerfile.arm64 -t spotiflac:latest . ``` ## Volumes | Path | Description | |------|-------------| | `/data/Downloads` | Downloaded music files | | `/data/config` | SpotiFLAC configuration (`.spotiflac.yaml`) | | `/data/appdata` | Application state and cache | ## Platform Support | Architecture | Support | |--------------|---------| | `linux/amd64` | Native | | `linux/arm64` | Native | --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 19:04:16 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/SpotiFLAC#538
No description provided.