47 lines
1.1 KiB
YAML
47 lines
1.1 KiB
YAML
services:
|
|
cert-gen:
|
|
image: alpine:latest
|
|
volumes:
|
|
- tls-certs:/etc/nginx/ssl
|
|
command: |
|
|
sh -c '
|
|
apk add --no-cache openssl &&
|
|
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \
|
|
-keyout /etc/nginx/ssl/key.pem \
|
|
-out /etc/nginx/ssl/cert.pem \
|
|
-subj "/CN=nginx" &&
|
|
chmod 644 /etc/nginx/ssl/cert.pem /etc/nginx/ssl/key.pem
|
|
'
|
|
|
|
nginx:
|
|
image: nginx:latest
|
|
depends_on:
|
|
cert-gen:
|
|
condition: service_completed_successfully
|
|
xray-server:
|
|
condition: service_started
|
|
volumes:
|
|
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- tls-certs:/etc/nginx/ssl:ro
|
|
|
|
xray-server:
|
|
image: ghcr.io/xtls/xray-core:latest
|
|
volumes:
|
|
- ./config/server.json:/etc/xray/config.json:ro
|
|
command: run -c /etc/xray/config.json
|
|
ports:
|
|
- 127.0.0.1:1443:443
|
|
|
|
xray-client:
|
|
image: ghcr.io/xtls/xray-core:latest
|
|
depends_on:
|
|
- nginx
|
|
volumes:
|
|
- ./config/client.json:/etc/xray/config.json:ro
|
|
ports:
|
|
- 127.0.0.1:4343:4343
|
|
command: run -c /etc/xray/config.json
|
|
|
|
volumes:
|
|
tls-certs:
|