Skip to content

Releases: slskd/slskd

0.25.1

20 Apr 02:20
7961741

Choose a tag to compare

What's Changed

Full Changelog: 0.25.0...0.25.1

0.25.0

19 Apr 05:33
15827da

Choose a tag to compare

🎉 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: 0.24.5...0.25.0

0.24.5

01 Mar 04:00
9c1c020

Choose a tag to compare

What's Changed

Full Changelog: 0.24.4...0.24.5

0.24.4

16 Feb 16:50
183645f

Choose a tag to compare

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: 0.24.3...0.24.4

0.24.3

15 Jan 14:40
35fb847

Choose a tag to compare

What's Changed

  • Fix UrlEncodingModelBinder regression with PathBase by @andykelk in #1600
  • Fix Regression in 0.24.2: API endpoints return 404 when running with base path by @jpdillingham in #1601

New Contributors

Full Changelog: 0.24.2...0.24.3

0.24.2

12 Jan 15:46
de27bb4

Choose a tag to compare

What's Changed

  • Change "Get Full Directory Contents" button caption and icon for clarity by @Copilot in #1552
  • Make chat rooms search filter case-insensitive by @Copilot in #1556
  • Update Browse empty state message for clarity by @Copilot in #1576
  • Add validation to prevent crash when blacklist is enabled without file by @Copilot in #1579
  • Add statistics by @jpdillingham in #1547
  • Add reverse proxy instructions to README by @WinnerWind in #1503
  • Add transfer details popup with datetime information to upload/download rows by @Copilot in #1582
  • feature: configurable ip address by @x0vi in #1555
  • Add the ability to bind HTTP and HTTPS to specific IP addresses by @jpdillingham in #1585
  • Remove single character cli args for envars and cert/secret gen by @jpdillingham in #1586
  • Add the ability to configure an API key via environment variables and command line by @jpdillingham in #1587
  • Add client-side sorting to System Files view by @Copilot in #1581
  • Handle Mutex creation failures in restricted environments by @Copilot in #1580
  • Add Prometheus metrics for enqueue operations by @jpdillingham in #1588
  • Add several indexes to share database, avoid using HasFlag() in other queries by @jpdillingham in #1589
  • Optimize handling of file requests by @jpdillingham in #1591
  • Add Failed retention setting, add more states to errored cleanup by @jpdillingham in #1594
  • Bump qs and express in /src/web by @dependabot[bot] in #1590
  • Fix issues with some API endpoints when values containing, among other characters, forward slashes are present by @jpdillingham in #1596
  • Fix typo in docs (http-listen-ip-address -> http-ip-address) by @jpdillingham in #1597

New Contributors

Full Changelog: 0.24.1...0.24.2

0.24.1

01 Dec 19:33
7450257

Choose a tag to compare

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: 0.24.0...0.24.1

0.24.0

05 Nov 02:17
59e1caf

Choose a tag to compare

🔧 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: 0.23.2...0.24.0

0.23.2

10 Aug 23:35
0b7cf17

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 0.23.1...0.23.2

0.23.1

06 Jul 23:57
64be239

Choose a tag to compare

What's Changed

  • Fix regression in scripts and webhooks causing json to be missing detail by @jpdillingham in #1389

Full Changelog: 0.23.0...0.23.1