Shlink
The definitive self-hosted URL shortener
Alternative to: bitly, tinyurl, rebrandly
v3.3.0
2022-09-18Changed
- #1339 Added new test suite for CLI E2E tests.
- #1503 Drastically improved build time in GitHub Actions, by optimizing parallelization and adding php extensions cache.
- #1525 Migrated to custom doctrine CLI entry point.
- #1492 Migrated to immutable options objects, mapped with cuyz/valinor.
Added
-
#1221 Added experimental support to run Shlink with RoadRunner instead of openswoole.
-
#1531 and #1090 Added support for trailing slashes in short URLs.
-
#1406 Added new REST API version 3.
When making requests to the REST API with
/rest/v3/...and an error occurs, all error types will be different, with the next correlation:INVALID_ARGUMENT->https://shlink.io/api/error/invalid-dataINVALID_SHORT_URL_DELETION->https://shlink.io/api/error/invalid-short-url-deletionDOMAIN_NOT_FOUND->https://shlink.io/api/error/domain-not-foundFORBIDDEN_OPERATION->https://shlink.io/api/error/forbidden-tag-operationINVALID_URL->https://shlink.io/api/error/invalid-urlINVALID_SLUG->https://shlink.io/api/error/non-unique-slugINVALID_SHORTCODE->https://shlink.io/api/error/short-url-not-foundTAG_CONFLICT->https://shlink.io/api/error/tag-conflictTAG_NOT_FOUND->https://shlink.io/api/error/tag-not-foundMERCURE_NOT_CONFIGURED->https://shlink.io/api/error/mercure-not-configuredINVALID_AUTHORIZATION->https://shlink.io/api/error/missing-authenticationINVALID_API_KEY->https://shlink.io/api/error/invalid-api-key
If you make a request to the API with v2 or v1, the old error types will be returned, until Shlink 4 is released, when only the new ones will be used.
Non-error responses are not affected.
-
#1513 Added publishing of the docker image in GHCR.
-
#1114 Added support to provide an initial API key via
INITIAL_API_KEYenv var, when running Shlink with openswoole or RoadRunner.Also, the installer tool now allows to generate an initial API key that can be copy-pasted (this tool is run interactively), in case you use php-fpm or you don’t want to use env vars.
-
#1528 Added support to delay when the GeoLite2 DB file is downloaded in docker images, speeding up its startup time.
In order to do it, pass
SKIP_INITIAL_GEOLITE_DOWNLOAD=truewhen creating the container.
Removed
- Nothing
Fixed
- Nothing
Deprecated
- Nothing