Skip to content

feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.26.0 ) - #5490

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/cluster-0-ghcr.io-slskd-slskd-0.x
Open

feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.26.0 )#5490
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/cluster-0-ghcr.io-slskd-slskd-0.x

Conversation

@renovate

@renovate renovate Bot commented Feb 9, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Update Change
ghcr.io/slskd/slskd (source) minor 0.22.10.26.0

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

slskd/slskd (ghcr.io/slskd/slskd)

v0.26.0

Compare Source

🎉 Another Big Release!

This release contains improvements to the user interface, failed download retries, and gives users the ability to control where completed downloads go on disk.

There's also one breaking change in the configuration for file permissions.

Dashboard Screen and Footer

The default landing page is now a dashboard that displays various statistics:

image

Users can select the time range and can click the legend under the chart to show or hide common data series. The Users tab shows users with the highest transfer count, size or speed, depending on how sorting is applied, and the Content tab shows the most commonly downloaded directories. The Errors tab displays detailed error information.

Also shown in the screenshot above is a new footer that appears on every screen and that displays real-time upload and download speeds, number of active transfers, and the size of each queue.

Browse Screen Improvements

The Browse screen has been redesigned to improve the functionality and performance:

image

The directory tree now uses virtualization to improve the performance, enabling larger shares to be displayed and interacted with than before. Directories can now be expanded and collapsed by clicking the folder icon to the left of directory names, and the number of files and subdirectories contained in each directory are now shown. The directory tree can now also be resized vertically by clicking and dragging the three-dot button at the bottom.

The filter above the directory tree can be used to show matching directories (regardless of how deeply nested). The buttons to the right can be used to expand or contract all directories, and the rightmost button expands the tree to reveal the currently selected directory and scrolls it into view.

The file selector now shows subdirectories in addition to files, and subdirectories can be expanded one level to show the files within. Subdirectories can be selected to include all of the files (regardless of subdirectory depth) in the file selection, effectively allowing recursive downloading of directories. Clicking the arrow icon to the far right of the directory name navigates the directory tree to that directory, allowing further review of the contents.

As the screenshot shows, this has been tested and is working well with 1,000,000 files and 100,000 directories. I'm not sure what the practical limit is, but the issues described in issue #​317 are still mostly accurate; there are still users which can't be browsed, but limitations exist for all Soulseek clients at various levels.

Failed Download Retries

Failed downloads can be retried automatically up to the configured number of attempts. If an attempt fails initially, the application delays the second attempt by the configured delay, and an exponential backoff is used to compute the delay for all subsequent events, up to the configured maximum delay.

By default, partial downloads are resumed based on the size of the incomplete file. Users can choose to always overwrite files if they wish.

YAML

transfers:
  download:
    retry:
      incomplete: resume # 'overwrite' or 'resume'
      attempts: 3
      delay: 5000 # initial time between retries, in milliseconds
      max_delay: 60000 # maximum time between retries, in milliseconds

Completed Download Location

Users can now specify an expression that slskd will evaluate to determine the destination directory:

transfers:
  download:
    destination:
      subdirectory: ${SOURCE_DIRECTORY} # options: SOURCE_USERNAME, SOURCE_PATH, SOURCE_DIRECTORY, BATCH_ID, BATCH_EXTERNAL_ID, SEARCH_ID, SEARCH_TEXT
      exists: rename # 'overwrite' or 'rename'

The new subdirectory option allows users to specify an expression containing special, fixed values that are replaced at run-time when slskd determines where to place a newly downloaded file.

The syntax is simply:

<any string, or nothing>${<token>}<any other string, or nothing>

For example:

music/${SOURCE_USERNAME}/directories/${SOURCE_PATH}

Will expand to the following for a download of @@abcde/foo/bar/baz/qux.ext from user Bob:

music/Bob/directories/@@abcde/foo/bar/baz

The value for token is some value related to the transfer, including:

  • SOURCE_USERNAME: The username of the user the file was downloaded from
  • SOURCE_PATH: The complete path to the directory on the source user's system
  • SOURCE_DIRECTORY: The directory on the source user's system that contains the file; the immediate parent directory
  • BATCH_ID: The ID pf the associated batch, if the file is part of a batch
  • BATCH_EXTERNAL_ID: The external ID included in the associated batches options when created
  • SEARCH_ID: The ID of the search associated with the batch, if one was supplied when the batch was created
  • SEARCH_TEXT: The text/query of the search

This option defaults to ${SOURCE_DIRECTORY}, which matches the current behavior. Users that choose not to set this option shouldn't notice any change.

The new exists option allows users to choose what slskd does when it downloads a file that already exists on disk, either overwrite which overwrites the old file with the new one, or rename, which appends a number to the end of the new file. The current behavior is rename.

Breaking Change

Users who have previously set the permissions.file.mode configuration property, were using the --file-permission-mode command line argument, or had set the SLSKD_FILE_PERMISSION_MODE environment variable will find that this option has been moved, and slskd should refuse to start informing them of this.

To fix this, update the YAML configuration file to set the new transfers.download.destination.permissions.mode key as shown below.

Old:

permissions:
  file:
    mode: 644 # not for Windows, chmod syntax, e.g. 644, 777. can't escalate beyond umask

New:

transfers:
  download:
    destination:
      permissions:
        mode: 644 # chmod syntax, e.g. 644, 777.  has no effect on Windows

What's Changed

New Contributors

Full Changelog: slskd/slskd@0.25.1...0.26.0

v0.25.1

Compare Source

What's Changed

Full Changelog: slskd/slskd@0.25.0...0.25.1

v0.25.0

Compare Source

🎉 Big Release!

This release contains a number of mostly unrelated changes.

Licensing

I have added 'Additional Terms' to the AGPLv3 that clarify the conditions under which folks can distribute and modify slskd, which Section 7 of the AGPLv3 allows. These terms include preservation of notices and licenses (already required by the AGPLv3, the terms spell the requirements out explicitly), mandatory identification of modifications (again, already required), mandatory rebranding (renaming forks to something that won't be confused with slskd), and the mandatory modification of the client version supplied to the server at login.

The full text of these Additional Terms can be found at the bottom of the LICENSE in the root of the repository. I've also added a NOTICE in the hopes that folks will be drawn to it and see that the LICENSE includes Additional Terms, and I've added a FORKING.md that explains the new terms in plain English.

To explain why I've done this, I'll share an excerpt from FORKING.md:

The requirements exist for two reasons, and both are about the people who use the software.

The first is to make sure users always know they are using software licensed under the AGPL. That matters because the AGPL gives users meaningful rights: the right to know that the source code exists, the right to access it, and the right to understand what they are running. Those rights only mean something if users are actually informed of them. Requiring that the full LICENSE be included with every distribution, and that license notices be preserved everywhere they appear, ensures that no user ever ends up with a copy of this software that hides or obscures the terms under which it was released.

The second is to make sure users understand who made the software they are using. They should be able to tell where it came from, who maintains it, what has been changed and by whom, and whether it is the original project or a fork. A user who installs a fork deserves to know it is a fork. The requirements around naming, branding, source file headers, and identification notices all serve this goal. They are not intended to discourage forking, they are intended to make sure that anyone who uses a fork has an accurate picture of what they have.

With AI becoming mainstream it is now incredibly easy to fork a project and manipulate it in ways that are harmful to users and/or the server(s) the software connects to. This behavior, unfortunately, is permissible under the AGPLv3. All I can do is ensure that users aren't deceived into using these untrusted and potentially harmful forks.

Docker User/Permissions

The slskd Docker container now supports both Docker's built in --user/user: and the Linuxserver/*arr style PUID/PGID methods for running the container as a specific user. The built-in method is objectively superior, but I noticed that people frequently got hung up on permissions because they were using PUID/PGID without understanding that it wasn't supported.

These methods are mutually exclusive; users must choose one or the other. Users should also be aware that when using the PUID/PGID method, the container will chown the mounted /app directory on startup. This may be unexpected, but it is the intended behavior. The chown isn't recursive; users will need to do that themselves if needed.

Examples in the README and Docker docs have been updated to reflect these changes. I welcome any feedback about the approach in the Dockerfile or contents of the docs.

Configuration May Be Broken

Users who have configured things under the global, groups, or integration keys in the configuration file will find that the app will log an error and exit early until they apply the necessary changes. This is unfortunate, but the alternative was to not do that and allow people to continue using the app without their configuration being respected.

Pull request #​1704 outlines the changes and provides an example of what needs to be done by correcting the configuration docs. tl;dr:

  1. Rename the global key to transfers
  2. Move all limits keys so that they appear nested under the upload key of the associated group
  3. Rename the integration key to integrations

These changes were made to make room for upcoming features (stay tuned!). The rename of the integration key was admittedly not necessary for that, but I figured I would sneak it in.

What's Changed
New Contributors

Full Changelog: slskd/slskd@0.24.5...0.25.0

v0.24.5

Compare Source

What's Changed

Full Changelog: slskd/slskd@0.24.4...0.24.5

v0.24.4

Compare Source

Notable change: #​1632 Add VPN integration and gluetun client adds the ability to configure slskd to poll your VPN client for status and automatically update your listening port. See the docs for more details.

What's Changed

Full Changelog: slskd/slskd@0.24.3...0.24.4

v0.24.3

Compare Source

What's Changed
New Contributors

Full Changelog: slskd/slskd@0.24.2...0.24.3

v0.24.2

Compare Source

What's Changed
New Contributors

Full Changelog: slskd/slskd@0.24.1...0.24.2

v0.24.1

Compare Source

Notable change: #​1544 Remove cache sharing directive from SQLite connection strings removes an ill-advised SQLite setting that has been causing contention and deadlocks for some (most?) users. This release should be noticeably more performant and stable.

What's Changed
New Contributors

Full Changelog: slskd/slskd@0.24.0...0.24.1

v0.24.0

Compare Source

🔧 Transfer Overhaul

This release incorporates a ton of bug fixes and refactoring in both slskd and the underlying Soulseek.NET library with the goal of resolving 'stuck' and failing transfers (both uploads and downloads).

What's Changed
New Contributors

Full Changelog: slskd/slskd@0.23.2...0.24.0

v0.23.2

Compare Source

What's Changed
New Contributors

Full Changelog: slskd/slskd@0.23.1...0.23.2

v0.23.1

Compare Source

What's Changed

Full Changelog: slskd/slskd@0.23.0...0.23.1

v0.23.0

Compare Source

🎉 Database Migrations (that preserve data!)

This release introduces a new system that performs database migrations on existing data (#​1343), which was necessary to migrate the Transfers database to correct an out of memory issue at startup for users with a large number of transfer records (see #​1291).

Upon first start after upgrading to 0.23.0 the application will apply the initial migration to the Transfers database (transfers.db), if there is one. Depending on the system and the amount of data present, this may take a while, and the UI will be inaccessible during the process.

Backups of existing databases are taken prior to the start of the process (you can find them in /data/backups) and they aren't deleted automatically, so your historical data is safe. A feature to add auto deletion after a period of time will come later.

In the unlikely event that the process fails to complete successfully, follow the directions in the new migration docs, which explain what to do if something goes wrong, and how to get the application back to a working state if the migration can't be completed.

If you find that your database can't be migrated successfully, please file an issue and I can work on providing a standalone migration tool.

What's Changed

Full Changelog: slskd/slskd@0.22.5...0.23.0

v0.22.5

Compare Source

What's Changed
  • Fix cryptic message if a remote client doesn't return any files when directory contents are requested by @​jpdillingham in #​1328

Full Changelog: slskd/slskd@0.22.4...0.22.5

v0.22.4

Compare Source

What's Changed

Full Changelog: slskd/slskd@0.22.3...0.22.4

v0.22.3

Compare Source

📢 New Features

@​dkschruteBeets added the ability to configure profile pictures! Configure one by specifying the file path in --slsk-picture, by setting SLSKD_SLSK_PICTURE, or by setting the YAML key soulseek.picture.

@​samhatter added a right-click context menu to rooms:
image

User-defined scripts were refactored, including some breaking changes. The major (22) version wasn't bumped for these changes because the previous implementation of scripts was broken. Additionally, jq is now available inside of the slskd container to help with scripts, thanks to @​onedr0p.

Lastly, some improvements to the way searches are stored in the database should provide some relief to users who are experiencing 'stuck' searches when using external apps for automation. Included with these improvements is a queuing mechanism that caps the number of concurrent searches at 10, enqueuing subsequent searches. This will help with resource contention and should provide some protection against server bans should automation go awry.

What's Changed

Note

PR body was truncated to here.


Configuration

📅 Schedule: (in timezone America/New_York)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@carpenike-bot

carpenike-bot Bot commented Feb 9, 2025

Copy link
Copy Markdown
Contributor
--- kubernetes/cluster-0/apps/media/slskd/app Kustomization: flux-system/slskd HelmRelease: media/slskd

+++ kubernetes/cluster-0/apps/media/slskd/app Kustomization: flux-system/slskd HelmRelease: media/slskd

@@ -43,13 +43,13 @@

               TZ: America/New_York
             envFrom:
             - secretRef:
                 name: slskd-secret
             image:
               repository: ghcr.io/slskd/slskd
-              tag: 0.22.1@sha256:ab52af766b54b8a0f6b61969c77a2204ce4ef95f0217a627d09ebda8346c451c
+              tag: 0.22.2@sha256:e2e4b25f6d12fc6018fa91d1e95311f1734d3f809f02b32f3fd9457b1113e06f
             probes:
               liveness:
                 custom: true
                 enabled: true
                 spec:
                   failureThreshold: 3

@carpenike-bot

carpenike-bot Bot commented Feb 9, 2025

Copy link
Copy Markdown
Contributor
--- HelmRelease: media/slskd Deployment: media/slskd

+++ HelmRelease: media/slskd Deployment: media/slskd

@@ -59,13 +59,13 @@

           value: '50300'
         - name: TZ
           value: America/New_York
         envFrom:
         - secretRef:
             name: slskd-secret
-        image: ghcr.io/slskd/slskd:0.22.1@sha256:ab52af766b54b8a0f6b61969c77a2204ce4ef95f0217a627d09ebda8346c451c
+        image: ghcr.io/slskd/slskd:0.22.2@sha256:e2e4b25f6d12fc6018fa91d1e95311f1734d3f809f02b32f3fd9457b1113e06f
         livenessProbe:
           failureThreshold: 3
           httpGet:
             path: /health
             port: 80
           initialDelaySeconds: 0

@carpenike-bot

carpenike-bot Bot commented Feb 9, 2025

Copy link
Copy Markdown
Contributor

🦙 MegaLinter status: ❌ ERROR

Descriptor Linter Files Fixed Errors Warnings Elapsed time
❌ COPYPASTE jscpd yes 2 no 1.5s
✅ REPOSITORY git_diff yes no no 0.04s
✅ REPOSITORY secretlint yes no no 3.87s
✅ YAML prettier 1 0 0 0.47s
✅ YAML yamllint 1 0 0 0.71s

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security

@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 990cadb to 2fddee8 Compare April 9, 2025 18:56
@renovate renovate Bot changed the title fix(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.22.2 ) fix(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.22.3 ) Apr 9, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 2fddee8 to 162c7b8 Compare April 13, 2025 02:01
@renovate renovate Bot changed the title fix(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.22.3 ) fix(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.22.4 ) Apr 13, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 162c7b8 to a323ca3 Compare April 15, 2025 03:36
@renovate renovate Bot changed the title fix(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.22.4 ) fix(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.22.5 ) Apr 15, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from a323ca3 to 96d8dd7 Compare July 6, 2025 01:15
@renovate renovate Bot changed the title fix(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.22.5 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.23.0 ) Jul 6, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 96d8dd7 to eb4d24c Compare July 7, 2025 01:42
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.23.0 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.23.1 ) Jul 7, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from eb4d24c to 8835cef Compare August 11, 2025 01:03
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.23.1 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.23.2 ) Aug 11, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 8835cef to 6611909 Compare November 5, 2025 02:41
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.23.2 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.0 ) Nov 5, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 6611909 to d77b89f Compare December 1, 2025 21:05
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.0 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.1 ) Dec 1, 2025
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from d77b89f to d138d42 Compare January 12, 2026 17:51
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.1 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.2 ) Jan 12, 2026
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from d138d42 to 750fc02 Compare January 15, 2026 18:07
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.2 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.3 ) Jan 15, 2026
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 750fc02 to e249ae9 Compare February 16, 2026 17:48
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.3 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.4 ) Feb 16, 2026
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from e249ae9 to 7da7a9c Compare March 1, 2026 04:52
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.4 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.5 ) Mar 1, 2026
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 7da7a9c to f39c176 Compare April 19, 2026 10:12
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.24.5 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.25.0 ) Apr 19, 2026
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from f39c176 to 1a59981 Compare April 20, 2026 09:29
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.25.0 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.25.1 ) Apr 20, 2026
| datasource | package             | from   | to     |
| ---------- | ------------------- | ------ | ------ |
| docker     | ghcr.io/slskd/slskd | 0.22.1 | 0.25.1 |
@renovate
renovate Bot force-pushed the renovate/cluster-0-ghcr.io-slskd-slskd-0.x branch from 1a59981 to 01d9dfb Compare June 22, 2026 17:40
@renovate renovate Bot changed the title feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.25.1 ) feat(container): update image ghcr.io/slskd/slskd ( 0.22.1 → 0.26.0 ) Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants