Back in 2017, I was a user of YOURLS (Great thanks to upstream maintainers). I found it's hard to build YOURLS into container image so I publish my customized YOURLS image build and scripts on May 7, 2017. Around half year later, upstream YOURLS maintainers published an official repo called "YOURLS/docker" to build container images for YOURLS project on Nov 11, 2017. So it became two different image repositories.
Ideally, official build should receive better support and it is always encourage to try Official Build first. The main differences between two projects is the way image build and w/wo plugins pre-loaded.
As time goes by, please take this project as a quick start guide for YOURLS and please don't get me wrong, I'm not pushing you away (existed users), if you still like this project? it is always welcome to stay here :-)
- Yourls - 1.9.2
Container image tag | Mobile-Detect version | PHP version | OS version | Remark |
---|---|---|---|---|
1.9.2-7 (alias of 1.9.2) | 3.74.3 | PHP 8.3 | Debian 12 | Multi-platform support, linux/{amd64,arm64} |
1.9.2-6 | 3.74.3 | PHP 8.3 | Debian 12 | no code change, regular build only |
1.9.2-5 | 3.74.3 | PHP 8.3 | Debian 12 | no code change, regular build only |
1.9.2-4 | 3.74.3 | PHP 8.3 | Debian 12 | no code change, regular build only |
1.9.2-3 | 3.74.3 | PHP 8.3 | Debian 12 | deprecated |
1.9.2-2 | 2.8.45 | PHP 8.0 | Debian 10 | deprecated |
1.9.2-1 | 2.8.41 | PHP 8.0 | Debian 10 | deprecated |
- timezones
- 302-instead
- dont-track-admins
- fallback_url_config
- force-lowercase
- mobile-detect
- dont-log-bots
- dont-log-crawler
- dont-log-health-checker
Important
You should always change the default username/password pairs for both MySQL and YOURLS.
To run YOURLS service with customized config
$ vim env.mysql
$ vim env.yourls
$ docker compose up [--build] [-d]
- Default Login Page: http://localhost/admin/
- Default Username: see env.yourls
- Default Password: see env.yourls
Execute backup.sh
to get regular backup
Make sure there is no container running
$ docker compose down
$ docker ps
Cleanup "mysql-data" volume
$ docker volume rm yourls_mysql-data
Make sure there is no sql file under "mysql-initdb" volume
$ rm -vf ./volumes/docker-entrypoint-initdb.d/*
Move the backup sql file to "mysql-initdb" volume
$ cp -vf ./mysql-dump-YYYYMMDD-hhmmss.sql ./volumes/docker-entrypoint-initdb.d/
$ docker compose up -d
Check the answer at the link below
- https://github.com/orgs/YOURLS/discussions/3638#discussioncomment-7192119
simply modify the variables inside `env.*` before your first run.
1. The value of `YOURLS_DB_PASS` inside `env.yourls` **SHOULD BE** exactly the same as `MYSQL_PASSWORD` in `env.mysql`.
2. The value of `YOURLS_DB_USER` inside `env.yourls` **SHOULD BE** exactly the same as `MYSQL_USER` in `env.mysql.
3. All variables inside `env.mysql` and `env.yourls` **SHOULD NOT** contain `'=' (equal sign)`, `' ' (space)`, `'#' (number sign)`.
Check the FAQ for YOURLS for more details
- https://yourls.org/docs/guide/essentials/credentials#faq
It should only happen at 1st time deployment, you may safely ignore it.
Here are some useful links for you
- https://yourls.org/docs
- https://yourls.org/docs/category/troubleshooting
- https://github.com/orgs/YOURLS/discussions