504 error - cloudflare is host

Yes, correct.

When I bypass Cloudflare and connect directly to your server, I still see the 504 error, so you will have to find the error with the hosting provider, which is Digital Ocean.

curl -svo /dev/null https://perfectpicturelights.com --connect-to ::68.183.25.235
* Connecting to hostname: 68.183.25.235
*   Trying 68.183.25.235:443...
* Connected to (nil) (68.183.25.235) port 443 (#0)

...

* Server certificate:
*  subject: CN=perfectpicturelights.com
*  start date: Apr 18 18:43:13 2024 GMT
*  expire date: Jul 17 18:43:12 2024 GMT
*  subjectAltName: host "perfectpicturelights.com" matched cert's "perfectpicturelights.com"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.

...

> GET / HTTP/2
> Host: perfectpicturelights.com
> user-agent: curl/7.81.0
> accept: */*
>

...

< HTTP/2 504
< server: nginx
< date: Wed, 24 Apr 2024 17:30:15 GMT
< content-type: text/html; charset=utf-8
< content-length: 160
<
{ [160 bytes data]
* Connection #0 to host (nil) left intact