@@ -24,75 +24,12 @@ The following tags are available:
2424
2525## Quick Start
2626
27- ### Basic Setup with SQLite
28-
29- For the simplest setup using the built-in SQLite support:
30-
31- ``` bash
32- docker run -d \
33- --name=lychee \
34- -p 8000:8000 \
35- -v ./lychee/uploads:/app/public/uploads \
36- -v ./lychee/database:/app/database/database.sqlite \
37- -v ./lychee/storage/app:/app/storage/app \
38- ghcr.io/lycheeorg/lychee:latest
39- ```
40-
41- Then visit ` http://localhost:8000 ` to complete the installation.
42-
4327### Docker Compose (Recommended)
4428
4529The recommended way to deploy Lychee is with Docker Compose. Use the official template as a starting point:
4630
4731[ https://github.com/LycheeOrg/Lychee/blob/master/docker-compose.yaml ] ( https://github.com/LycheeOrg/Lychee/blob/master/docker-compose.yaml )
4832
49- Basic example with MySQL database:
50-
51- ``` yaml
52- version : ' 3'
53-
54- services :
55- lychee_db :
56- image : mariadb:11
57- container_name : lychee_db
58- environment :
59- - MYSQL_ROOT_PASSWORD=rootpassword
60- - MYSQL_DATABASE=lychee
61- - MYSQL_USER=lychee
62- - MYSQL_PASSWORD=lychee
63- volumes :
64- - ./lychee/mysql:/var/lib/mysql
65- networks :
66- - lychee
67-
68- lychee :
69- image : ghcr.io/lycheeorg/lychee:latest
70- container_name : lychee
71- ports :
72- - " 8000:8000"
73- volumes :
74- - ./lychee/uploads:/app/public/uploads
75- - ./lychee/storage/app:/app/storage/app
76- - ./lychee/logs:/app/storage/logs
77- - ./lychee/tmp:/app/storage/tmp
78- - ./lychee/conf/.env:/app/.env:ro
79- environment :
80- - DB_CONNECTION=mysql
81- - DB_HOST=lychee_db
82- - DB_PORT=3306
83- - DB_DATABASE=lychee
84- - DB_USERNAME=lychee
85- - DB_PASSWORD=lychee
86- - TIMEZONE=America/New_York
87- depends_on :
88- - lychee_db
89- networks :
90- - lychee
91-
92- networks :
93- lychee :
94- ` ` `
95-
9633Start the services:
9734
9835``` bash
@@ -155,21 +92,19 @@ Common environment variables:
15592environment :
15693 - APP_URL=http://localhost:8000 # Your public URL
15794 - APP_DEBUG=false # Enable debug mode (development only)
95+ - APP_KEY=base64:YOUR_APP_KEY_HERE # Application encryption key (generate with `php artisan key:generate --show` or use `openssl rand -base64 32`)
15896 - TIMEZONE=UTC # Server timezone
15997 - LOG_CHANNEL=stack # Logging channel
16098` ` `
16199
162- ### Docker-Specific Variables (Legacy Image)
163-
164- These variables are specific to the legacy nginx + PHP-FPM image:
100+ For the access rights.
165101
166102` ` ` yaml
167103environment :
168104 - PUID=1000 # User ID for file permissions
169105 - PGID=1000 # Group ID for file permissions
170- - USER=lychee # Username
171106 - PHP_TZ=UTC # PHP timezone
172- - STARTUP_DELAY=0 # Delay before starting services
107+ # - RUN_AS_ROOT=yes # Run PHP processes as root (yes/no), disabled by default for security
173108```
174109
175110## Advanced Features
@@ -280,7 +215,7 @@ lychee_worker_2:
280215 # ... rest of configuration
281216` ` `
282217
283- # ## Docker Secrets [TODO DOUBLE CHECK]
218+ # ## Docker Secrets
284219
285220For sensitive information, use Docker secrets instead of environment variables :
286221
@@ -290,30 +225,35 @@ services:
290225 image: ghcr.io/lycheeorg/lychee:latest
291226 environment:
292227 - DB_PASSWORD_FILE=/run/secrets/db_password
293- - REDIS_PASSWORD_FILE=/run/secrets/redis_password
294- - MAIL_PASSWORD_FILE=/run/secrets/mail_password
228+ - APP_KEY_FILE=/run/secrets/app_key
229+ # - REDIS_PASSWORD_FILE=/run/secrets/redis_password
230+ # - MAIL_PASSWORD_FILE=/run/secrets/mail_password
295231 - ADMIN_PASSWORD_FILE=/run/secrets/admin_password
296232 secrets:
297233 - db_password
298- - redis_password
299- - mail_password
234+ - app_key
235+ # - redis_password
236+ # - mail_password
300237 - admin_password
301238
302239secrets:
240+ app_key:
241+ file: ./secrets/app_key.txt
303242 db_password:
304243 file: ./secrets/db_password.txt
305- redis_password:
306- file: ./secrets/redis_password.txt
307- mail_password:
308- file: ./secrets/mail_password.txt
244+ # redis_password:
245+ # file: ./secrets/redis_password.txt
246+ # mail_password:
247+ # file: ./secrets/mail_password.txt
309248 admin_password:
310249 file: ./secrets/admin_password.txt
311250` ` `
312251
313252Supported `_FILE` variables :
253+ - ` APP_KEY_FILE`
314254- ` DB_PASSWORD_FILE`
315- - ` REDIS_PASSWORD_FILE`
316- - ` MAIL_PASSWORD_FILE`
255+ <!-- - `REDIS_PASSWORD_FILE` -->
256+ <!-- - `MAIL_PASSWORD_FILE` -->
317257- ` ADMIN_PASSWORD_FILE`
318258
319259# # Configuration Management
@@ -476,7 +416,7 @@ These improvements are automatic when using Version 7 - no additional configurat
4764166. **Restrict network access** using Docker networks
4774177. **Use specific version tags** instead of `latest` in production for reproducible deployments
478418
479- # # Example: Complete Production Setup
419+ <!-- # # Example: Complete Production Setup
480420
481421A complete production-ready setup with MySQL, Redis, workers, and TLS :
482422
@@ -583,4 +523,4 @@ secrets:
583523 file: ./secrets/mysql_password.txt
584524` ` `
585525
586- Run behind a reverse proxy (nginx, Traefik, or Caddy) to handle TLS termination and expose the service on port 443.
526+ Run behind a reverse proxy (nginx, Traefik, or Caddy) to handle TLS termination and expose the service on port 443. -->
0 commit comments