I had some troubles running whatsapp-web.js@1.23.0 here so I might as well share how I solved things.
- Make sure your machine has at least 1024MB of RAM otherwise OOM kills will be common: 
fly scale memory 1024 -a APP_NAME. - Create a 1GB volume for your machine and mount it (I’ve mounted mine at 
/data). - Use LocalAuth strategy.
 - Use 
fly logs -a APP_NAMEto see the QR Code. 
The major pain was LocalAuth. I tried LocalAuth({ dataPath: '/data/whatsapp-data' }) where /data was were my volume was mounted but it simply ignored therefor every time my machine restarted or I deploy it I had to do the QR Code again. So I did this to fix:
- Setup the QR code once.
 fly ssh console -a APP_NAMEthen check that your app folder contains awhatsapp-datafolder:mv whatsapp-data /data/whatsapp-dataso you persist it- Change your dockerfile like this:
 
--- a/Dockerfile
+++ b/Dockerfile
@@ -42,4 +42,4 @@ COPY --from=build /app /app
 # Start the server by default, this can be overwritten at runtime
 EXPOSE 3000
 ENV PUPPETEER_EXECUTABLE_PATH="/usr/bin/chromium"
-CMD [ "npm", "run", "start" ]
+CMD [ "./prod_start.sh" ]
- Create a 
prod_start.shfile on your root. 
ln -s /data/whatsapp-data /app/whatsapp-data
npm start
- 
chmod +x prod_start.sh - 
fly deploy 
You don’t need to do the QR Code anymore