Rollouts agent

rollouts2.a.jpfennell.com

github.com/jamespfennell/rollouts

Projects

rollouts1.a.jpfennell.com

github.com/jamespfennell/rollouts

Last deployed 25 weeks ago.

No pending deployment.

Most recent deployments
fix the default poll interval

Build #30. Deployed 25 weeks ago.

Deployment logs
Pull
$ docker compose pull
 rollouts2 Skipped - Image is already being pulled by rollouts1 
 rollouts1 Pulling 
 cf05a52c0235 Already exists 
 82ffabbd5616 Pulling fs layer 
 c1014a70d2ef Pulling fs layer 
 8bbb1478317f Pulling fs layer 
 8bbb1478317f Downloading [>                                                  ]     24kB/2.385MB
 82ffabbd5616 Downloading [>                                                  ]  155.7kB/15.16MB
 8bbb1478317f Verifying Checksum 
 8bbb1478317f Download complete 
 c1014a70d2ef Downloading [>                                                  ]  79.09kB/7.87MB
 82ffabbd5616 Downloading [===============================>                   ]  9.692MB/15.16MB
 c1014a70d2ef Downloading [===>                                               ]  570.1kB/7.87MB
 82ffabbd5616 Download complete 
 82ffabbd5616 Extracting [>                                                  ]  163.8kB/15.16MB
 82ffabbd5616 Extracting [======================>                            ]  6.717MB/15.16MB
 c1014a70d2ef Downloading [======>                                            ]  979.7kB/7.87MB
 82ffabbd5616 Extracting [==============================================>    ]  14.25MB/15.16MB
 82ffabbd5616 Extracting [==================================================>]  15.16MB/15.16MB
 82ffabbd5616 Pull complete 
 c1014a70d2ef Downloading [========>                                          ]  1.389MB/7.87MB
 c1014a70d2ef Downloading [==========>                                        ]  1.635MB/7.87MB
 c1014a70d2ef Downloading [============>                                      ]  1.979MB/7.87MB
 c1014a70d2ef Downloading [===============>                                   ]  2.389MB/7.87MB
 c1014a70d2ef Downloading [=================>                                 ]  2.716MB/7.87MB
 c1014a70d2ef Downloading [===================>                               ]  3.126MB/7.87MB
 c1014a70d2ef Downloading [======================>                            ]  3.617MB/7.87MB
 c1014a70d2ef Downloading [==========================>                        ]  4.109MB/7.87MB
 c1014a70d2ef Downloading [============================>                      ]  4.535MB/7.87MB
 c1014a70d2ef Downloading [===============================>                   ]  4.949MB/7.87MB
 c1014a70d2ef Downloading [==================================>                ]  5.453MB/7.87MB
 c1014a70d2ef Downloading [=====================================>             ]  5.944MB/7.87MB
 c1014a70d2ef Downloading [========================================>          ]  6.436MB/7.87MB
 c1014a70d2ef Downloading [============================================>      ]  7.025MB/7.87MB
 c1014a70d2ef Downloading [================================================>  ]  7.599MB/7.87MB
 c1014a70d2ef Verifying Checksum 
 c1014a70d2ef Download complete 
 c1014a70d2ef Extracting [>                                                  ]   98.3kB/7.87MB
 c1014a70d2ef Extracting [===========>                                       ]  1.868MB/7.87MB
 c1014a70d2ef Extracting [=================================>                 ]   5.21MB/7.87MB
 c1014a70d2ef Extracting [===========================================>       ]  6.881MB/7.87MB
 c1014a70d2ef Extracting [==================================================>]   7.87MB/7.87MB
 c1014a70d2ef Pull complete 
 8bbb1478317f Extracting [>                                                  ]  32.77kB/2.385MB
 8bbb1478317f Extracting [==================================================>]  2.385MB/2.385MB
 8bbb1478317f Extracting [==================================================>]  2.385MB/2.385MB
 8bbb1478317f Pull complete 
 rollouts1 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.a.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.a.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 162.243.34.11:443...
* Connected to rollouts1.a.jpfennell.com (162.243.34.11) 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):
{ [2097 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
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.a.jpfennell.com
*  start date: Apr 28 14:14:24 2025 GMT
*  expire date: Jul 27 14:14:23 2025 GMT
*  subjectAltName: host "rollouts1.a.jpfennell.com" matched cert's "rollouts1.a.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.a.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x57894e75d780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.a.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: Wed, 30 Apr 2025 13:25:57 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
{ [5 bytes data]

100 44172    0 44172    0     0   609k      0 --:--:-- --:--:-- --:--:--  616k
* Connection #0 to host rollouts1.a.jpfennell.com left intact

Success
              
Change how wait_minutes behaves on new rollouts agents

Build #29. Deployed 25 weeks ago.

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

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.a.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.a.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 162.243.34.11:443...
* Connected to rollouts1.a.jpfennell.com (162.243.34.11) 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):
{ [2097 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.a.jpfennell.com
*  start date: Apr 28 14:14:24 2025 GMT
*  expire date: Jul 27 14:14:23 2025 GMT
*  subjectAltName: host "rollouts1.a.jpfennell.com" matched cert's "rollouts1.a.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.a.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x55aaaf020780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.a.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: Wed, 30 Apr 2025 13:10:56 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
{ [5 bytes data]

100 43418    0 43418    0     0   602k      0 --:--:-- --:--:-- --:--:--  605k
* Connection #0 to host rollouts1.a.jpfennell.com left intact

Success
              
Change how wait_minutes behaves on new rollouts agents

Build #29. Failed 25 weeks ago.

Deployment logs
Pull
$ /mount/docker compose pull
 rollouts1 Skipped - Image is already being pulled by rollouts2 
 rollouts2 Pulling 
 cf05a52c0235 Already exists 
 4012d49cd1e6 Pulling fs layer 
 71d683275af4 Pulling fs layer 
 053a978d738a Pulling fs layer 
 4012d49cd1e6 Downloading [>                                                  ]  155.5kB/15.16MB
 71d683275af4 Downloading [>                                                  ]  81.72kB/7.87MB
 053a978d738a Downloading [>                                                  ]  25.21kB/2.385MB
 053a978d738a Verifying Checksum 
 053a978d738a Download complete 
 4012d49cd1e6 Downloading [==============>                                    ]  4.535MB/15.16MB
 71d683275af4 Downloading [=====================>                             ]  3.421MB/7.87MB
 71d683275af4 Verifying Checksum 
 71d683275af4 Download complete 
 4012d49cd1e6 Downloading [===============================>                   ]   9.54MB/15.16MB
 4012d49cd1e6 Download complete 
 4012d49cd1e6 Extracting [>                                                  ]  163.8kB/15.16MB
 4012d49cd1e6 Extracting [============>                                      ]  3.768MB/15.16MB
 4012d49cd1e6 Extracting [===========================>                       ]  8.192MB/15.16MB
 4012d49cd1e6 Extracting [=======================================>           ]  12.12MB/15.16MB
 4012d49cd1e6 Extracting [==================================================>]  15.16MB/15.16MB
 4012d49cd1e6 Pull complete 
 71d683275af4 Extracting [>                                                  ]   98.3kB/7.87MB
 71d683275af4 Extracting [=============>                                     ]  2.163MB/7.87MB
 71d683275af4 Extracting [=================================>                 ]  5.308MB/7.87MB
 71d683275af4 Extracting [===========================================>       ]  6.881MB/7.87MB
 71d683275af4 Extracting [==================================================>]   7.87MB/7.87MB
 71d683275af4 Pull complete 
 053a978d738a Extracting [>                                                  ]  32.77kB/2.385MB
 053a978d738a Extracting [==================================================>]  2.385MB/2.385MB
 053a978d738a Extracting [==================================================>]  2.385MB/2.385MB
 053a978d738a Pull complete 
 rollouts2 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.a.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.a.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 162.243.34.11:443...
* Connected to rollouts1.a.jpfennell.com (162.243.34.11) 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):
{ [2097 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
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=rollouts1.a.jpfennell.com
*  start date: Apr 28 14:14:24 2025 GMT
*  expire date: Jul 27 14:14:23 2025 GMT
*  subjectAltName: host "rollouts1.a.jpfennell.com" matched cert's "rollouts1.a.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.a.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x64559ceab780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.a.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 502 
< alt-svc: h3=":443"; ma=2592000
< server: Caddy
< content-length: 0
< date: Wed, 30 Apr 2025 13:02:19 GMT
< 
{ [0 bytes data]

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

Failure
              
Fix the build

Build #28. Deployed 25 weeks ago.

Deployment logs
Pull
$ /mount/docker compose pull
 rollouts2 Skipped - Image is already being pulled by rollouts1 
 rollouts1 Pulling 
 cf05a52c0235 Pulling fs layer 
 2b55471b9931 Pulling fs layer 
 d674a98a67ab Pulling fs layer 
 c2f5475c2fb7 Pulling fs layer 
 c2f5475c2fb7 Waiting 
 2b55471b9931 Downloading [>                                                  ]  155.6kB/15.16MB
 cf05a52c0235 Downloading [>                                                  ]  490.7kB/48.49MB
 d674a98a67ab Downloading [>                                                  ]  81.72kB/7.87MB
 2b55471b9931 Downloading [===================>                               ]   6.01MB/15.16MB
 cf05a52c0235 Downloading [=========>                                         ]  8.854MB/48.49MB
 d674a98a67ab Downloading [==================================>                ]  5.428MB/7.87MB
 d674a98a67ab Verifying Checksum 
 d674a98a67ab Download complete 
 2b55471b9931 Downloading [========================================>          ]  12.33MB/15.16MB
 2b55471b9931 Verifying Checksum 
 2b55471b9931 Download complete 
 cf05a52c0235 Downloading [===============>                                   ]  15.25MB/48.49MB
 cf05a52c0235 Downloading [=========================>                         ]  25.11MB/48.49MB
 c2f5475c2fb7 Downloading [>                                                  ]  23.87kB/2.383MB
 c2f5475c2fb7 Verifying Checksum 
 c2f5475c2fb7 Download complete 
 cf05a52c0235 Downloading [==============================>                    ]  30.05MB/48.49MB
 cf05a52c0235 Downloading [=====================================>             ]  35.95MB/48.49MB
 cf05a52c0235 Downloading [===============================================>   ]  46.29MB/48.49MB
 cf05a52c0235 Verifying Checksum 
 cf05a52c0235 Download complete 
 cf05a52c0235 Extracting [>                                                  ]  491.5kB/48.49MB
 cf05a52c0235 Extracting [==>                                                ]  1.966MB/48.49MB
 cf05a52c0235 Extracting [====>                                              ]  4.424MB/48.49MB
 cf05a52c0235 Extracting [=====>                                             ]  5.407MB/48.49MB
 cf05a52c0235 Extracting [=======>                                           ]  7.373MB/48.49MB
 cf05a52c0235 Extracting [=========>                                         ]  8.847MB/48.49MB
 cf05a52c0235 Extracting [=========>                                         ]  9.339MB/48.49MB
 cf05a52c0235 Extracting [==========>                                        ]   9.83MB/48.49MB
 cf05a52c0235 Extracting [===========>                                       ]  10.81MB/48.49MB
 cf05a52c0235 Extracting [============>                                      ]   11.8MB/48.49MB
 cf05a52c0235 Extracting [==============>                                    ]  13.76MB/48.49MB
 cf05a52c0235 Extracting [=================>                                 ]   17.2MB/48.49MB
 cf05a52c0235 Extracting [=====================>                             ]  20.64MB/48.49MB
 cf05a52c0235 Extracting [======================>                            ]  22.12MB/48.49MB
 cf05a52c0235 Extracting [========================>                          ]  23.59MB/48.49MB
 cf05a52c0235 Extracting [========================>                          ]  24.08MB/48.49MB
 cf05a52c0235 Extracting [==========================>                        ]  26.05MB/48.49MB
 cf05a52c0235 Extracting [===========================>                       ]  27.03MB/48.49MB
 cf05a52c0235 Extracting [=============================>                     ]  28.51MB/48.49MB
 cf05a52c0235 Extracting [==============================>                    ]  29.49MB/48.49MB
 cf05a52c0235 Extracting [===============================>                   ]  30.97MB/48.49MB
 cf05a52c0235 Extracting [================================>                  ]  31.95MB/48.49MB
 cf05a52c0235 Extracting [==================================>                ]  33.42MB/48.49MB
 cf05a52c0235 Extracting [===================================>               ]  34.41MB/48.49MB
 cf05a52c0235 Extracting [====================================>              ]  35.39MB/48.49MB
 cf05a52c0235 Extracting [=====================================>             ]  36.37MB/48.49MB
 cf05a52c0235 Extracting [======================================>            ]  36.86MB/48.49MB
 cf05a52c0235 Extracting [=======================================>           ]  37.85MB/48.49MB
 cf05a52c0235 Extracting [========================================>          ]  38.83MB/48.49MB
 cf05a52c0235 Extracting [=========================================>         ]  39.81MB/48.49MB
 cf05a52c0235 Extracting [==========================================>        ]   40.8MB/48.49MB
 cf05a52c0235 Extracting [===========================================>       ]  41.78MB/48.49MB
 cf05a52c0235 Extracting [============================================>      ]  42.76MB/48.49MB
 cf05a52c0235 Extracting [=============================================>     ]  44.24MB/48.49MB
 cf05a52c0235 Extracting [==============================================>    ]  45.22MB/48.49MB
 cf05a52c0235 Extracting [===============================================>   ]   46.2MB/48.49MB
 cf05a52c0235 Extracting [=================================================> ]  47.68MB/48.49MB
 cf05a52c0235 Extracting [==================================================>]  48.49MB/48.49MB
 cf05a52c0235 Pull complete 
 2b55471b9931 Extracting [>                                                  ]  163.8kB/15.16MB
 2b55471b9931 Extracting [=========>                                         ]  2.785MB/15.16MB
 2b55471b9931 Extracting [==================>                                ]  5.571MB/15.16MB
 2b55471b9931 Extracting [===========================>                       ]  8.192MB/15.16MB
 2b55471b9931 Extracting [===============================>                   ]  9.503MB/15.16MB
 2b55471b9931 Extracting [====================================>              ]  11.14MB/15.16MB
 2b55471b9931 Extracting [==========================================>        ]  12.94MB/15.16MB
 2b55471b9931 Extracting [=================================================> ]  14.91MB/15.16MB
 2b55471b9931 Extracting [==================================================>]  15.16MB/15.16MB
 2b55471b9931 Pull complete 
 d674a98a67ab Extracting [>                                                  ]   98.3kB/7.87MB
 d674a98a67ab Extracting [===>                                               ]  491.5kB/7.87MB
 d674a98a67ab Extracting [===========>                                       ]  1.868MB/7.87MB
 d674a98a67ab Extracting [==========================>                        ]  4.227MB/7.87MB
 d674a98a67ab Extracting [==================================>                ]  5.407MB/7.87MB
 d674a98a67ab Extracting [=========================================>         ]  6.488MB/7.87MB
 d674a98a67ab Extracting [==============================================>    ]  7.274MB/7.87MB
 d674a98a67ab Extracting [================================================>  ]  7.569MB/7.87MB
 d674a98a67ab Extracting [==================================================>]   7.87MB/7.87MB
 d674a98a67ab Pull complete 
 c2f5475c2fb7 Extracting [>                                                  ]  32.77kB/2.383MB
 c2f5475c2fb7 Extracting [==================================================>]  2.383MB/2.383MB
 c2f5475c2fb7 Extracting [==================================================>]  2.383MB/2.383MB
 c2f5475c2fb7 Pull complete 
 rollouts1 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.a.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.a.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 162.243.34.11:443...
* Connected to rollouts1.a.jpfennell.com (162.243.34.11) 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):
{ [2097 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.a.jpfennell.com
*  start date: Apr 28 14:14:24 2025 GMT
*  expire date: Jul 27 14:14:23 2025 GMT
*  subjectAltName: host "rollouts1.a.jpfennell.com" matched cert's "rollouts1.a.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.a.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x63ed4db1d780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.a.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: Tue, 29 Apr 2025 13:07:13 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
{ [5 bytes data]

100 39590    0 39590    0     0   692k      0 --:--:-- --:--:-- --:--:--  702k
* Connection #0 to host rollouts1.a.jpfennell.com left intact

Success
              
Update Docker image

Build #26. Deployed 25 weeks ago.

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

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts1.a.jpfennell.com
$ curl --fail-with-body -v https://rollouts1.a.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 162.243.34.11:443...
* Connected to rollouts1.a.jpfennell.com (162.243.34.11) 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):
{ [2097 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.a.jpfennell.com
*  start date: Apr 28 14:14:24 2025 GMT
*  expire date: Jul 27 14:14:23 2025 GMT
*  subjectAltName: host "rollouts1.a.jpfennell.com" matched cert's "rollouts1.a.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.a.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x64f1f7366780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts1.a.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: Tue, 29 Apr 2025 12:57:03 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< 
{ [5 bytes data]

100 39085    0 39085    0     0   413k      0 --:--:-- --:--:-- --:--:--  414k
* Connection #0 to host rollouts1.a.jpfennell.com left intact

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

GitHub client

Rate limiting data

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