Rollouts agent

rollouts2.d.jpfennell.com

github.com/jamespfennell/rollouts

Projects

rollouts1.d.jpfennell.com

github.com/jamespfennell/rollouts

Last failed 7 weeks ago.

No pending deployment.

Most recent deployments
Add list of agents when --mode=ui

Build #37. Failed 7 weeks ago.

Deployment logs
Pull
$ docker compose pull
 Image jamespfennell/rollouts:latest Pulling 
 09d83bf07dd8 Pulling fs layer 
 0b5c241e3e49 Pulling fs layer 
 48e3c4fbf06d Pulling fs layer 
 09d83bf07dd8 Downloading [========================>                          ]  1.049MB/2.176MB
 48e3c4fbf06d Downloading [==========================>                        ]  5.243MB/9.732MB
 0b5c241e3e49 Downloading [=========================================>         ]  13.75MB/16.65MB
 48e3c4fbf06d Download complete 
 85b48afc9d43 Download complete 
 09d83bf07dd8 Download complete 
 0b5c241e3e49 Download complete 
 0b5c241e3e49 Extracting 1 s
 48e3c4fbf06d Extracting 1 s
 0b5c241e3e49 Pull complete 
 48e3c4fbf06d Extracting 1 s
 48e3c4fbf06d Extracting 1 s
 48e3c4fbf06d Pull complete 
 09d83bf07dd8 Pull complete 
 Image jamespfennell/rollouts:latest Pulled 

Success
              
Redeploy
$ docker compose up -d rollouts1
 Container rollouts-d-rollouts1-1 Recreate 
 Container rollouts-d-rollouts1-1 Recreated 
 Container rollouts-d-rollouts1-1 Starting 
 Container rollouts-d-rollouts1-1 Started 

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.d.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.d.jpfennell.com --output /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host rollouts1.d.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 178.156.244.46
*   Trying 178.156.244.46:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1580 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [1210 bytes data]
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
{ [1 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3435 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [78 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.d.jpfennell.com
*  start date: Jun  7 19:03:39 2026 GMT
*  expire date: Sep  5 19:03:38 2026 GMT
*  subjectAltName: host "rollouts1.d.jpfennell.com" matched cert's "rollouts1.d.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=YE1
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 2: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 3: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to rollouts1.d.jpfennell.com (178.156.244.46) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.d.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.d.jpfennell.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.d.jpfennell.com
> User-Agent: curl/8.14.1
> Accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* Request completely sent off
{ [5 bytes data]
< HTTP/2 502 
< alt-svc: h3=":443"; ma=2592000
< server: Caddy
< content-length: 0
< date: Thu, 18 Jun 2026 22:20:53 GMT
< 
{ [0 bytes data]

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host rollouts1.d.jpfennell.com left intact
curl: (22) The requested URL returned error: 502

Failure
              
Fix UI when mode=agent

Build #36. Failed 7 weeks ago.

Deployment logs
Pull
$ docker compose pull
 Image jamespfennell/rollouts:latest Pulling 
 b9e6976e633d Pulling fs layer 
 4112db3a1701 Pulling fs layer 
 f68e5a583030 Pulling fs layer 
 b9e6976e633d Download complete 
 f68e5a583030 Download complete 
 ace57344990f Download complete 
 4112db3a1701 Downloading [==================================================>]  16.65MB/16.65MB
 4112db3a1701 Download complete 
 4112db3a1701 Extracting 1 s
 f68e5a583030 Extracting 1 s
 4112db3a1701 Pull complete 
 f68e5a583030 Extracting 1 s
 f68e5a583030 Extracting 1 s
 b9e6976e633d Pull complete 
 b9e6976e633d Pull complete 
 f68e5a583030 Pull complete 
 Image jamespfennell/rollouts:latest Pulled 

Success
              
Redeploy
$ docker compose up -d rollouts1
 Container rollouts-d-rollouts1-1 Recreate 
 Container rollouts-d-rollouts1-1 Recreated 
 Container rollouts-d-rollouts1-1 Starting 
 Container rollouts-d-rollouts1-1 Started 

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.d.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.d.jpfennell.com --output /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host rollouts1.d.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 178.156.244.46
*   Trying 178.156.244.46:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1580 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [1210 bytes data]
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
{ [1 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3435 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [79 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.d.jpfennell.com
*  start date: Jun  7 19:03:39 2026 GMT
*  expire date: Sep  5 19:03:38 2026 GMT
*  subjectAltName: host "rollouts1.d.jpfennell.com" matched cert's "rollouts1.d.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=YE1
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 2: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 3: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to rollouts1.d.jpfennell.com (178.156.244.46) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.d.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.d.jpfennell.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.d.jpfennell.com
> User-Agent: curl/8.14.1
> Accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* Request completely sent off
{ [5 bytes data]
< HTTP/2 502 
< alt-svc: h3=":443"; ma=2592000
< server: Caddy
< content-length: 0
< date: Thu, 18 Jun 2026 22:13:46 GMT
< 
{ [0 bytes data]

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host rollouts1.d.jpfennell.com left intact
curl: (22) The requested URL returned error: 502

Failure
              
UI overhaul

Build #35. Failed 7 weeks ago.

Deployment logs
Pull
$ docker compose pull
 Image jamespfennell/rollouts:latest Pulling 
 bc79ebae4364 Pulling fs layer 
 36db663f71b8 Pulling fs layer 
 ffd71dd4c6c3 Pulling fs layer 
 ef1b08ddd59d Pulling fs layer 
 ef1b08ddd59d Downloading [==>                                                ]  2.097MB/49.32MB
 bc79ebae4364 Download complete 
 ef1b08ddd59d Downloading [====================>                              ]  19.92MB/49.32MB
 ffd71dd4c6c3 Downloading [===============>                                   ]  3.076MB/9.732MB
 8ae082c76929 Download complete 
 ffd71dd4c6c3 Download complete 
 36db663f71b8 Downloading [==================>                                ]  6.291MB/16.65MB
 ef1b08ddd59d Downloading [===================================>               ]   34.6MB/49.32MB
 ef1b08ddd59d Download complete 
 36db663f71b8 Downloading [=========================================>         ]  13.82MB/16.65MB
 ef1b08ddd59d Extracting 1 s
 36db663f71b8 Download complete 
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Extracting 1 s
 ef1b08ddd59d Pull complete 
 36db663f71b8 Extracting 1 s
 ffd71dd4c6c3 Extracting 1 s
 36db663f71b8 Pull complete 
 ffd71dd4c6c3 Extracting 1 s
 ffd71dd4c6c3 Extracting 1 s
 ffd71dd4c6c3 Extracting 1 s
 bc79ebae4364 Extracting 1 s
 ffd71dd4c6c3 Pull complete 
 bc79ebae4364 Pull complete 
 Image jamespfennell/rollouts:latest Pulled 

Success
              
Redeploy
$ docker compose up -d rollouts1
 Container rollouts-d-rollouts1-1 Recreate 
 Container rollouts-d-rollouts1-1 Recreated 
 Container rollouts-d-rollouts1-1 Starting 
 Container rollouts-d-rollouts1-1 Started 

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.d.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.d.jpfennell.com --output /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host rollouts1.d.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 178.156.244.46
*   Trying 178.156.244.46:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1580 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [1210 bytes data]
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
{ [1 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [3435 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [80 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.d.jpfennell.com
*  start date: Jun  7 19:03:39 2026 GMT
*  expire date: Sep  5 19:03:38 2026 GMT
*  subjectAltName: host "rollouts1.d.jpfennell.com" matched cert's "rollouts1.d.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=YE1
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 2: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 3: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using ecdsa-with-SHA384
* Connected to rollouts1.d.jpfennell.com (178.156.244.46) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.d.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.d.jpfennell.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.d.jpfennell.com
> User-Agent: curl/8.14.1
> Accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* Request completely sent off
{ [5 bytes data]
< HTTP/2 502 
< alt-svc: h3=":443"; ma=2592000
< server: Caddy
< content-length: 0
< date: Thu, 18 Jun 2026 21:59:39 GMT
< 
{ [0 bytes data]

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
* Connection #0 to host rollouts1.d.jpfennell.com left intact
curl: (22) The requested URL returned error: 502

Failure
              
Fix GitHub rate limit bug

Build #34. Deployed 25 weeks ago.

Deployment logs
Pull
$ docker compose pull
 Image jamespfennell/rollouts:latest Pulling 
 6546c1e3b4ce Pulling fs layer 
 a012e3bc64f2 Pulling fs layer 
 3cbe79578828 Pulling fs layer 
 a012e3bc64f2 Downloading [===============>                                   ]  5.243MB/16.47MB
 3cbe79578828 Downloading [=====================>                             ]  4.194MB/9.721MB
 6546c1e3b4ce Download complete 
 a012e3bc64f2 Download complete 
 3cbe79578828 Download complete 
 2c18d2d15aaf Download complete 
 a012e3bc64f2 Extracting 1 s
 a012e3bc64f2 Extracting 1 s
 a012e3bc64f2 Pull complete 
 3cbe79578828 Extracting 1 s
 3cbe79578828 Extracting 1 s
 3cbe79578828 Extracting 1 s
 6546c1e3b4ce Pull complete 
 3cbe79578828 Pull complete 
 Image jamespfennell/rollouts:latest Pulled 

Success
              
Redeploy
$ docker compose up -d rollouts1
 Container rollouts-d-rollouts1-1 Recreate 
 Container rollouts-d-rollouts1-1 Recreated 
 Container rollouts-d-rollouts1-1 Starting 
 Container rollouts-d-rollouts1-1 Started 

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.d.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.d.jpfennell.com --output /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host rollouts1.d.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 178.156.244.46
*   Trying 178.156.244.46:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1580 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [1210 bytes data]
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
{ [1 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2071 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [79 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.d.jpfennell.com
*  start date: Feb  8 23:23:40 2026 GMT
*  expire date: May  9 23:23:39 2026 GMT
*  subjectAltName: host "rollouts1.d.jpfennell.com" matched cert's "rollouts1.d.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E7
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* Connected to rollouts1.d.jpfennell.com (178.156.244.46) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.d.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.d.jpfennell.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.d.jpfennell.com
> User-Agent: curl/8.14.1
> Accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* Request completely sent off
{ [5 bytes data]
< HTTP/2 200 
< alt-svc: h3=":443"; ma=2592000
< content-type: text/html; charset=UTF-8
< date: Mon, 09 Feb 2026 03:44:09 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< content-length: 15097
< 
} [5 bytes data]

100 15097  100 15097    0     0   620k      0 --:--:-- --:--:-- --:--:--  641k
* Connection #0 to host rollouts1.d.jpfennell.com left intact

Success
              
Add GitHub etag debugging

Build #33. Deployed 25 weeks ago.

Deployment logs
Pull
$ docker compose pull
 Image jamespfennell/rollouts:latest Pulling 
 d753285454a1 Pulling fs layer 
 708f69f5f4ed Pulling fs layer 
 b513af4fcd44 Pulling fs layer 
 d753285454a1 Download complete 
 708f69f5f4ed Downloading [======================================>            ]  12.58MB/16.47MB
 b513af4fcd44 Download complete 
 708f69f5f4ed Download complete 
 1f530a18bb73 Download complete 
 708f69f5f4ed Extracting 1 s
 708f69f5f4ed Extracting 1 s
 b513af4fcd44 Extracting 1 s
 708f69f5f4ed Pull complete 
 b513af4fcd44 Extracting 1 s
 b513af4fcd44 Extracting 1 s
 d753285454a1 Pull complete 
 b513af4fcd44 Pull complete 
 Image jamespfennell/rollouts:latest Pulled 

Success
              
Redeploy
$ docker compose up -d rollouts1
 Container rollouts-d-rollouts1-1 Recreate 
 Container rollouts-d-rollouts1-1 Recreated 
 Container rollouts-d-rollouts1-1 Starting 
 Container rollouts-d-rollouts1-1 Started 

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.d.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.d.jpfennell.com --output /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host rollouts1.d.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 178.156.244.46
*   Trying 178.156.244.46:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1580 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [1210 bytes data]
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
{ [1 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2071 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [80 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.d.jpfennell.com
*  start date: Feb  8 23:23:40 2026 GMT
*  expire date: May  9 23:23:39 2026 GMT
*  subjectAltName: host "rollouts1.d.jpfennell.com" matched cert's "rollouts1.d.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E7
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* Connected to rollouts1.d.jpfennell.com (178.156.244.46) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.d.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.d.jpfennell.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.d.jpfennell.com
> User-Agent: curl/8.14.1
> Accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* Request completely sent off
{ [5 bytes data]
< HTTP/2 200 
< alt-svc: h3=":443"; ma=2592000
< content-type: text/html; charset=UTF-8
< date: Mon, 09 Feb 2026 03:29:05 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< content-length: 10637
< 
{ [5 bytes data]

100 10637  100 10637    0     0   156k      0 --:--:-- --:--:-- --:--:--  157k
* Connection #0 to host rollouts1.d.jpfennell.com left intact

Success
              
Make email sending best effort

Build #32. Deployed 25 weeks ago.

Deployment logs
Pull
$ docker compose pull
 Image jamespfennell/rollouts:latest Pulling 
 Image jamespfennell/rollouts:latest Pulled 

Success
              
Redeploy
$ docker compose up -d rollouts1
 Container rollouts-d-rollouts1-1 Running 

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.d.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.d.jpfennell.com --output /dev/null
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Host rollouts1.d.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 178.156.244.46
*   Trying 178.156.244.46:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1580 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [1210 bytes data]
* TLSv1.3 (IN), TLS change cipher, Change cipher spec (1):
{ [1 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [19 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2071 bytes data]
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
{ [80 bytes data]
* TLSv1.3 (IN), TLS handshake, Finished (20):
{ [36 bytes data]
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.3 (OUT), TLS handshake, Finished (20):
} [36 bytes data]
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256 / X25519MLKEM768 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.d.jpfennell.com
*  start date: Feb  8 23:23:40 2026 GMT
*  expire date: May  9 23:23:39 2026 GMT
*  subjectAltName: host "rollouts1.d.jpfennell.com" matched cert's "rollouts1.d.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E7
*  SSL certificate verify ok.
*   Certificate level 0: Public key type EC/prime256v1 (256/128 Bits/secBits), signed using ecdsa-with-SHA384
*   Certificate level 1: Public key type EC/secp384r1 (384/192 Bits/secBits), signed using sha256WithRSAEncryption
*   Certificate level 2: Public key type RSA (4096/152 Bits/secBits), signed using sha256WithRSAEncryption
* Connected to rollouts1.d.jpfennell.com (178.156.244.46) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.d.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.d.jpfennell.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.d.jpfennell.com
> User-Agent: curl/8.14.1
> Accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
* Request completely sent off
{ [5 bytes data]
< HTTP/2 200 
< alt-svc: h3=":443"; ma=2592000
< content-type: text/html; charset=UTF-8
< date: Mon, 09 Feb 2026 02:47:04 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< content-length: 6271
< 
{ [5 bytes data]

100  6271  100  6271    0     0  21790      0 --:--:-- --:--:-- --:--:-- 21850
* Connection #0 to host rollouts1.d.jpfennell.com left intact

Success
              
Project configuration
{
  "auth_token": "",
  "branch": "main",
  "name": "rollouts1.d.jpfennell.com",
  "paused": false,
  "repo": "github.com/jamespfennell/rollouts",
  "retention": 10,
  "steps": [
    {
      "name": "Pull",
      "run": "docker compose pull"
    },
    {
      "name": "Redeploy",
      "run": "docker compose up -d rollouts1"
    },
    {
      "name": "Wait for 5 seconds",
      "run": "sleep 5"
    },
    {
      "name": "Ping rollouts1.d.jpfennell.com",
      "run": "curl --fail-with-body -v https://rollouts1.d.jpfennell.com --output /dev/null"
    }
  ],
  "wait_minutes": 0,
  "working_directory": "/home/james/rollouts-d"
}

GitHub client

Rate limiting data

resource used/limit resetting
core 0/60 in 12 minutes