Digital Ocean Deployment documentation not working

System Information
  • Strapi Version: 4.6.1
  • Operating System: Ubuntu 22.04 (LTS) x64
  • Database: postgresQL
  • Node Version: 18.17.1
  • NPM Version: 9.6.7
  • Yarn Version: N/A

Following the official deployment guide for digital ocean does not work. I have repeatably ran into issues with postgres being unable to start due to the postgres authentication being based on the user and not based on the password. I am not using the default postgres user, but have instead set up a different user which maps to a relevant postgres user and database. I have followed the installation guide here: DigitalOcean Droplet Deployment | Strapi Documentation to the point where I am trying to run pm2. Here is the error log:

0|strapi-app  | > hglc-cms@0.1.0 start
0|strapi-app  | > strapi start
0|strapi-app  | [2023-11-05 03:29:50.351] debug: ⛔️ Server wasn't able to start properly.
0|strapi-app  | [2023-11-05 03:29:50.354] error: password authentication failed for user "hglc-dev # specified during database setup"
0|strapi-app  | error: password authentication failed for user "hglc-dev # specified during database setup"
0|strapi-app  |     at Parser.parseErrorMessage (/var/www/{nginx_server_host}/{app_directory}/node_modules/pg-protocol/dist/parser.js:287:98)
0|strapi-app  |     at Parser.handlePacket (/var/www/{nginx_server_host}/{app_directory}/node_modules/pg-protocol/dist/parser.js:126:29)
0|strapi-app  |     at Parser.parse (/var/www/{nginx_server_host}/{app_directory}/node_modules/pg-protocol/dist/parser.js:39:38)
0|strapi-app  |     at Socket.<anonymous> (/var/www/{nginx_server_host}/{app_directory}/node_modules/pg-protocol/dist/index.js:11:42)
0|strapi-app  |     at Socket.emit (node:events:514:28)
0|strapi-app  |     at Socket.emit (node:domain:489:12)
0|strapi-app  |     at addChunk (node:internal/streams/readable:324:12)
0|strapi-app  |     at readableAddChunk (node:internal/streams/readable:297:9)
0|strapi-app  |     at Readable.push (node:internal/streams/readable:234:10)
0|strapi-app  |     at TCP.onStreamRead (node:internal/stream_base_commons:190:23)
PM2           | App [strapi-app:0] exited with code [1] via signal [SIGINT]
PM2           | App [strapi-app:0] starting in -fork mode-
PM2           | App [strapi-app:0] online

On a side note, I have been an advocate for Strapi for quite a while (4+ years) but the way this currently stands I have trouble recommending this CMS to my friends and co-workers. I remember the one-click droplet was somewhat easier, but still required a level of devops knowledge that I was uncomfortable with. Now, what should be a couple hour process at most, has turned into a full day (minimum) task, with dozens of steps. It is exhausting.

Update on this:

I was able to get this working by going into postgres as the user, adding a password for that user, and then adding that into the .env file for the strapi instance running on that server.