The containers that run updates for violinist.io, a PHP / Composer dependency updater for Bitbucket / GitHub / GitLab / Self Hosted GitLab.
Also available as standalone docker containers to self host the update running.
Don't even have time for a quick start? Here are some examples:
Example for GitLab
docker run \
--pull=always \
-e "LICENCE_KEY=my_key" \
-e "PROJECT_URL=https://gitlab.com/user/repo" \
-e "USER_TOKEN=glpat-jjYgGb_1npvkiHTdnM" \
ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2
Example for GitHub
docker run \
--pull=always \
-e "LICENCE_KEY=my_key" \
-e "PROJECT_URL=https://github.com/user/repo" \
-e "USER_TOKEN=ghp_jYgGb_1npvkiHTdnM" \
ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2
Example for Bitbucket
docker run \
--pull=always \
-e "LICENCE_KEY=my_key" \
-e "PROJECT_URL=https://bitbucket.org/org/project/repo" \
-e "USER_TOKEN=myusername:app_p455w0rd" \
ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2
Copy the URL of the repository you want to check for updates. For the purpose of this quick start guide, let's assume this is https://gitlab.com/user/repo
.
- For GitHub visit https://github.com/settings/tokens/new
- For Bitbucket visit https://bitbucket.org/account/settings/app-passwords/new. Please note your argument to running updates must include your username (see notice below).
- For Gitlab visit https://gitlab.com/-/user_settings/personal_access_tokens
- For self hosted Gitlab visit https://gitlab.example.com/-/user_settings/personal_access_tokens (replace with your own domain)
For the purpose of this quick start guide let's assume the token is glpat-jjYgGb_1npvkiHTdnM
.
π¨οΈ For bitbucket your token should include both your username and your application password separated with a colon (
:
). For exampleuser:p455w0r0
.
You can do this in one of the following ways:
- Use a license key somehow provided to you
- Use a trial license from https://violinist.io/self-hosted-trial
- Purchase a license on https://violinist.io/purchase-licence
For the purpose of this quick start guide, let's assume the license key is fYtLakIxFEBdy1vB_SU3iaPrTRwVugFnj9AGxRYVsRSha-ju3m7qpFNHhwPn_C5vS38tDGW6jo_DOI7zZfcy5n6cu7_3ef8vU8HyfS6cyrR6Xq767XOcvqb1KKgoCKqo6_vyI02pWk6YgyU3gsrqgaS5pwcVo9aNY2AQbS1TZABJjwWRHCUqNrCK7pTd2TE6hA01rMQKTJUNmjlLjbYlYc4c3TQxS6iqYH8
Choose the PHP version and composer version relevant to your project. For the purpose of this quick start guide, let's assume we use PHP 8.3 and Composer 2.
That means we should run the following docker image:
ghcr.io/violinist-dev/update-check-runner:
8.3
-multi-composer-2
Putting it all together with your noted arguments:
docker run \
--pull=always \
-e "LICENCE_KEY=fYtLakIxFEBdy1vB_SU3iaPrTRwVugFnj9AGxRYVsRSha-ju3m7qpFNHhwPn_C5vS38tDGW6jo_DOI7zZfcy5n6cu7_3ef8vU8HyfS6cyrR6Xq767XOcvqb1KKgoCKqo6_vyI02pWk6YgyU3gsrqgaS5pwcVo9aNY2AQbS1TZABJjwWRHCUqNrCK7pTd2TE6hA01rMQKTJUNmjlLjbYlYc4c3TQxS6iqYH8" \
-e "PROJECT_URL=https://gitlab.com/user/repo" \
-e "USER_TOKEN=glpat-jjYgGb_1npvkiHTdnM" \
ghcr.io/violinist-dev/update-check-runner:8.3-multi-composer-2
Name | Required | Default value |
---|---|---|
LICENCE_KEY | Yes | |
USER_TOKEN | Yes | |
PROJECT_URL | Yes | |
GIT_AUTHOR_NAME | No | violinist-bot |
GIT_AUTHOR_EMAIL | No | [email protected] |
GIT_COMMITTER_NAME | No | violinist-bot |
GIT_COMMITTER_EMAIL | No | [email protected] |
ALTERNATE_COMPOSER_PATH | No |
The licence key either handed to you, obtained or purchased for running your own update runners.
Please note the below key is an example, which is signed with an invalid private key.
Example value: fYtLakIxFEBdy1vB_SU3iaPrTRwVugFnj9AGxRYVsRSha-ju3m7qpFNHhwPn_C5vS38tDGW6jo_DOI7zZfcy5n6cu7_3ef8vU8HyfS6cyrR6Xq767XOcvqb1KKgoCKqo6_vyI02pWk6YgyU3gsrqgaS5pwcVo9aNY2AQbS1TZABJjwWRHCUqNrCK7pTd2TE6hA01rMQKTJUNmjlLjbYlYc4c3TQxS6iqYH8
A token valid for accessing the API, cloning the repo, pushing branches and creating pull requests on behalf of the user in question. Usually this will be a personal access token (PAT) or an app password.
Example value: ghp_eIgde31jggU3GIBB22fJbv2odcd0xy0e9jh8
The repository to run update checks on.
Example value: https://github.com/violinist-dev/update-check-runner
An environment variable used for git commits. From the git documentation:
GIT_AUTHOR_NAME is the human-readable name in the βauthorβ field.
See "10.8 Git Internals - Environment Variables" for more information
An environment variable used for git commits. From the git documentation:
GIT_AUTHOR_EMAIL is the email for the βauthorβ field.
See "10.8 Git Internals - Environment Variables" for more information
An environment variable used for git commits. From the git documentation:
GIT_COMMITTER_NAME sets the human name for the βcommitterβ field.
See "10.8 Git Internals - Environment Variables" for more information
An environment variable used for git commits. From the git documentation:
GIT_COMMITTER_EMAIL is the email address for the βcommitterβ field.
See "10.8 Git Internals - Environment Variables" for more information
An alternate path to use for the composer executable. For example, this is what you would use, should you want to use (or are forced to use) Composer 2.2 LTS instead of the latest version.
You can only set this value to one of the following alternatives, otherwise it will be ignored:
/usr/local/bin/composer22
(this will be the latest Composer 2.2 LTS release)
The following PHP extensions are available in the containers (long table, click to expand):
Click to expand
Name | 7.3 | 7.4 | 8.0 | 8.1 | 8.2 | 8.3 | 8.4 |
---|---|---|---|---|---|---|---|
apcu | β | β | β | β | β | β | β |
bcmath | β | β | β | β | β | β | β |
bz2 | β | β | β | β | β | β | β |
calendar | β | β | β | β | β | β | β |
Core | β | β | β | β | β | β | β |
ctype | β | β | β | β | β | β | β |
curl | β | β | β | β | β | β | β |
date | β | β | β | β | β | β | β |
decimal | β | β | β | β | β | β | β |
dom | β | β | β | β | β | β | β |
exif | β | β | β | β | β | β | β |
fileinfo | β | β | β | β | β | β | β |
filter | β | β | β | β | β | β | β |
ftp | β | β | β | β | β | β | β |
gd | β | β | β | β | β | β | β |
gettext | β | β | β | β | β | β | β |
gmp | β | β | β | β | β | β | β |
hash | β | β | β | β | β | β | β |
iconv | β | β | β | β | β | β | β |
imagick | β | β | β | β | β | β | β |
imap | β | β | β | β | β | β | β |
intl | β | β | β | β | β | β | β |
json | β | β | β | β | β | β | β |
ldap | β | β | β | β | β | β | β |
libxml | β | β | β | β | β | β | β |
mailparse | β | β | β | β | β | β | β |
mbstring | β | β | β | β | β | β | β |
memcached | β | β | β | β | β | β | β |
mongodb | β | β | β | β | β | β | β |
msgpack | β | β | β | β | β | β | β |
mysqli | β | β | β | β | β | β | β |
mysqlnd | β | β | β | β | β | β | β |
OAuth | β | β | β | β | β | β | β |
openssl | β | β | β | β | β | β | β |
pcntl | β | β | β | β | β | β | β |
pcre | β | β | β | β | β | β | β |
PDO | β | β | β | β | β | β | β |
pdo_mysql | β | β | β | β | β | β | β |
pdo_pgsql | β | β | β | β | β | β | β |
pdo_sqlite | β | β | β | β | β | β | β |
pdo_sqlsrv | β | β | β | β | β | β | β |
Phar | β | β | β | β | β | β | β |
posix | β | β | β | β | β | β | β |
random | β | β | β | β | β | β | β |
rdkafka | β | β | β | β | β | β | β |
readline | β | β | β | β | β | β | β |
redis | β | β | β | β | β | β | β |
Reflection | β | β | β | β | β | β | β |
session | β | β | β | β | β | β | β |
SimpleXML | β | β | β | β | β | β | β |
soap | β | β | β | β | β | β | β |
sockets | β | β | β | β | β | β | β |
sodium | β | β | β | β | β | β | β |
SPL | β | β | β | β | β | β | β |
sqlite3 | β | β | β | β | β | β | β |
sqlsrv | β | β | β | β | β | β | β |
standard | β | β | β | β | β | β | β |
tokenizer | β | β | β | β | β | β | β |
uuid | β | β | β | β | β | β | β |
xml | β | β | β | β | β | β | β |
xmlreader | β | β | β | β | β | β | β |
xmlrpc | β | β | β | β | β | β | β |
xmlwriter | β | β | β | β | β | β | β |
xsl | β | β | β | β | β | β | β |
yaml | β | β | β | β | β | β | β |
Zend OPcache | β | β | β | β | β | β | β |
zip | β | β | β | β | β | β | β |
zlib | β | β | β | β | β | β | β |
What is the difference between self hosting and using violinist.io (the SaaS)
In practice, all the automation, convenience, logging and persistance you would have to need.
- No formatting, storing or analysis of logs. You would have to implement this yourself if needed.
- No notifications (email or slack)
- No automatic discovery of PHP version. When your project upgrade to a new version, you must also change the PHP version of the update container
- No private keys per project or per organization
Can I use this to run updates for my clients or customers and charge money for it?
Yes. There are no restrictions on what you use the licence key for, and if you use it for commercial purposes or something else.
You are not allowed to provide the same service as violinist.io (sell licences to this software, or provide a SaaS based on this software). But please go ahead and purchase a licence and charge your customers multiples of that to provide the service you purchased.
Otherwise, we refer to the licence of this repo: https://github.com/violinist-dev/update-check-runner/blob/main/LICENSE
Licenced under the commercial violinist licence