I use a self-hosted Monica instance to keep on top of birthdays and other useful/interesting notes about friends and family.
This note documents my setup.
version: "3.4" services: monica: image: monica:latest depends_on: - monicadb environment: - APP_KEY=CHANGEME - DB_HOST=monicadb - APP_ENV=nonprod # See note below - APP_URL=http://CHANGEME - APP_TRUSTED_PROXIES=* - MAIL_DRIVER=smtp - MAIL_HOST=CHANGEME - MAIL_PORT=587 - MAIL_USERNAME=CHANGEME - MAIL_PASSWORD=CHANGEME - MAIL_ENCRYPTION=tls - MAIL_FROM_ADDRESS=CHANGEME - MAIL_FROM_NAME=Monica volumes: - ./monica_data:/var/www/html/storage restart: always ports: - 8082:80 monicadb: image: mysql:5.7 environment: - MYSQL_RANDOM_ROOT_PASSWORD=true - MYSQL_DATABASE=monica - MYSQL_USER=homestead - MYSQL_PASSWORD=CHANGEME volumes: - ./mysql:/var/lib/mysql restart: always
When running with
APP_ENV=production, Monica enforces HTTPS connections. I run Monica in my Tailscale network without TLS certificates, and so I run Monica in
nonprod (which I made up) mode to allow this to work.
As far as I can tell, everything still seems to work OK.
If you run Monica behind a reverse-proxy for which you can configure TLS certficates, you can leave this as
Using the app
Bring the service up and navigate to the address you gave it to get started.