seqeralabs / nf-tower

Nextflow Tower system

Home Page:https://tower.nf

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to set up SMTP server in nf-tower local version?

rolivella opened this issue · comments

Hi, I'm trying to install nf-tower locally. I almost finished but I got stucked in the SMTP config. First of all it surprises me that this configuration is a must, I think that it should be optional. But anyway, I don't know where exactly I have to declare this variable:

TOWER_SMTP_USER: The SMTP user name.

So when I make run I get this error:

backend_1 | Message: Could not resolve placeholder ${TOWER_SMTP_USER}

I edited /tower-backend/build/resources/main/application.yml with user: "${TOWER_SMTP_USER:test}" but I get the same error.

Any idea? Thanks!

All the error log:

docker-compose up
Starting nf-tower_backend_1 ... done
Starting nf-tower_frontend_1 ... done
Attaching to nf-tower_backend_1, nf-tower_frontend_1
frontend_1  | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
frontend_1  | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
frontend_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
frontend_1  | 10-listen-on-ipv6-by-default.sh: info: IPv6 listen already enabled
frontend_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
frontend_1  | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
frontend_1  | /docker-entrypoint.sh: Configuration complete; ready for start up
backend_1   | 09:36:41.164 [main] INFO  io.seqera.tower.Application - ++ Tower backend starting ++ System: Linux 5.15.0-46-generic; Runtime: Groovy 2.5.8 on OpenJDK 64-Bit Server VM 1.8.0_252-b09; Encoding: ANSI_X3.4-1968 (ANSI_X3.4-1968); 
backend_1   | 09:36:41.542 [main] WARN  i.m.context.env.DefaultEnvironment - Unable to load properties file: tower
backend_1   | 09:36:42.603 [main] INFO  i.m.c.h.g.HibernateDatastoreFactory - Starting GORM for Hibernate
backend_1   | 09:36:44.553 [main] INFO  org.hibernate.Version - HHH000412: Hibernate Core {5.4.10.Final}
backend_1   | 09:36:44.689 [main] INFO  o.h.validator.internal.util.Version - HV000001: Hibernate Validator 6.0.18.Final
backend_1   | 09:36:44.714 [main] INFO  o.h.v.i.engine.ConfigurationImpl - HV000002: Ignoring XML configuration.
backend_1   | 09:36:44.980 [main] INFO  o.h.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.0.Final}
backend_1   | 09:36:45.132 [main] INFO  org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.H2Dialect
backend_1   | 09:36:48.160 [main] INFO  o.h.v.i.engine.ConfigurationImpl - HV000002: Ignoring XML configuration.
backend_1   | 09:36:49.689 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Error instantiating bean of type  [io.seqera.tower.service.mail.MailServiceImpl]
backend_1   | 
backend_1   | Message: Could not resolve placeholder ${TOWER_SMTP_USER}
backend_1   | Path Taken: ApplicationListener.setDispatcher([ApplicationEventDispatcher dispatcher]) --> ApplicationEventDispatcherImpl.setEventPublisher([AuditEventPublisher eventPublisher]) --> AuditEventPublisher.setMailService([MailService mailService]) --> MailServiceImpl.setConfig([MailerConfig config])
backend_1   | io.micronaut.context.exceptions.BeanInstantiationException: Error instantiating bean of type  [io.seqera.tower.service.mail.MailServiceImpl]
backend_1   | 
backend_1   | Message: Could not resolve placeholder ${TOWER_SMTP_USER}
backend_1   | Path Taken: ApplicationListener.setDispatcher([ApplicationEventDispatcher dispatcher]) --> ApplicationEventDispatcherImpl.setEventPublisher([AuditEventPublisher eventPublisher]) --> AuditEventPublisher.setMailService([MailService mailService]) --> MailServiceImpl.setConfig([MailerConfig config])
backend_1   | 	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1719)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:1587)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:871)
backend_1   | 	at io.seqera.tower.service.mail.$MailServiceImplDefinition.injectBean(Unknown Source)
backend_1   | 	at io.seqera.tower.service.mail.$MailServiceImplDefinition.build(Unknown Source)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:1587)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:871)
backend_1   | 	at io.seqera.tower.service.audit.$AuditEventPublisherDefinition.injectBean(Unknown Source)
backend_1   | 	at io.seqera.tower.service.audit.$AuditEventPublisherDefinition.build(Unknown Source)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:1587)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:871)
backend_1   | 	at io.seqera.tower.events.$ApplicationEventDispatcherImplDefinition.injectBean(Unknown Source)
backend_1   | 	at io.seqera.tower.events.$ApplicationEventDispatcherImplDefinition.build(Unknown Source)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:1095)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:1587)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getBeanForMethodArgument(AbstractBeanDefinition.java:871)
backend_1   | 	at io.seqera.tower.events.$ApplicationListenerDefinition.injectBean(Unknown Source)
backend_1   | 	at io.seqera.tower.events.$ApplicationListenerDefinition.build(Unknown Source)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.createAndRegisterSingleton(DefaultBeanContext.java:2402)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanForDefinition(DefaultBeanContext.java:2084)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBeanInternal(DefaultBeanContext.java:2058)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.getBean(DefaultBeanContext.java:618)
backend_1   | 	at io.micronaut.context.DefaultBeanContext$BeanExecutionHandle.getTarget(DefaultBeanContext.java:2968)
backend_1   | 	at io.micronaut.context.DefaultBeanContext$BeanExecutionHandle.invoke(DefaultBeanContext.java:2989)
backend_1   | 	at io.micronaut.aop.chain.AdapterIntroduction.intercept(AdapterIntroduction.java:81)
backend_1   | 	at io.micronaut.aop.chain.MethodInterceptorChain.proceed(MethodInterceptorChain.java:69)
backend_1   | 	at io.seqera.tower.events.ApplicationListener$ApplicationEventListener$onStartup1$Intercepted.onApplicationEvent(Unknown Source)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.publishEvent(DefaultBeanContext.java:1145)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.start(DefaultBeanContext.java:219)
backend_1   | 	at io.micronaut.context.DefaultApplicationContext.start(DefaultApplicationContext.java:188)
backend_1   | 	at io.micronaut.runtime.Micronaut.start(Micronaut.java:64)
backend_1   | 	at io.micronaut.runtime.Micronaut.run(Micronaut.java:294)
backend_1   | 	at io.micronaut.runtime.Micronaut.run(Micronaut.java:280)
backend_1   | 	at io.seqera.tower.Application.main(Application.groovy:40)
backend_1   | Caused by: io.micronaut.context.exceptions.ConfigurationException: Could not resolve placeholder ${TOWER_SMTP_USER}
backend_1   | 	at io.micronaut.context.env.DefaultPropertyPlaceholderResolver$PlaceholderSegment.getValue(DefaultPropertyPlaceholderResolver.java:283)
backend_1   | 	at io.micronaut.context.env.DefaultPropertyPlaceholderResolver.resolveRequiredPlaceholders(DefaultPropertyPlaceholderResolver.java:95)
backend_1   | 	at io.micronaut.context.env.PropertySourcePropertyResolver.resolvePlaceHoldersIfNecessary(PropertySourcePropertyResolver.java:706)
backend_1   | 	at io.micronaut.context.env.PropertySourcePropertyResolver.resolveSubMap(PropertySourcePropertyResolver.java:453)
backend_1   | 	at io.micronaut.context.env.PropertySourcePropertyResolver.resolveSubMap(PropertySourcePropertyResolver.java:425)
backend_1   | 	at io.micronaut.context.env.PropertySourcePropertyResolver.getProperty(PropertySourcePropertyResolver.java:297)
backend_1   | 	at io.micronaut.context.DefaultApplicationContext.getProperty(DefaultApplicationContext.java:208)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.resolveValue(AbstractBeanDefinition.java:1612)
backend_1   | 	at io.micronaut.context.AbstractBeanDefinition.getValueForMethodArgument(AbstractBeanDefinition.java:785)
backend_1   | 	at io.seqera.mail.$MailerConfigDefinition.injectBean(Unknown Source)
backend_1   | 	at io.seqera.mail.$MailerConfigDefinition.build(Unknown Source)
backend_1   | 	at io.micronaut.context.DefaultBeanContext.doCreateBean(DefaultBeanContext.java:1693)
backend_1   | 	... 52 common frames omitted
nf-tower_backend_1 exited with code 1

I think that I was editing the wrong YML. The right one is tower-backend/src/main/resources/application.yml and now is working.