{"id":20711510,"url":"https://github.com/lycheeorg/lychee-docker","last_synced_at":"2025-04-12T19:49:19.986Z","repository":{"id":37243467,"uuid":"170597325","full_name":"LycheeOrg/Lychee-Docker","owner":"LycheeOrg","description":"Docker image for Lychee","archived":false,"fork":false,"pushed_at":"2025-04-05T07:50:35.000Z","size":598,"stargazers_count":180,"open_issues_count":8,"forks_count":61,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-12T19:49:03.902Z","etag":null,"topics":["hacktoberfest"],"latest_commit_sha":null,"homepage":"https://lycheeorg.dev","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LycheeOrg.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-13T23:51:51.000Z","updated_at":"2025-04-07T15:46:48.000Z","dependencies_parsed_at":"2023-12-27T01:36:16.371Z","dependency_job_id":"3aaae15c-fdec-45e5-b1e5-6dca1fce3055","html_url":"https://github.com/LycheeOrg/Lychee-Docker","commit_stats":{"total_commits":231,"total_committers":19,"mean_commits":"12.157894736842104","dds":0.5281385281385281,"last_synced_commit":"d73e485da12d0cc5cd6b4692bba6c3d73af070fa"},"previous_names":[],"tags_count":64,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LycheeOrg%2FLychee-Docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LycheeOrg%2FLychee-Docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LycheeOrg%2FLychee-Docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LycheeOrg%2FLychee-Docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LycheeOrg","download_url":"https://codeload.github.com/LycheeOrg/Lychee-Docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625501,"owners_count":21135513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hacktoberfest"],"created_at":"2024-11-17T02:15:45.476Z","updated_at":"2025-04-12T19:49:19.953Z","avatar_url":"https://github.com/LycheeOrg.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status][build-status-shield]](https://github.com/LycheeOrg/Lychee-Docker/actions/workflows/nightly.yml)\n[![Last Commit][last-commit-shield]](https://github.com/LycheeOrg/Lychee-Docker/commits/master)\n[![Lychee Version][lychee-version-shield]](https://hub.docker.com/r/lycheeorg/lychee)\n[![Docker Pulls (new)][docker-pulls-shield]](https://hub.docker.com/r/lycheeorg/lychee)\n[![Docker Pulls (old)][docker-pulls-shield-old]](https://hub.docker.com/r/lycheeorg/lychee-laravel)\n\u003cbr\u003e\n![Supports amd64 Architecture][amd64-shield]\n![Supports arm64/aarch64 Architecture][arm64-shield]\n![Supports armv7 Architecture][armv7-shield]\n\n## Table of Contents\n\u003c!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 --\u003e\n- [Table of Contents](#table-of-contents)\n- [Image Content](#image-content)\n- [Setup](#setup)\n\t- [Quick Start](#quick-start)\n\t- [Prerequisites](#prerequisites)\n\t- [Run with Docker](#run-with-docker)\n\t- [Run with Docker Compose](#run-with-docker-compose)\n\t- [Create admin account during first run](#create-admin-account-during-first-run)\n\t- [Docker secrets](#docker-secrets)\n- [Available environment variables and defaults](#available-environment-variables-and-defaults)\n\u003c!-- /TOC --\u003e\n\n## Image Content\n\nThis image features Lychee, nginx and PHP-FPM. The provided configuration (PHP, nginx...) follows Lychee's official recommendations.\n\nThe following tags are available :\n\n* `latest`: Latest Lychee release\n* `v[NUMBER]`: Stable version tag for a Lychee release\n* `nightly` (also `dev`): Current master branch tag (Lychee operates on a stable master, so this should usually be safe)\n* `devtools`: As above, but includes development dependencies\n* `testing`: Tag for testing new branches and pull requests. Designed for internal use by LycheeOrg\n* `alpha`: Current alpha branch tag (The alpha branch contains bleeding edge changes that are not peer-reviewed)\n* `alpha-devtools`: As above, but includes development dependencies\n\n## Setup\n\n### Quick Start\n\nTo use the built-in SQLite support, no external dependencies are required. At its simplest, `docker run -p 80 lycheeorg/lychee:dev` will start Lychee listening on a random port on the local host.\n\nFor more runtime options, look below in [Run with Docker](#run-with-docker) and [Available environment variables and defaults](#available-environment-variables-and-defaults).\n\n### Prerequisites\n\nTo use this image with MySQL, MariaDB or PostgreSQL you will need a suitable database running externally. This may be through a Docker image, possibly in your `docker-compose.yml`.\n\n1.  Create the db, username, password.\n2.  Edit the environment variables (db credentials, language...) by :\n    *  Supplying the environment variables via `docker run` / `docker-compose` **or**\n    *  Creating a `.env` file with the appropriate info and mount it to `/conf/.env` **or**\n    *  Use the Lychee installer by passing `-e DB_CONNECTION=` on the command line and connecting to the container with your browser\n\n### Run with Docker\n\n**Make sure that you link to the container running your database !!**  \n\nThe example below shows `--net` and `--link` for these purposes. `--net` connects to the name of the network your database is on and `--link` connects to the database container.\n\n```bash\ndocker run -d \\\n--name=lychee \\\n-v /host_path/lychee/conf:/conf \\\n-v /host_path/lychee/uploads:/uploads \\\n-v /host_path/lychee/sym:/sym \\\n-e PUID=1000 \\\n-e PGID=1000 \\\n-e PHP_TZ=America/New_York \\\n-e TIMEZONE=America/New_York \\\n-e DB_CONNECTION=mysql \\\n-e DB_HOST=mariadb \\\n-e DB_PORT=3306 \\\n-e DB_DATABASE=lychee \\\n-e DB_USERNAME=user \\\n-e DB_PASSWORD=password \\\n-p 90:80 \\\n--net network_name \\\n--link db_name \\\nlycheeorg/lychee\n```\n\n**Warning** : if you use a MySQL database, make sure to use the `mysql_native_password` authentication plugin, either by using the `--default-authentication-plugin` option when starting mysql, or by running a query to enable the authentication plugin for the `lychee` user, e.g. :\n\n```\nalter user 'lychee' identified with mysql_native_password by '\u003cyour password\u003e';\n```\n\n### Run with Docker Compose\n\nYou can take the provided docker-compose.yml example as a start and edit it to enable more configuration variables.\n\nUse the `.env.exanple` to create a `.env` at the root of your folder containing your `docker-compose.yml`.\nPopulate your database credentials and other environment variables.\n\nThis `.env` file will be loaded by docker compose and populate environment in the docker container.\nThose will then be injected in the Lychee configuration file (located in e.g. `lychee/config/.env`).\n\n![environment-loading.png](./environment-loading.png)\n\n:warning: If you later edit your `lychee/config/.env` file, restarting the container will overwrite those variables with the ones provided in your docker-compose `.env` file.\nFor this reason it is better to make your changes directly in `docker-compose.yml`/`.env` rather than in `lychee/config/.env` when the values are supported.\nPlease refer to the [inject.sh](https://github.com/LycheeOrg/Lychee/blob/master/inject.sh) script for more details.\n\n### Create admin account during first run\n\nWhen ADMIN_USER and ADMIN_PASSWORD (or ADMIN_PASSWORD_FILE) are set an admin user will be created with those credentials during the first run. Otherwise Lychee will prompt in the browser when first loaded.\n\n### Docker secrets\n\nAs an alternative to passing sensitive information via environment variables, _FILE may be appended to some of the environment variables, causing the initialization script to load the values for those variables from files present in the container. In particular, this can be used to load passwords from Docker secrets stored in /run/secrets/\u003csecret_name\u003e files.\n\nIf both the original variable and the _FILE (e.g. both DB_PASSWORD and DB_PASSWORD_FILE) are set, the original variable will be used.\n\nThe following _FILE variables are supported:\n\n* DB_PASSWORD_FILE\n* REDIS_PASSWORD_FILE \n* MAIL_PASSWORD_FILE\n* ADMIN_PASSWORD_FILE\n\n## Available environment variables and defaults\n\nIf you do not provide environment variables or `.env` file, Lychee's [example .env file](https://github.com/LycheeOrg/Lychee/blob/master/.env.example) will be used with some values already set by default inside the docker container.\n\nSome variables are specific to Docker, and the default values are :\n\n* `PUID=1000`\n* `PGID=1000`\n* `USER=lychee`\n* `PHP_TZ=UTC`\n* `STARTUP_DELAY=0`\n\nAdditionally, if `SKIP_PERMISSIONS_CHECKS` is set to \"yes\", the entrypoint script will not check or set the permissions of files and directories on startup. Users are strongly advised **against** using this option, and efforts have been made to keep the checks as fast as possible. Nonetheless, it may be suitable for some advanced use cases.\n\n[arm64-shield]: https://img.shields.io/badge/arm64-yes-success.svg?style=flat\n[amd64-shield]: https://img.shields.io/badge/amd64-yes-success.svg?style=flat\n[armv7-shield]: https://img.shields.io/badge/armv7-yes-success.svg?style=flat\n[build-status-shield]: https://img.shields.io/github/actions/workflow/status/LycheeOrg/Lychee-Docker/nightly.yml?label=nightly\n[docker-pulls-shield-old]: https://img.shields.io/docker/pulls/lycheeorg/lychee-laravel.svg?style=flat\u0026label=Docker%20Pulls%20(lychee-laravel)\n[docker-pulls-shield]: https://img.shields.io/docker/pulls/lycheeorg/lychee.svg?style=flat\u0026label=Docker%20Pulls%20(lychee)\n[lychee-version-shield]: https://img.shields.io/docker/v/lycheeorg/lychee/latest?style=flat\u0026label=Lychee%20Version%20(:latest)\n[last-commit-shield]: https://img.shields.io/github/last-commit/LycheeOrg/Lychee-Docker.svg?style=flat\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flycheeorg%2Flychee-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flycheeorg%2Flychee-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flycheeorg%2Flychee-docker/lists"}