diff --git a/.env b/.env index 630b323..dbc21f7 100644 --- a/.env +++ b/.env @@ -1 +1,27 @@ -# Template \ No newline at end of file +MEMORY_LIMIT=256M +MAX_INPUT_VARS=1000 +UPLOAD_MAX_SIZE=16M +OPCACHE_MEM_SIZE=128 +REAL_IP_FROM=0.0.0.0/32 +REAL_IP_HEADER=X-Forwarded-For +LOG_IP_VAR=http_x_forwarded_for + +CACHE_DRIVER=redis +SESSION_DRIVER=redis +REDIS_HOST=redis + +LIBRENMS_SNMP_COMMUNITY=librenmsdocker + +LIBRENMS_WEATHERMAP=false +LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * + +# https://github.com/crazy-max/docker-msmtpd +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_TLS=on +SMTP_STARTTLS=on +SMTP_TLS_CHECKCERT=on +SMTP_AUTH=on +SMTP_USER=foo +SMTP_PASSWORD=bar +SMTP_FROM=foo@gmail.com diff --git a/docker-compose.yml b/docker-compose.yml index 4054566..2686993 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ networks: traefik_front_network: external: true - back_network_: + back_network_librenms: driver: bridge attachable: true @@ -15,9 +15,7 @@ services: image: hello-world environment: restart: always - networks: -# - back_network_gitea - - traefik_front_network + volumes: labels: - "traefik.enable=true" @@ -39,4 +37,171 @@ services: # - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.hostname=gitea.traefik.me" # - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.method=foobar" # - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.timeout=10" -# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.interval=30" + + db: + container_name: librenms-db + hostname: librenms-db + image: mariadb:10 + command: + - "mysqld" + - "--innodb-file-per-table=1" + - "--lower-case-table-names=0" + - "--character-set-server=utf8mb4" + - "--collation-server=utf8mb4_unicode_ci" + volumes: + - "./db:/var/lib/mysql" + networks: + - back_network_librenms + - traefik_front_network + environment: + - "TZ=${TZ}" + - "MARIADB_RANDOM_ROOT_PASSWORD=yes" + - "MYSQL_DATABASE=${MYSQL_DATABASE}" + - "MYSQL_USER=${MYSQL_USER}" + - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" + restart: always + + redis: + container_name: librenms-redis + hostname: librenms-redis + image: redis:7.2-alpine + networks: + - back_network_librenms + environment: + - "TZ=${TZ}" + restart: always + + msmtpd: + container_name: librenms-msmtpd + hostname: librenms-msmtpd + image: crazymax/msmtpd:latest + networks: + - back_network_librenms + - traefik_front_network +# env_file: +# - "./msmtpd.env" + restart: always + + librenms: + container_name: librenms-app + hostname: librenms-app + image: librenms/librenms:latest + depends_on: + - db + - redis + - msmtpd + volumes: + - "./librenms:/data" + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik_front_network" +# HTTP + - "traefik.http.routers.librenms-http.rule=Host(`librenms.tips-of-mine.com`)" + - "traefik.http.routers.librenms-http.entrypoints=http" + - "traefik.http.routers.librenms-http.priority=49" +# HTTPS + - "traefik.http.routers.librenms-https.rule=Host(`librenms.tips-of-mine.com`)" + - "traefik.http.routers.librenms-https.entrypoints=https" + - "traefik.http.routers.librenms-https.tls=true" + - "traefik.http.routers.librenms-https.priority=50" + - "traefik.http.routers.librenms.service=librenms-https-service" +# Middleware +# Service + - "traefik.http.services.librenms-https-service.loadbalancer.server.port=8000" + networks: + - back_network_librenms + - traefik_front_network + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + restart: always + + dispatcher: + container_name: librenms-dispatcher + hostname: librenms-dispatcher + image: librenms/librenms:latest + depends_on: + - librenms + - redis + volumes: + - "./librenms:/data" + networks: + - back_network_librenms + - traefik_front_network + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "DISPATCHER_NODE_ID=dispatcher1" + - "SIDECAR_DISPATCHER=1" + restart: always + + syslogng: + container_name: librenms-syslog + hostname: librenms-syslog + image: librenms/librenms:latest + depends_on: + - librenms + - redis + ports: + - target: 514 + published: 514 + protocol: tcp + - target: 514 + published: 514 + protocol: udp + volumes: + - "./librenms:/data" + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SYSLOGNG=1" + restart: always + + snmptrapd: + container_name: librenms-snmptrapd + hostname: librenms-snmptrapd + image: librenms/librenms:latest + depends_on: + - librenms + - redis + ports: + - target: 162 + published: 162 + protocol: tcp + - target: 162 + published: 162 + protocol: udp + volumes: + - "./librenms:/data" + networks: + - back_network_librenms + - traefik_front_network + environment: + - "TZ=${TZ}" + - "PUID=${PUID}" + - "PGID=${PGID}" + - "DB_HOST=db" + - "DB_NAME=${MYSQL_DATABASE}" + - "DB_USER=${MYSQL_USER}" + - "DB_PASSWORD=${MYSQL_PASSWORD}" + - "DB_TIMEOUT=60" + - "SIDECAR_SNMPTRAPD=1" + restart: always