💾 Archived View for wilw.capsule.town › notes › monica.gmi captured on 2024-05-10 at 11:03:27. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-04-19)

-=-=-=-=-=-=-

🏡 Home

Back to notes

Monica

Last updated on 27 September 2022

I use a self-hosted Monica [1] instance to keep on top of birthdays and other useful/interesting notes about friends and family.

1

This note documents my setup.

Create a `docker-compose.yml` file:

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

Note on `APP_ENV`

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 `production`.

Using the app

Bring the service up and navigate to the address you gave it to get started.

Back to notes