services: db: image: mysql:8.4 restart: always environment: MYSQL_ROOT_PASSWORD: myfinrootpassword MYSQL_DATABASE: myfin MYSQL_USER: myfin MYSQL_PASSWORD: myfinpassword ports: - "${DB_PORT:-3406}:3306" volumes: - db_data:/var/lib/mysql healthcheck: test: [ "CMD", "mysqladmin", "ping", "--silent" ] interval: 5s timeout: 3s retries: 20 start_period: 5s myfin-api: restart: unless-stopped build: context: . dockerfile: Dockerfile ports: - "8081:3001" environment: # Database Configuration - DB_NAME=myfin - DB_USER=myfin - DB_PW=myfinpassword - DB_PORT=3306 - DB_HOST=db # Email Configuration - SMTP_HOST= - SMTP_PORT= - SMTP_SECURE= - SMTP_USER= - SMTP_PASSWORD= - SMTP_FROM= # Application Configuration - PORT=3001 - LOGGING=false - BYPASS_SESSION_CHECK=false - ENABLE_USER_SIGNUP=false # Reverse proxy trust for Express # - TRUST_PROXY=1 trusts the first proxy hop (Traefik / Nginx proxy in front) # - Override with other values as needed (see README/.env.example) - TRUST_PROXY=1 depends_on: db: condition: service_healthy phpmyadmin: image: phpmyadmin/phpmyadmin links: - db environment: PMA_HOST: db PMA_PORT: 3306 PMA_ARBITRARY: 1 ports: - "8183:80" volumes: db_data: