Rollouts agent

rollouts2.b.jpfennell.com

github.com/jamespfennell/rollouts

Projects

rollouts1.b.jpfennell.com

github.com/jamespfennell/rollouts

Last deployed 14 days ago.

No pending deployment.

Most recent deployments
Fix GitHub rate limit bug

Build #34. Deployed 14 days ago.

Deployment logs
Pull
$ docker compose pull
 rollouts2 Skipped - Image is already being pulled by rollouts1 
 rollouts1 Pulling 
 ef235bf1a09a Already exists 
 a012e3bc64f2 Pulling fs layer 
 3cbe79578828 Pulling fs layer 
 6546c1e3b4ce Pulling fs layer 
 a012e3bc64f2 Downloading [>                                                  ]  168.6kB/16.47MB
 6546c1e3b4ce Downloading [>                                                  ]   24.6kB/2.383MB
 a012e3bc64f2 Downloading [=====================================>             ]  12.39MB/16.47MB
 6546c1e3b4ce Verifying Checksum 
 6546c1e3b4ce Download complete 
 3cbe79578828 Downloading [>                                                  ]    101kB/9.721MB
 a012e3bc64f2 Verifying Checksum 
 a012e3bc64f2 Download complete 
 a012e3bc64f2 Extracting [>                                                  ]  196.6kB/16.47MB
 3cbe79578828 Verifying Checksum 
 3cbe79578828 Download complete 
 a012e3bc64f2 Extracting [=======>                                           ]  2.556MB/16.47MB
 a012e3bc64f2 Extracting [=====================>                             ]  7.078MB/16.47MB
 a012e3bc64f2 Extracting [===================================>               ]   11.8MB/16.47MB
 a012e3bc64f2 Extracting [=================================================> ]  16.32MB/16.47MB
 a012e3bc64f2 Extracting [==================================================>]  16.47MB/16.47MB
 a012e3bc64f2 Pull complete 
 3cbe79578828 Extracting [>                                                  ]   98.3kB/9.721MB
 3cbe79578828 Extracting [=======>                                           ]  1.376MB/9.721MB
 3cbe79578828 Extracting [===================>                               ]  3.834MB/9.721MB
 3cbe79578828 Extracting [=============================>                     ]  5.702MB/9.721MB
 3cbe79578828 Extracting [=============================>                     ]    5.8MB/9.721MB
 3cbe79578828 Extracting [==============================>                    ]  5.997MB/9.721MB
 3cbe79578828 Extracting [=========================================>         ]  8.159MB/9.721MB
 3cbe79578828 Extracting [================================================>  ]  9.437MB/9.721MB
 3cbe79578828 Extracting [==================================================>]  9.721MB/9.721MB
 3cbe79578828 Pull complete 
 6546c1e3b4ce Extracting [>                                                  ]  32.77kB/2.383MB
 6546c1e3b4ce Extracting [===========================================>       ]  2.064MB/2.383MB
 6546c1e3b4ce Extracting [==================================================>]  2.383MB/2.383MB
 6546c1e3b4ce Pull complete 
 rollouts1 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.b.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.b.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.b.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 143.198.173.239
*   Trying 143.198.173.239: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):
{ [15 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2069 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.b.jpfennell.com
*  start date: Dec 26 09:55:37 2025 GMT
*  expire date: Mar 26 09:55:36 2026 GMT
*  subjectAltName: host "rollouts1.b.jpfennell.com" matched cert's "rollouts1.b.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E8
*  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.b.jpfennell.com (143.198.173.239) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.b.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.b.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.b.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:45 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
} [5 bytes data]

100 74426    0 74426    0     0  1381k      0 --:--:-- --:--:-- --:--:-- 1397k
* Connection #0 to host rollouts1.b.jpfennell.com left intact

Success
              
Add GitHub etag debugging

Build #33. Deployed 14 days ago.

Deployment logs
Pull
$ docker compose pull
 rollouts2 Skipped - Image is already being pulled by rollouts1 
 rollouts1 Pulling 
 ef235bf1a09a Already exists 
 708f69f5f4ed Pulling fs layer 
 b513af4fcd44 Pulling fs layer 
 d753285454a1 Pulling fs layer 
 b513af4fcd44 Downloading [>                                                  ]    101kB/9.721MB
 d753285454a1 Downloading [>                                                  ]  24.58kB/2.384MB
 d753285454a1 Verifying Checksum 
 d753285454a1 Download complete 
 b513af4fcd44 Verifying Checksum 
 b513af4fcd44 Download complete 
 708f69f5f4ed Downloading [>                                                  ]  168.7kB/16.47MB
 708f69f5f4ed Downloading [===>                                               ]  1.061MB/16.47MB
 708f69f5f4ed Downloading [=====>                                             ]  1.963MB/16.47MB
 708f69f5f4ed Downloading [========>                                          ]  2.683MB/16.47MB
 708f69f5f4ed Downloading [=========>                                         ]  3.215MB/16.47MB
 708f69f5f4ed Downloading [======================================>            ]  12.72MB/16.47MB
 708f69f5f4ed Verifying Checksum 
 708f69f5f4ed Download complete 
 708f69f5f4ed Extracting [>                                                  ]  196.6kB/16.47MB
 708f69f5f4ed Extracting [=============>                                     ]  4.522MB/16.47MB
 708f69f5f4ed Extracting [============================>                      ]  9.241MB/16.47MB
 708f69f5f4ed Extracting [=========================================>         ]  13.76MB/16.47MB
 708f69f5f4ed Extracting [==================================================>]  16.47MB/16.47MB
 708f69f5f4ed Pull complete 
 b513af4fcd44 Extracting [>                                                  ]   98.3kB/9.721MB
 b513af4fcd44 Extracting [====>                                              ]  786.4kB/9.721MB
 b513af4fcd44 Extracting [==============>                                    ]  2.851MB/9.721MB
 b513af4fcd44 Extracting [===========================>                       ]  5.308MB/9.721MB
 b513af4fcd44 Extracting [=============================>                     ]    5.8MB/9.721MB
 b513af4fcd44 Extracting [===============================>                   ]  6.095MB/9.721MB
 b513af4fcd44 Extracting [===========================================>       ]  8.454MB/9.721MB
 b513af4fcd44 Extracting [==================================================>]  9.721MB/9.721MB
 b513af4fcd44 Pull complete 
 d753285454a1 Extracting [>                                                  ]  32.77kB/2.384MB
 d753285454a1 Extracting [==================================================>]  2.384MB/2.384MB
 d753285454a1 Extracting [==================================================>]  2.384MB/2.384MB
 d753285454a1 Pull complete 
 rollouts1 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.b.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.b.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.b.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 143.198.173.239
*   Trying 143.198.173.239: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):
{ [15 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2069 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.b.jpfennell.com
*  start date: Dec 26 09:55:37 2025 GMT
*  expire date: Mar 26 09:55:36 2026 GMT
*  subjectAltName: host "rollouts1.b.jpfennell.com" matched cert's "rollouts1.b.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E8
*  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.b.jpfennell.com (143.198.173.239) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.b.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.b.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.b.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:28:39 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
} [5 bytes data]

100 69974    0 69974    0     0  1252k      0 --:--:-- --:--:-- --:--:-- 1265k
* Connection #0 to host rollouts1.b.jpfennell.com left intact

Success
              
Make email sending best effort

Build #32. Deployed 14 days ago.

Deployment logs
Pull
$ docker compose pull
 rollouts1 Skipped - Image is already being pulled by rollouts2 
 rollouts2 Pulling 
 ef235bf1a09a Already exists 
 e7fbeedf6cdc Pulling fs layer 
 a644225ef67e Pulling fs layer 
 a41ead1fbfa4 Pulling fs layer 
 a41ead1fbfa4 Downloading [>                                                  ]  24.58kB/2.384MB
 a644225ef67e Downloading [>                                                  ]    101kB/9.721MB
 a41ead1fbfa4 Verifying Checksum 
 a41ead1fbfa4 Download complete 
 e7fbeedf6cdc Downloading [>                                                  ]  168.1kB/16.47MB
 a644225ef67e Downloading [=========>                                         ]  1.922MB/9.721MB
 e7fbeedf6cdc Downloading [==================>                                ]   5.98MB/16.47MB
 e7fbeedf6cdc Verifying Checksum 
 e7fbeedf6cdc Download complete 
 a644225ef67e Downloading [=======================================>           ]  7.651MB/9.721MB
 e7fbeedf6cdc Extracting [>                                                  ]  196.6kB/16.47MB
 a644225ef67e Verifying Checksum 
 a644225ef67e Download complete 
 e7fbeedf6cdc Extracting [=============>                                     ]  4.325MB/16.47MB
 e7fbeedf6cdc Extracting [=========================>                         ]  8.258MB/16.47MB
 e7fbeedf6cdc Extracting [=======================================>           ]  13.17MB/16.47MB
 e7fbeedf6cdc Extracting [==================================================>]  16.47MB/16.47MB
 e7fbeedf6cdc Pull complete 
 a644225ef67e Extracting [>                                                  ]   98.3kB/9.721MB
 a644225ef67e Extracting [======>                                            ]  1.278MB/9.721MB
 a644225ef67e Extracting [=====================>                             ]  4.227MB/9.721MB
 a644225ef67e Extracting [=============================>                     ]    5.8MB/9.721MB
 a644225ef67e Extracting [===============================>                   ]  6.095MB/9.721MB
 a644225ef67e Extracting [==========================================>        ]  8.258MB/9.721MB
 a644225ef67e Extracting [================================================>  ]  9.437MB/9.721MB
 a644225ef67e Extracting [==================================================>]  9.721MB/9.721MB
 a644225ef67e Pull complete 
 a41ead1fbfa4 Extracting [>                                                  ]  32.77kB/2.384MB
 a41ead1fbfa4 Extracting [==================================================>]  2.384MB/2.384MB
 a41ead1fbfa4 Pull complete 
 rollouts2 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.b.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.b.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.b.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 143.198.173.239
*   Trying 143.198.173.239: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):
{ [15 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2069 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.b.jpfennell.com
*  start date: Dec 26 09:55:37 2025 GMT
*  expire date: Mar 26 09:55:36 2026 GMT
*  subjectAltName: host "rollouts1.b.jpfennell.com" matched cert's "rollouts1.b.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E8
*  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.b.jpfennell.com (143.198.173.239) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts1.b.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts1.b.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.b.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 01:42:34 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
} [5 bytes data]

100 65499    0 65499    0     0  1094k      0 --:--:-- --:--:-- --:--:-- 1102k
* Connection #0 to host rollouts1.b.jpfennell.com left intact

Success
              
Fix stall/deadlock

Build #31. Deployed 2 weeks ago.

Deployment logs
Pull
$ docker compose pull
 rollouts1 Skipped - Image is already being pulled by rollouts2 
 rollouts2 Pulling 
 ef235bf1a09a Already exists 
 ae1e1e95d63e Pulling fs layer 
 28092fc77b15 Pulling fs layer 
 f7982ae831da Pulling fs layer 
 28092fc77b15 Downloading [>                                                  ]  101.2kB/9.721MB
 ae1e1e95d63e Downloading [>                                                  ]  167.3kB/16.47MB
 f7982ae831da Downloading [>                                                  ]  23.98kB/2.385MB
 ae1e1e95d63e Downloading [=========================>                         ]  8.277MB/16.47MB
 28092fc77b15 Downloading [=========================================>         ]  8.027MB/9.721MB
 f7982ae831da Verifying Checksum 
 f7982ae831da Download complete 
 28092fc77b15 Downloading [==================================================>]  9.721MB/9.721MB
 28092fc77b15 Verifying Checksum 
 28092fc77b15 Download complete 
 ae1e1e95d63e Verifying Checksum 
 ae1e1e95d63e Download complete 
 ae1e1e95d63e Extracting [>                                                  ]  196.6kB/16.47MB
 ae1e1e95d63e Extracting [==============>                                    ]  4.915MB/16.47MB
 ae1e1e95d63e Extracting [==============================>                    ]  10.03MB/16.47MB
 ae1e1e95d63e Extracting [=============================================>     ]  15.14MB/16.47MB
 ae1e1e95d63e Extracting [==================================================>]  16.47MB/16.47MB
 ae1e1e95d63e Pull complete 
 28092fc77b15 Extracting [>                                                  ]   98.3kB/9.721MB
 28092fc77b15 Extracting [=======>                                           ]  1.376MB/9.721MB
 28092fc77b15 Extracting [=======================>                           ]  4.522MB/9.721MB
 28092fc77b15 Extracting [=============================>                     ]    5.8MB/9.721MB
 28092fc77b15 Extracting [==============================>                    ]  5.898MB/9.721MB
 28092fc77b15 Extracting [=========================================>         ]  8.159MB/9.721MB
 28092fc77b15 Extracting [==================================================>]  9.721MB/9.721MB
 28092fc77b15 Pull complete 
 f7982ae831da Extracting [>                                                  ]  32.77kB/2.385MB
 f7982ae831da Extracting [==================================================>]  2.385MB/2.385MB
 f7982ae831da Pull complete 
 rollouts2 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.b.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.b.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*   Trying 143.198.173.239:443...
* Connected to rollouts1.b.jpfennell.com (143.198.173.239) port 443 (#0)
* ALPN: offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [15 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2069 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
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.b.jpfennell.com
*  start date: Dec 26 09:55:37 2025 GMT
*  expire date: Mar 26 09:55:36 2026 GMT
*  subjectAltName: host "rollouts1.b.jpfennell.com" matched cert's "rollouts1.b.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E8
*  SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /]
* h2h3 [:scheme: https]
* h2h3 [:authority: rollouts1.b.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x56c2ddb6b780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.b.jpfennell.com
> user-agent: curl/7.88.1
> accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
< HTTP/2 200 
< alt-svc: h3=":443"; ma=2592000
< content-type: text/html; charset=UTF-8
< date: Fri, 06 Feb 2026 04:11:56 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
{ [5 bytes data]

100 53565    0 53565    0     0   468k      0 --:--:-- --:--:-- --:--:--  471k
* Connection #0 to host rollouts1.b.jpfennell.com left intact

Success
              
fix the default poll interval

Build #30. Deployed 42 weeks ago.

Deployment logs
Pull
$ docker compose pull
 rollouts2 Skipped - Image is already being pulled by rollouts1 
 rollouts1 Pulling 
 rollouts1 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.b.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.b.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*   Trying 165.22.34.199:443...
* Connected to rollouts1.b.jpfennell.com (165.22.34.199) port 443 (#0)
* ALPN: offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: /etc/ssl/certs
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [122 bytes data]
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
{ [15 bytes data]
* TLSv1.3 (IN), TLS handshake, Certificate (11):
{ [2099 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
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.b.jpfennell.com
*  start date: Apr 16 17:21:04 2025 GMT
*  expire date: Jul 15 17:21:03 2025 GMT
*  subjectAltName: host "rollouts1.b.jpfennell.com" matched cert's "rollouts1.b.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E6
*  SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /]
* h2h3 [:scheme: https]
* h2h3 [:authority: rollouts1.b.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x5b1be7a06780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.b.jpfennell.com
> user-agent: curl/7.88.1
> accept: */*
> 
{ [5 bytes data]
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
{ [122 bytes data]
< HTTP/2 200 
< alt-svc: h3=":443"; ma=2592000
< content-type: text/html; charset=UTF-8
< date: Thu, 01 May 2025 13:02:39 GMT
< server: tiny-http (Rust)
< vary: Accept-Encoding
< via: 2.0 Caddy
< via: 1.1 Caddy
< 
{ [5 bytes data]

100  6578    0  6578    0     0  44360      0 --:--:-- --:--:-- --:--:-- 44445
* Connection #0 to host rollouts1.b.jpfennell.com left intact

Success
              
Project configuration
{
  "auth_token": "",
  "branch": "main",
  "name": "rollouts1.b.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.b.jpfennell.com",
      "run": "curl --fail-with-body -v https://rollouts1.b.jpfennell.com --output /dev/null"
    }
  ],
  "wait_minutes": 0,
  "working_directory": "/home/james/rollouts-b"
}

GitHub client

Rate limiting data

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