64 lines
1.8 KiB
YAML
64 lines
1.8 KiB
YAML
services:
|
|
|
|
app:
|
|
image: monica
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
- APP_KEY=${APP_KEY}
|
|
- DB_HOST=db
|
|
- DB_USERNAME=monica
|
|
- DB_PASSWORD=${DB_PASSWORD}
|
|
- APP_ENV=production
|
|
- APP_URL=https://${URL}
|
|
- MAIL_MAILER=smtp
|
|
- MAIL_HOST=smtp.mailgun.org
|
|
- MAIL_PORT=587 # is using tls, as you should
|
|
- MAIL_USERNAME=${SMTP_USERNAME}
|
|
- MAIL_PASSWORD=${SMTP_PASSWORD}
|
|
- MAIL_ENCRYPTION=tls
|
|
- MAIL_FROM_ADDRESS=${SMTP_USERNAME}
|
|
- MAIL_FROM_NAME=Monica # ex: name of the sender
|
|
volumes:
|
|
- ./data/app:/var/www/html/storage
|
|
restart: always
|
|
|
|
db:
|
|
image: mysql:5.7
|
|
environment:
|
|
- MYSQL_RANDOM_ROOT_PASSWORD=true
|
|
- MYSQL_DATABASE=monica
|
|
- MYSQL_USER=monica
|
|
- MYSQL_PASSWORD=${DB_PASSWORD}
|
|
volumes:
|
|
- ./data/mysql:/var/lib/mysql
|
|
restart: always
|
|
|
|
tailscale:
|
|
hostname: ${TS_HOSTNAME} # This will become the tailscale device name
|
|
image: tailscale/tailscale:stable
|
|
volumes:
|
|
- ./data/tailscale:/tailscale # State data will be stored in this directory
|
|
- /dev/net/tun:/dev/net/tun # Required for tailscale to work
|
|
- ./data/tailscale.tmp:/tmp
|
|
cap_add: # Required for tailscale to work
|
|
- net_admin
|
|
- sys_module
|
|
environment:
|
|
TS_HOSTNAME: ${TS_HOSTNAME}
|
|
TS_AUTHKEY: ${TS_AUTHKEY}
|
|
TS_AUTH_ONCE: true
|
|
TS_STATE_DIR: /tailscale
|
|
restart: unless-stopped
|
|
|
|
caddy:
|
|
image: caddy:alpine
|
|
network_mode: service:tailscale
|
|
volumes:
|
|
- ./data/caddy_data:/data
|
|
- ./data/tailscale.tmp:/var/run/tailscale
|
|
command: caddy reverse-proxy --from ${URL} --to app:80
|
|
depends_on:
|
|
- tailscale
|
|
- app
|
|
restart: unless-stopped |