Skip to content

Commit eb45b30

Browse files
committed
more documentation
1 parent 7e0160d commit eb45b30

2 files changed

Lines changed: 22 additions & 81 deletions

File tree

docs/docker.md

Lines changed: 21 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -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

4529
The 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-
9633
Start the services:
9734

9835
```bash
@@ -155,21 +92,19 @@ Common environment variables:
15592
environment:
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
167103
environment:
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

285220
For 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
302239
secrets:
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

313252
Supported `_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
476416
6. **Restrict network access** using Docker networks
477417
7. **Use specific version tags** instead of `latest` in production for reproducible deployments
478418

479-
## Example: Complete Production Setup
419+
<!-- ## Example: Complete Production Setup
480420

481421
A 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. -->

docs/upgrade.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,7 @@ services:
375375
# - ./conf/user.css:/app/public/dist/user.css
376376
# - ./conf/custom.js:/app/public/dist/custom.js
377377
environment:
378+
- APP_KEY=base64:YOUR_APP_KEY_HERE # Generate it with `openssl rand -base64 32`
378379
- DB_CONNECTION=mysql
379380
- DB_HOST=lychee_db
380381
- DB_PORT=3306

0 commit comments

Comments
 (0)