Reputation: 2741
I am trying to deploy Strapi on Heroku
But it does not work. I get this log
2020-05-27T15:04:05.012958+00:00 app[web.1]: > [email protected] start /app
2020-05-27T15:04:05.012959+00:00 app[web.1]: > node server.js
2020-05-27T15:04:05.012960+00:00 app[web.1]:
2020-05-27T15:04:08.188595+00:00 app[web.1]: (node:23) Warning: Accessing non-existent property 'count' of module exports inside circular dependency
2020-05-27T15:04:08.188639+00:00 app[web.1]: (Use `node --trace-warnings ...` to show where the warning was created)
2020-05-27T15:04:08.189164+00:00 app[web.1]: (node:23) Warning: Accessing non-existent property 'findOne' of module exports inside circular dependency
2020-05-27T15:04:08.189299+00:00 app[web.1]: (node:23) Warning: Accessing non-existent property 'remove' of module exports inside circular dependency
2020-05-27T15:04:08.189381+00:00 app[web.1]: (node:23) Warning: Accessing non-existent property 'updateOne' of module exports inside circular dependency
2020-05-27T15:04:12.308848+00:00 app[web.1]: [2020-05-27T15:04:12.308Z] error Error: listen EADDRNOTAVAIL: address not available 52.54.48.43:31639
2020-05-27T15:04:12.308857+00:00 app[web.1]: at Server.setupListenHandle [as _listen2] (net.js:1296:21)
2020-05-27T15:04:12.308858+00:00 app[web.1]: at listenInCluster (net.js:1361:12)
2020-05-27T15:04:12.308859+00:00 app[web.1]: at GetAddrInfoReqWrap.doListen [as callback] (net.js:1498:7)
2020-05-27T15:04:12.308859+00:00 app[web.1]: at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:68:8)
2020-05-27T15:04:22.927720+00:00 heroku[web.1]: Stopping all processes with SIGTERM
I use MongoDB on Atlas. It works well on localhost both dev and prod environment.
My production files:
server.js
database.js
response.js
app settings
Where did I miss something?
Upvotes: 2
Views: 2178
Reputation: 9692
Not sure if it's what @Rochadsouza meant, but I got the same error and what finally solved the issue in my case was to set the host to 0.0.0.0
. For some reasons, the host cannot be the app url, it needs to allow all hosts on Heroku. I was setting the host in server.js
using env('HOST', '0.0.0.0')
but had the HOST
env var set to my app url on Heroku...
Hope it saves some time to others facing the same error.
Upvotes: 1
Reputation: 2741
I had to change server.js file (port 443):
module.exports = ({ env }) => ({
host: env('HOST', '0.0.0.0'),
port: env.int('PORT', 443),
admin: {
auth: {
secret: env('ADMIN_JWT_SECRET'),
},
},
});
My database.js file:
module.exports = ({ env }) => ({
defaultConnection: "default",
connections: {
default: {
connector: "mongoose",
settings: {
uri: env("DATABASE_URI"),
ssl: { rejectUnauthorized: false }
},
options: {
ssl: true,
authenticationDatabase: "",
useUnifiedTopology: true,
pool: {
min: 0,
max: 10,
idleTimeoutMillis: 30000,
createTimeoutMillis: 30000,
acquireTimeoutMillis: 30000
}
},
},
},
});
I hope it will help to somebody who has the same problem :-)
Upvotes: 1
Reputation: 978
Which is the value of process.env.HOST
. For some reason different from 0.0.0.0
(just a shot in the dark - https://strapi.io/documentation/3.0.0-beta.x/migration-guide/migration-guide-beta.19-to-beta.19.4.html#listened-host-changed)
Upvotes: 1