Rollouts agent

rollouts1.b.jpfennell.com

github.com/jamespfennell/rollouts

Projects

Hoard (hoard2.subwaydata.nyc)

github.com/jamespfennell/hoard

Last deployed 23 weeks ago.

No pending deployment.

Most recent deployments
Remove unused config options

Build #77. Deployed 23 weeks ago.

Deployment logs
Pull
$ docker compose pull
 hoard Pulling 
 cf05a52c0235 Already exists 
 63964a8518f5 Pulling fs layer 
 52a890f58f8f Pulling fs layer 
 da8e6839c30a Pulling fs layer 
 63964a8518f5 Downloading [>                                                  ]  245.2kB/24.01MB
 63964a8518f5 Downloading [===============>                                   ]  7.642MB/24.01MB
 da8e6839c30a Downloading [==================================================>]      95B/95B
 da8e6839c30a Verifying Checksum 
 da8e6839c30a Download complete 
 63964a8518f5 Downloading [============================================>      ]  21.22MB/24.01MB
 63964a8518f5 Verifying Checksum 
 63964a8518f5 Download complete 
 52a890f58f8f Downloading [>                                                  ]  143.4kB/14.13MB
 63964a8518f5 Extracting [>                                                  ]  262.1kB/24.01MB
 52a890f58f8f Downloading [===============>                                   ]  4.366MB/14.13MB
 63964a8518f5 Extracting [===>                                               ]  1.573MB/24.01MB
 52a890f58f8f Downloading [=========================================>         ]  11.77MB/14.13MB
 52a890f58f8f Verifying Checksum 
 52a890f58f8f Download complete 
 63964a8518f5 Extracting [========>                                          ]  4.194MB/24.01MB
 63964a8518f5 Extracting [===============>                                   ]   7.34MB/24.01MB
 63964a8518f5 Extracting [=====================>                             ]  10.22MB/24.01MB
 63964a8518f5 Extracting [===========================>                       ]  13.37MB/24.01MB
 63964a8518f5 Extracting [======================================>            ]  18.35MB/24.01MB
 63964a8518f5 Extracting [===========================================>       ]  20.71MB/24.01MB
 63964a8518f5 Extracting [===============================================>   ]  22.81MB/24.01MB
 63964a8518f5 Extracting [================================================>  ]  23.33MB/24.01MB
 63964a8518f5 Extracting [==================================================>]  24.01MB/24.01MB
 63964a8518f5 Pull complete 
 52a890f58f8f Extracting [>                                                  ]  163.8kB/14.13MB
 52a890f58f8f Extracting [=>                                                 ]  327.7kB/14.13MB
 52a890f58f8f Extracting [===========>                                       ]  3.113MB/14.13MB
 52a890f58f8f Extracting [====================>                              ]  5.898MB/14.13MB
 52a890f58f8f Extracting [=====================================>             ]  10.49MB/14.13MB
 52a890f58f8f Extracting [==================================================>]  14.13MB/14.13MB
 52a890f58f8f Pull complete 
 da8e6839c30a Extracting [==================================================>]      95B/95B
 da8e6839c30a Extracting [==================================================>]      95B/95B
 da8e6839c30a Pull complete 
 hoard Pulled 

Success
              
Redeploy
$ docker compose up -d hoard
 Container hoard-bc-hoard-1  Recreate
 Container hoard-bc-hoard-1  Recreated
 Container hoard-bc-hoard-1  Starting
 Container hoard-bc-hoard-1  Started

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping hoard2.subwaydata.nyc
$ curl --fail-with-body -v https://hoard2.subwaydata.nyc --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 hoard2.subwaydata.nyc (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):
{ [2090 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=hoard2.subwaydata.nyc
*  start date: May  1 12:02:04 2025 GMT
*  expire date: Jul 30 12:02:03 2025 GMT
*  subjectAltName: host "hoard2.subwaydata.nyc" matched cert's "hoard2.subwaydata.nyc"
*  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: hoard2.subwaydata.nyc]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x5b9dba4f6780)
} [5 bytes data]
> GET / HTTP/2
> Host: hoard2.subwaydata.nyc
> 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: Sun, 18 May 2025 19:50:14 GMT
< via: 1.1 Caddy
< 
{ [5 bytes data]

100  8169    0  8169    0     0   109k      0 --:--:-- --:--:-- --:--:--  110k
* Connection #0 to host hoard2.subwaydata.nyc left intact

Success
              
Don't merge remote AFiles during upload

Build #75. Deployed 25 weeks ago.

Deployment logs
Pull
$ docker compose pull
 hoard Pulling 
 hoard Pulled 

Success
              
Redeploy
$ docker compose up -d hoard
 Container hoard-bc-hoard-1  Running

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping hoard2.subwaydata.nyc
$ curl --fail-with-body -v https://hoard2.subwaydata.nyc --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 hoard2.subwaydata.nyc (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):
{ [2089 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=hoard2.subwaydata.nyc
*  start date: Apr  7 14:38:31 2025 GMT
*  expire date: Jul  6 14:38:30 2025 GMT
*  subjectAltName: host "hoard2.subwaydata.nyc" matched cert's "hoard2.subwaydata.nyc"
*  issuer: C=US; O=Let's Encrypt; CN=E5
*  SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /]
* h2h3 [:scheme: https]
* h2h3 [:authority: hoard2.subwaydata.nyc]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x571a5a615780)
} [5 bytes data]
> GET / HTTP/2
> Host: hoard2.subwaydata.nyc
> 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
< vary: Accept-Encoding
< via: 2.0 Caddy
< via: 1.1 Caddy
< 
{ [5 bytes data]

100  8206    0  8206    0     0  53817      0 --:--:-- --:--:-- --:--:-- 53986
* Connection #0 to host hoard2.subwaydata.nyc left intact

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

rollouts2.b.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
 rollouts1 Skipped - Image is already being pulled by rollouts2 
 rollouts2 Pulling 
 rollouts2 Pulled 

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

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping rollouts2.b.jpfennell.com
$ curl --fail-with-body -v https://rollouts2.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 rollouts2.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):
{ [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=rollouts2.b.jpfennell.com
*  start date: Apr 16 17:21:04 2025 GMT
*  expire date: Jul 15 17:21:03 2025 GMT
*  subjectAltName: host "rollouts2.b.jpfennell.com" matched cert's "rollouts2.b.jpfennell.com"
*  issuer: C=US; O=Let's Encrypt; CN=E5
*  SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /]
* h2h3 [:scheme: https]
* h2h3 [:authority: rollouts2.b.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x5e2eef0f0780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts2.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:13:39 GMT
< server: tiny-http (Rust)
< vary: Accept-Encoding
< via: 2.0 Caddy
< via: 1.1 Caddy
< 
{ [5 bytes data]

100  7669    0  7669    0     0  68418      0 --:--:-- --:--:-- --:--:-- 69090
* Connection #0 to host rollouts2.b.jpfennell.com left intact

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

subwaydata.nyc (website)

github.com/jamespfennell/subwaydata.nyc

Last deployed 25 weeks ago.

No pending deployment.

Most recent deployments
Fix website command flags

Build #81. Deployed 25 weeks ago.

Deployment logs
Pull
$ docker compose pull
 subwaydatanyc-etl Skipped - Image is already being pulled by subwaydatanyc-website 
 subwaydatanyc-website Pulling 
 subwaydatanyc-website Pulled 

Success
              
Redeploy
$ docker compose up -d
 Container subwaydatanyc-subwaydatanyc-website-1  Running
 Container subwaydatanyc-subwaydatanyc-etl-1  Running

Success
              
Wait for 5 seconds
$ sleep 5

Success
              
Ping subwaydata.nyc
$ curl --fail-with-body -v https://subwaydata.nyc --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 subwaydata.nyc (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):
{ [2077 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=subwaydata.nyc
*  start date: Apr  7 14:48:31 2025 GMT
*  expire date: Jul  6 14:48:30 2025 GMT
*  subjectAltName: host "subwaydata.nyc" matched cert's "subwaydata.nyc"
*  issuer: C=US; O=Let's Encrypt; CN=E5
*  SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /]
* h2h3 [:scheme: https]
* h2h3 [:authority: subwaydata.nyc]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x5e78ceae6780)
} [5 bytes data]
> GET / HTTP/2
> Host: subwaydata.nyc
> 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
< date: Thu, 01 May 2025 13:02:45 GMT
< vary: Accept-Encoding
< via: 2.0 Caddy
< via: 1.1 Caddy
< 
{ [5 bytes data]

100  2682    0  2682    0     0  39444      0 --:--:-- --:--:-- --:--:-- 40029
* Connection #0 to host subwaydata.nyc left intact

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

GitHub client

Rate limiting data

resource used/limit resetting
core 0/60 imminently