rollouts1.a.jpfennell.com
github.com/jamespfennell/rollouts
github.com/jamespfennell/path-train-gtfs-realtime
Last deployed 51 weeks ago.
No pending deployment.
Build #64. Deployed 51 weeks ago.
$ /mount/docker compose pull
time="2025-04-29T12:45:38Z" level=warning msg="/home/james/path-train-gtfsrt/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
path2 Skipped - Image is already being pulled by path-train-gtfs-realtime
path-train-gtfs-realtime Pulling
path-train-gtfs-realtime Pulled
Success
$ /mount/docker compose up -d
time="2025-04-29T12:45:38Z" level=warning msg="/home/james/path-train-gtfsrt/docker-compose.yml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion"
Container 6f100c39b6be_path-train-gtfsrt-path2-1 Running
Container 0cbe55bb1fcf_path-train-gtfsrt-path-train-gtfs-realtime-1 Starting
Container 0cbe55bb1fcf_path-train-gtfsrt-path-train-gtfs-realtime-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://path.transitdata.nyc/gtfsrt --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 path.transitdata.nyc (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):
{ [2089 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
* ALPN: server accepted h2
* Server certificate:
* subject: CN=path.transitdata.nyc
* start date: Apr 28 01:48:20 2025 GMT
* expire date: Jul 27 01:48:19 2025 GMT
* subjectAltName: host "path.transitdata.nyc" matched cert's "path.transitdata.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: /gtfsrt]
* h2h3 [:scheme: https]
* h2h3 [:authority: path.transitdata.nyc]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x57ae10372780)
} [5 bytes data]
> GET /gtfsrt HTTP/2
> Host: path.transitdata.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: application/octet-stream
< date: Tue, 29 Apr 2025 12:45:43 GMT
< via: 1.1 Caddy
<
{ [5 bytes data]
100 5839 0 5839 0 0 112k 0 --:--:-- --:--:-- --:--:-- 114k
* Connection #0 to host path.transitdata.nyc left intact
Success
Build #64. Failed 51 weeks ago.
$ /mount/docker compose pull
docker: unknown command: docker compose
Run 'docker --help' for more information
Failure
Build #64. Failed 51 weeks ago.
$ /mount/docker compose pull
Failed to start command.
This is probably an error in the project configuration.
Error: No such file or directory (os error 2)
Failure
{
"auth_token": "",
"branch": "master",
"name": "PATH train GTFS",
"paused": false,
"repo": "github.com/jamespfennell/path-train-gtfs-realtime",
"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 path.transitdata.nyc",
"run": "curl --fail-with-body -v https://path.transitdata.nyc/gtfsrt --output /dev/null"
}
],
"wait_minutes": 0,
"working_directory": "/home/james/path-train-gtfsrt"
}
github.com/jamespfennell/texcraft
Last deployed 9 hours ago.
No pending deployment.
Build #936. Deployed 9 hours ago.
$ docker compose pull
texcraft.dev Pulling
redis Pulling
play.texcraft.dev Pulling
redis Pulled
a7730063fcfe Already exists
6a0ac1617861 Pulling fs layer
bd08a3fe88bb Pulling fs layer
1f5a7c340982 Pulling fs layer
387d6e14b64b Pulling fs layer
4f4fb700ef54 Pulling fs layer
ced802a712dd Pulling fs layer
b4d493871bd4 Pulling fs layer
7cefc0ec811f Pulling fs layer
4f4fb700ef54 Waiting
ced802a712dd Waiting
b4d493871bd4 Waiting
7cefc0ec811f Waiting
387d6e14b64b Waiting
b6c0324abfff Pulling fs layer
b6c0324abfff Waiting
bd08a3fe88bb Downloading [> ] 29.02kB/2.887MB
1f5a7c340982 Downloading [==> ] 393B/7.5kB
1f5a7c340982 Downloading [==================================================>] 7.5kB/7.5kB
1f5a7c340982 Verifying Checksum
1f5a7c340982 Download complete
6a0ac1617861 Downloading [> ] 38.72kB/3.864MB
6a0ac1617861 Verifying Checksum
6a0ac1617861 Download complete
6a0ac1617861 Extracting [> ] 65.54kB/3.864MB
bd08a3fe88bb Verifying Checksum
bd08a3fe88bb Download complete
4f4fb700ef54 Downloading [==================================================>] 32B/32B
4f4fb700ef54 Verifying Checksum
4f4fb700ef54 Download complete
6a0ac1617861 Extracting [=================> ] 1.376MB/3.864MB
ced802a712dd Downloading [==================================================>] 98B/98B
ced802a712dd Verifying Checksum
ced802a712dd Download complete
b4d493871bd4 Downloading [> ] 13.67kB/1.348MB
6a0ac1617861 Extracting [==================================================>] 3.864MB/3.864MB
b4d493871bd4 Verifying Checksum
b4d493871bd4 Download complete
6a0ac1617861 Pull complete
bd08a3fe88bb Extracting [> ] 32.77kB/2.887MB
7cefc0ec811f Downloading [> ] 40.12kB/3.992MB
b6c0324abfff Downloading [> ] 39.99kB/3.941MB
7cefc0ec811f Verifying Checksum
7cefc0ec811f Download complete
bd08a3fe88bb Extracting [===========> ] 655.4kB/2.887MB
387d6e14b64b Downloading [> ] 173.4kB/17MB
b6c0324abfff Verifying Checksum
b6c0324abfff Download complete
b6c0324abfff Extracting [> ] 65.54kB/3.941MB
bd08a3fe88bb Extracting [==========================> ] 1.54MB/2.887MB
387d6e14b64b Downloading [============> ] 4.234MB/17MB
b6c0324abfff Extracting [================> ] 1.311MB/3.941MB
bd08a3fe88bb Extracting [==================================================>] 2.887MB/2.887MB
387d6e14b64b Downloading [===============> ] 5.297MB/17MB
b6c0324abfff Extracting [==================================================>] 3.941MB/3.941MB
b6c0324abfff Pull complete
play.texcraft.dev Pulled
bd08a3fe88bb Pull complete
387d6e14b64b Downloading [=====================> ] 7.422MB/17MB
1f5a7c340982 Extracting [==================================================>] 7.5kB/7.5kB
1f5a7c340982 Extracting [==================================================>] 7.5kB/7.5kB
1f5a7c340982 Pull complete
387d6e14b64b Downloading [===========================> ] 9.513MB/17MB
387d6e14b64b Downloading [=================================> ] 11.44MB/17MB
387d6e14b64b Downloading [==============================================> ] 15.88MB/17MB
387d6e14b64b Verifying Checksum
387d6e14b64b Download complete
387d6e14b64b Extracting [> ] 196.6kB/17MB
387d6e14b64b Extracting [========> ] 2.753MB/17MB
387d6e14b64b Extracting [=============> ] 4.719MB/17MB
387d6e14b64b Extracting [=================> ] 5.898MB/17MB
387d6e14b64b Extracting [=====================> ] 7.274MB/17MB
387d6e14b64b Extracting [========================> ] 8.454MB/17MB
387d6e14b64b Extracting [============================> ] 9.83MB/17MB
387d6e14b64b Extracting [================================> ] 11.21MB/17MB
387d6e14b64b Extracting [==========================================> ] 14.35MB/17MB
387d6e14b64b Extracting [==================================================>] 17MB/17MB
387d6e14b64b Pull complete
4f4fb700ef54 Extracting [==================================================>] 32B/32B
4f4fb700ef54 Extracting [==================================================>] 32B/32B
4f4fb700ef54 Pull complete
ced802a712dd Extracting [==================================================>] 98B/98B
ced802a712dd Extracting [==================================================>] 98B/98B
ced802a712dd Pull complete
b4d493871bd4 Extracting [=> ] 32.77kB/1.348MB
b4d493871bd4 Extracting [==================================================>] 1.348MB/1.348MB
b4d493871bd4 Pull complete
7cefc0ec811f Extracting [> ] 65.54kB/3.992MB
7cefc0ec811f Extracting [====> ] 393.2kB/3.992MB
7cefc0ec811f Extracting [==========> ] 852kB/3.992MB
7cefc0ec811f Extracting [====================================> ] 2.884MB/3.992MB
7cefc0ec811f Extracting [=========================================> ] 3.342MB/3.992MB
7cefc0ec811f Extracting [============================================> ] 3.539MB/3.992MB
7cefc0ec811f Extracting [=============================================> ] 3.67MB/3.992MB
7cefc0ec811f Extracting [================================================> ] 3.867MB/3.992MB
7cefc0ec811f Extracting [==================================================>] 3.992MB/3.992MB
7cefc0ec811f Extracting [==================================================>] 3.992MB/3.992MB
7cefc0ec811f Pull complete
texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-redis-1 Running
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-texcraft.dev-1 Started
Container texcraftdev-play.texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2035 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=texcraft.dev
* start date: Apr 21 13:12:50 2026 GMT
* expire date: Jul 20 13:12:49 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Tue, 21 Apr 2026 14:13:23 GMT
< etag: "dhyw5f0vmwaobsk-gzip"
< last-modified: Tue, 21 Apr 2026 14:09:42 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
} [5 bytes data]
100 15284 0 15284 0 0 263k 0 --:--:-- --:--:-- --:--:-- 266k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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: Tue, 21 Apr 2026 14:13:23 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 11234 0 --:--:-- --:--:-- --:--:-- 11422
* Connection #0 to host play.texcraft.dev left intact
Success
Build #935. Deployed 14 days ago.
$ docker compose pull
texcraft.dev Pulling
play.texcraft.dev Pulling
redis Pulling
redis Pulled
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
a7730063fcfe Already exists
7bcc8268cbff Pulling fs layer
4f4fb700ef54 Already exists
b5fbe06a7ec2 Pulling fs layer
1c9771484bd8 Pulling fs layer
02c09df0aa42 Pulling fs layer
02c09df0aa42 Waiting
1c9771484bd8 Downloading [> ] 14.05kB/1.348MB
1c9771484bd8 Verifying Checksum
1c9771484bd8 Download complete
b5fbe06a7ec2 Downloading [==================================================>] 98B/98B
b5fbe06a7ec2 Verifying Checksum
b5fbe06a7ec2 Download complete
b5fbe06a7ec2 Extracting [==================================================>] 98B/98B
b5fbe06a7ec2 Extracting [==================================================>] 98B/98B
b5fbe06a7ec2 Pull complete
1c9771484bd8 Extracting [=> ] 32.77kB/1.348MB
02c09df0aa42 Downloading [> ] 41.05kB/3.989MB
1c9771484bd8 Extracting [===============> ] 426kB/1.348MB
7bcc8268cbff Downloading [> ] 40.28kB/3.941MB
02c09df0aa42 Downloading [=======================================> ] 3.146MB/3.989MB
02c09df0aa42 Verifying Checksum
02c09df0aa42 Download complete
1c9771484bd8 Extracting [===============================> ] 852kB/1.348MB
7bcc8268cbff Downloading [============================> ] 2.26MB/3.941MB
7bcc8268cbff Verifying Checksum
7bcc8268cbff Download complete
7bcc8268cbff Extracting [> ] 65.54kB/3.941MB
1c9771484bd8 Extracting [=================================================> ] 1.343MB/1.348MB
1c9771484bd8 Extracting [==================================================>] 1.348MB/1.348MB
7bcc8268cbff Extracting [===========> ] 917.5kB/3.941MB
1c9771484bd8 Pull complete
02c09df0aa42 Extracting [> ] 65.54kB/3.989MB
7bcc8268cbff Extracting [===============> ] 1.245MB/3.941MB
7bcc8268cbff Extracting [=====================> ] 1.704MB/3.941MB
02c09df0aa42 Extracting [===> ] 262.1kB/3.989MB
7bcc8268cbff Extracting [==============================> ] 2.425MB/3.941MB
02c09df0aa42 Extracting [====> ] 393.2kB/3.989MB
7bcc8268cbff Extracting [=================================================> ] 3.867MB/3.941MB
7bcc8268cbff Extracting [==================================================>] 3.941MB/3.941MB
7bcc8268cbff Pull complete
02c09df0aa42 Extracting [======> ] 524.3kB/3.989MB
02c09df0aa42 Extracting [========> ] 655.4kB/3.989MB
02c09df0aa42 Extracting [==============> ] 1.18MB/3.989MB
02c09df0aa42 Extracting [=========================> ] 2.032MB/3.989MB
02c09df0aa42 Extracting [=========================================> ] 3.277MB/3.989MB
02c09df0aa42 Extracting [===========================================> ] 3.473MB/3.989MB
02c09df0aa42 Extracting [=============================================> ] 3.604MB/3.989MB
02c09df0aa42 Extracting [=================================================> ] 3.932MB/3.989MB
02c09df0aa42 Extracting [==================================================>] 3.989MB/3.989MB
02c09df0aa42 Extracting [==================================================>] 3.989MB/3.989MB
02c09df0aa42 Pull complete
texcraft.dev Pulled
play.texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-redis-1 Running
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Started
Container texcraftdev-texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Tue, 07 Apr 2026 17:50:15 GMT
< etag: "dhn406135g5cbsk-gzip"
< last-modified: Tue, 07 Apr 2026 17:47:00 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
} [5 bytes data]
100 15284 0 15284 0 0 207k 0 --:--:-- --:--:-- --:--:-- 210k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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: Tue, 07 Apr 2026 17:50:15 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 9393 0 --:--:-- --:--:-- --:--:-- 9698
* Connection #0 to host play.texcraft.dev left intact
Success
Build #934. Deployed 14 days ago.
$ docker compose pull
redis Pulling
play.texcraft.dev Pulling
texcraft.dev Pulling
redis Pulled
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
c3653771a190 Pulling fs layer
bcdffb564770 Pulling fs layer
d3d1d2a15120 Pulling fs layer
a7730063fcfe Pulling fs layer
3e450a236251 Pulling fs layer
a7730063fcfe Waiting
3e450a236251 Waiting
c3653771a190 Downloading [==================================================>] 98B/98B
c3653771a190 Verifying Checksum
c3653771a190 Download complete
c3653771a190 Extracting [==================================================>] 98B/98B
c3653771a190 Extracting [==================================================>] 98B/98B
bcdffb564770 Downloading [> ] 14.11kB/1.348MB
d3d1d2a15120 Downloading [> ] 41kB/3.972MB
bcdffb564770 Downloading [==================================================>] 1.348MB/1.348MB
bcdffb564770 Verifying Checksum
bcdffb564770 Download complete
c3653771a190 Pull complete
bcdffb564770 Extracting [=> ] 32.77kB/1.348MB
d3d1d2a15120 Downloading [============================================> ] 3.535MB/3.972MB
a7730063fcfe Downloading [> ] 507.9kB/49.3MB
d3d1d2a15120 Verifying Checksum
d3d1d2a15120 Download complete
bcdffb564770 Extracting [=================> ] 458.8kB/1.348MB
3e450a236251 Downloading [> ] 40.12kB/3.941MB
a7730063fcfe Downloading [===> ] 3.015MB/49.3MB
bcdffb564770 Extracting [==================================> ] 917.5kB/1.348MB
3e450a236251 Downloading [============================> ] 2.208MB/3.941MB
a7730063fcfe Downloading [=====> ] 5.53MB/49.3MB
3e450a236251 Verifying Checksum
3e450a236251 Download complete
bcdffb564770 Extracting [==================================================>] 1.348MB/1.348MB
a7730063fcfe Downloading [=========> ] 9.538MB/49.3MB
bcdffb564770 Pull complete
a7730063fcfe Downloading [==============> ] 14.05MB/49.3MB
d3d1d2a15120 Extracting [> ] 65.54kB/3.972MB
a7730063fcfe Downloading [=====================> ] 21.6MB/49.3MB
d3d1d2a15120 Extracting [====> ] 393.2kB/3.972MB
a7730063fcfe Downloading [==============================> ] 30.16MB/49.3MB
d3d1d2a15120 Extracting [======> ] 524.3kB/3.972MB
a7730063fcfe Downloading [==================================> ] 33.7MB/49.3MB
a7730063fcfe Downloading [======================================> ] 37.74MB/49.3MB
a7730063fcfe Downloading [==========================================> ] 42.25MB/49.3MB
d3d1d2a15120 Extracting [========> ] 655.4kB/3.972MB
a7730063fcfe Downloading [================================================> ] 48.31MB/49.3MB
a7730063fcfe Verifying Checksum
a7730063fcfe Download complete
d3d1d2a15120 Extracting [===========> ] 917.5kB/3.972MB
d3d1d2a15120 Extracting [==============> ] 1.114MB/3.972MB
d3d1d2a15120 Extracting [=====================================> ] 3.015MB/3.972MB
a7730063fcfe Extracting [> ] 524.3kB/49.3MB
d3d1d2a15120 Extracting [=========================================> ] 3.277MB/3.972MB
a7730063fcfe Extracting [=> ] 1.573MB/49.3MB
d3d1d2a15120 Extracting [===========================================> ] 3.473MB/3.972MB
d3d1d2a15120 Extracting [=============================================> ] 3.604MB/3.972MB
a7730063fcfe Extracting [==> ] 2.621MB/49.3MB
a7730063fcfe Extracting [===> ] 3.146MB/49.3MB
d3d1d2a15120 Extracting [=================================================> ] 3.932MB/3.972MB
d3d1d2a15120 Extracting [==================================================>] 3.972MB/3.972MB
d3d1d2a15120 Pull complete
a7730063fcfe Extracting [====> ] 4.194MB/49.3MB
texcraft.dev Pulled
a7730063fcfe Extracting [====> ] 4.719MB/49.3MB
a7730063fcfe Extracting [=====> ] 5.767MB/49.3MB
a7730063fcfe Extracting [======> ] 6.816MB/49.3MB
a7730063fcfe Extracting [=======> ] 7.864MB/49.3MB
a7730063fcfe Extracting [=========> ] 9.437MB/49.3MB
a7730063fcfe Extracting [==========> ] 10.49MB/49.3MB
a7730063fcfe Extracting [===========> ] 11.53MB/49.3MB
a7730063fcfe Extracting [============> ] 12.06MB/49.3MB
a7730063fcfe Extracting [=============> ] 13.11MB/49.3MB
a7730063fcfe Extracting [==============> ] 14.68MB/49.3MB
a7730063fcfe Extracting [================> ] 16.25MB/49.3MB
a7730063fcfe Extracting [==================> ] 17.83MB/49.3MB
a7730063fcfe Extracting [===================> ] 19.4MB/49.3MB
a7730063fcfe Extracting [====================> ] 20.45MB/49.3MB
a7730063fcfe Extracting [=====================> ] 21.5MB/49.3MB
a7730063fcfe Extracting [======================> ] 22.02MB/49.3MB
a7730063fcfe Extracting [=======================> ] 23.59MB/49.3MB
a7730063fcfe Extracting [=========================> ] 25.17MB/49.3MB
a7730063fcfe Extracting [==========================> ] 25.69MB/49.3MB
a7730063fcfe Extracting [==========================> ] 26.21MB/49.3MB
a7730063fcfe Extracting [===========================> ] 26.74MB/49.3MB
a7730063fcfe Extracting [============================> ] 27.79MB/49.3MB
a7730063fcfe Extracting [============================> ] 28.31MB/49.3MB
a7730063fcfe Extracting [=============================> ] 29.36MB/49.3MB
a7730063fcfe Extracting [==============================> ] 30.41MB/49.3MB
a7730063fcfe Extracting [================================> ] 31.98MB/49.3MB
a7730063fcfe Extracting [=================================> ] 33.03MB/49.3MB
a7730063fcfe Extracting [===================================> ] 34.6MB/49.3MB
a7730063fcfe Extracting [====================================> ] 35.65MB/49.3MB
a7730063fcfe Extracting [=====================================> ] 36.7MB/49.3MB
a7730063fcfe Extracting [======================================> ] 37.75MB/49.3MB
a7730063fcfe Extracting [======================================> ] 38.27MB/49.3MB
a7730063fcfe Extracting [=======================================> ] 38.8MB/49.3MB
a7730063fcfe Extracting [========================================> ] 39.85MB/49.3MB
a7730063fcfe Extracting [=========================================> ] 40.89MB/49.3MB
a7730063fcfe Extracting [==========================================> ] 41.94MB/49.3MB
a7730063fcfe Extracting [===========================================> ] 42.99MB/49.3MB
a7730063fcfe Extracting [============================================> ] 43.52MB/49.3MB
a7730063fcfe Extracting [=============================================> ] 44.56MB/49.3MB
a7730063fcfe Extracting [==============================================> ] 45.61MB/49.3MB
a7730063fcfe Extracting [==============================================> ] 46.14MB/49.3MB
a7730063fcfe Extracting [===============================================> ] 46.66MB/49.3MB
a7730063fcfe Extracting [===============================================> ] 47.19MB/49.3MB
a7730063fcfe Extracting [================================================> ] 47.71MB/49.3MB
a7730063fcfe Extracting [================================================> ] 48.23MB/49.3MB
a7730063fcfe Extracting [=================================================> ] 48.76MB/49.3MB
a7730063fcfe Extracting [=================================================> ] 49.28MB/49.3MB
a7730063fcfe Extracting [==================================================>] 49.3MB/49.3MB
a7730063fcfe Pull complete
3e450a236251 Extracting [> ] 65.54kB/3.941MB
3e450a236251 Extracting [==============> ] 1.114MB/3.941MB
3e450a236251 Extracting [================================================> ] 3.801MB/3.941MB
3e450a236251 Extracting [==================================================>] 3.941MB/3.941MB
3e450a236251 Pull complete
play.texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-redis-1 Running
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-texcraft.dev-1 Started
Container texcraftdev-play.texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Host texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Tue, 07 Apr 2026 15:06:24 GMT
< etag: "dhn0if5xz2f4bsk-gzip"
< last-modified: Tue, 07 Apr 2026 15:02:46 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
{ [5 bytes data]
100 15284 0 15284 0 0 160k 0 --:--:-- --:--:-- --:--:-- 160k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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: Tue, 07 Apr 2026 15:06:24 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 13508 0 --:--:-- --:--:-- --:--:-- 13891
* Connection #0 to host play.texcraft.dev left intact
Success
Build #933. Deployed 3 weeks ago.
$ docker compose pull
play.texcraft.dev Pulling
texcraft.dev Pulling
redis Pulling
redis Pulled
8f6ad858d0a4 Already exists
52a745ecd686 Pulling fs layer
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
cb639aa78496 Pulling fs layer
6d4196bbd132 Pulling fs layer
16443e40224e Pulling fs layer
16443e40224e Waiting
52a745ecd686 Downloading [> ] 39.99kB/3.941MB
cb639aa78496 Downloading [==================================================>] 98B/98B
cb639aa78496 Verifying Checksum
cb639aa78496 Download complete
cb639aa78496 Extracting [==================================================>] 98B/98B
6d4196bbd132 Downloading [> ] 14.09kB/1.348MB
cb639aa78496 Extracting [==================================================>] 98B/98B
cb639aa78496 Pull complete
6d4196bbd132 Downloading [==================================================>] 1.348MB/1.348MB
6d4196bbd132 Verifying Checksum
6d4196bbd132 Download complete
52a745ecd686 Verifying Checksum
52a745ecd686 Download complete
6d4196bbd132 Extracting [=> ] 32.77kB/1.348MB
52a745ecd686 Extracting [> ] 65.54kB/3.941MB
16443e40224e Downloading [> ] 39.66kB/3.945MB
6d4196bbd132 Extracting [==================================================>] 1.348MB/1.348MB
52a745ecd686 Extracting [===================> ] 1.573MB/3.941MB
6d4196bbd132 Pull complete
16443e40224e Downloading [==================================================>] 3.945MB/3.945MB
16443e40224e Verifying Checksum
16443e40224e Download complete
16443e40224e Extracting [> ] 65.54kB/3.945MB
52a745ecd686 Extracting [==================================================>] 3.941MB/3.941MB
52a745ecd686 Pull complete
play.texcraft.dev Pulled
16443e40224e Extracting [====> ] 393.2kB/3.945MB
16443e40224e Extracting [============> ] 983kB/3.945MB
16443e40224e Extracting [=======================================> ] 3.146MB/3.945MB
16443e40224e Extracting [============================================> ] 3.473MB/3.945MB
16443e40224e Extracting [=================================================> ] 3.932MB/3.945MB
16443e40224e Extracting [==================================================>] 3.945MB/3.945MB
16443e40224e Pull complete
texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-redis-1 Running
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-texcraft.dev-1 Started
Container texcraftdev-play.texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Sun, 29 Mar 2026 03:53:44 GMT
< etag: "dheykmky6w3kbsk-gzip"
< last-modified: Sun, 29 Mar 2026 03:50:17 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
{ [5 bytes data]
100 15284 0 15284 0 0 272k 0 --:--:-- --:--:-- --:--:-- 276k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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: Sun, 29 Mar 2026 03:53:44 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 13392 0 --:--:-- --:--:-- --:--:-- 13526
* Connection #0 to host play.texcraft.dev left intact
Success
Build #932. Deployed 3 weeks ago.
$ docker compose pull
redis Pulling
texcraft.dev Pulling
play.texcraft.dev Pulling
redis Pulled
8f6ad858d0a4 Already exists
65b8206f61a4 Pulling fs layer
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
8f316b21af4b Pulling fs layer
6e99121a4501 Pulling fs layer
0a356c5ccf74 Pulling fs layer
0a356c5ccf74 Waiting
65b8206f61a4 Downloading [> ] 39.63kB/3.941MB
6e99121a4501 Downloading [> ] 14.1kB/1.348MB
6e99121a4501 Verifying Checksum
6e99121a4501 Download complete
8f316b21af4b Downloading [==================================================>] 98B/98B
8f316b21af4b Verifying Checksum
8f316b21af4b Download complete
65b8206f61a4 Verifying Checksum
65b8206f61a4 Download complete
8f316b21af4b Extracting [==================================================>] 98B/98B
8f316b21af4b Extracting [==================================================>] 98B/98B
65b8206f61a4 Extracting [> ] 65.54kB/3.941MB
8f316b21af4b Pull complete
6e99121a4501 Extracting [=> ] 32.77kB/1.348MB
65b8206f61a4 Extracting [================> ] 1.311MB/3.941MB
0a356c5ccf74 Downloading [> ] 40.03kB/3.936MB
6e99121a4501 Extracting [==================================================>] 1.348MB/1.348MB
0a356c5ccf74 Verifying Checksum
0a356c5ccf74 Download complete
6e99121a4501 Pull complete
0a356c5ccf74 Extracting [> ] 65.54kB/3.936MB
65b8206f61a4 Extracting [===========================================> ] 3.408MB/3.941MB
65b8206f61a4 Extracting [==================================================>] 3.941MB/3.941MB
65b8206f61a4 Pull complete
play.texcraft.dev Pulled
0a356c5ccf74 Extracting [======> ] 524.3kB/3.936MB
0a356c5ccf74 Extracting [==============> ] 1.114MB/3.936MB
0a356c5ccf74 Extracting [=========================================> ] 3.277MB/3.936MB
0a356c5ccf74 Extracting [============================================> ] 3.473MB/3.936MB
0a356c5ccf74 Extracting [==================================================>] 3.936MB/3.936MB
0a356c5ccf74 Pull complete
texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-redis-1 Running
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-texcraft.dev-1 Started
Container texcraftdev-play.texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Sat, 28 Mar 2026 20:29:45 GMT
< etag: "dhep4yfw8x6obsk-gzip"
< last-modified: Sat, 28 Mar 2026 20:26:39 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
} [5 bytes data]
100 15284 0 15284 0 0 239k 0 --:--:-- --:--:-- --:--:-- 240k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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: Sat, 28 Mar 2026 20:29:45 GMT
< via: 1.1 Caddy
< content-length: 514
<
} [5 bytes data]
100 514 100 514 0 0 12718 0 --:--:-- --:--:-- --:--:-- 12850
* Connection #0 to host play.texcraft.dev left intact
Success
Build #930. Deployed 3 weeks ago.
$ docker compose pull
play.texcraft.dev Pulling
texcraft.dev Pulling
redis Pulling
redis Pulled
8f6ad858d0a4 Already exists
ed47620eecc9 Pulling fs layer
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
1e457a32cb44 Pulling fs layer
d458bbe442a7 Pulling fs layer
92cf902376f8 Pulling fs layer
92cf902376f8 Waiting
ed47620eecc9 Downloading [> ] 39.63kB/3.941MB
ed47620eecc9 Verifying Checksum
ed47620eecc9 Download complete
ed47620eecc9 Extracting [> ] 65.54kB/3.941MB
d458bbe442a7 Downloading [> ] 14.11kB/1.348MB
1e457a32cb44 Downloading [==================================================>] 98B/98B
1e457a32cb44 Verifying Checksum
1e457a32cb44 Download complete
1e457a32cb44 Extracting [==================================================>] 98B/98B
1e457a32cb44 Extracting [==================================================>] 98B/98B
d458bbe442a7 Verifying Checksum
d458bbe442a7 Download complete
1e457a32cb44 Pull complete
d458bbe442a7 Extracting [=> ] 32.77kB/1.348MB
ed47620eecc9 Extracting [===============> ] 1.245MB/3.941MB
92cf902376f8 Downloading [> ] 40.12kB/3.906MB
92cf902376f8 Verifying Checksum
92cf902376f8 Download complete
d458bbe442a7 Extracting [=================================================> ] 1.343MB/1.348MB
ed47620eecc9 Extracting [==================================> ] 2.687MB/3.941MB
d458bbe442a7 Extracting [==================================================>] 1.348MB/1.348MB
d458bbe442a7 Pull complete
ed47620eecc9 Extracting [==================================================>] 3.941MB/3.941MB
92cf902376f8 Extracting [> ] 65.54kB/3.906MB
ed47620eecc9 Pull complete
play.texcraft.dev Pulled
92cf902376f8 Extracting [=======> ] 589.8kB/3.906MB
92cf902376f8 Extracting [========================================> ] 3.146MB/3.906MB
92cf902376f8 Extracting [============================================> ] 3.473MB/3.906MB
92cf902376f8 Extracting [==================================================>] 3.906MB/3.906MB
92cf902376f8 Extracting [==================================================>] 3.906MB/3.906MB
92cf902376f8 Pull complete
texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-redis-1 Running
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-texcraft.dev-1 Started
Container texcraftdev-play.texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Sat, 28 Mar 2026 08:48:45 GMT
< etag: "dhea7pibv30gbsk-gzip"
< last-modified: Sat, 28 Mar 2026 08:44:58 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
} [5 bytes data]
100 15284 0 15284 0 0 233k 0 --:--:-- --:--:-- --:--:-- 236k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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: Sat, 28 Mar 2026 08:48:45 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 6865 0 --:--:-- --:--:-- --:--:-- 6945
* Connection #0 to host play.texcraft.dev left intact
Success
Build #929. Deployed 3 weeks ago.
$ docker compose pull
play.texcraft.dev Pulling
redis Pulling
texcraft.dev Pulling
redis Pulled
589002ba0eae Already exists
8f6ad858d0a4 Already exists
69a0ee2ce755 Already exists
30e1558fda68 Pulling fs layer
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
9a62fb677a1e Pulling fs layer
a03f37c45b0e Pulling fs layer
a55d50f0266d Pulling fs layer
a55d50f0266d Waiting
30e1558fda68 Downloading [> ] 39.61kB/3.941MB
a03f37c45b0e Downloading [> ] 13.67kB/1.348MB
9a62fb677a1e Downloading [==================================================>] 98B/98B
9a62fb677a1e Verifying Checksum
9a62fb677a1e Download complete
9a62fb677a1e Extracting [==================================================>] 98B/98B
9a62fb677a1e Extracting [==================================================>] 98B/98B
a03f37c45b0e Verifying Checksum
a03f37c45b0e Download complete
9a62fb677a1e Pull complete
a03f37c45b0e Extracting [=> ] 32.77kB/1.348MB
30e1558fda68 Verifying Checksum
30e1558fda68 Download complete
30e1558fda68 Extracting [> ] 65.54kB/3.941MB
a03f37c45b0e Extracting [=================> ] 458.8kB/1.348MB
30e1558fda68 Extracting [=========> ] 786.4kB/3.941MB
a55d50f0266d Downloading [> ] 39.63kB/3.85MB
a03f37c45b0e Extracting [======================================> ] 1.049MB/1.348MB
30e1558fda68 Extracting [===================> ] 1.507MB/3.941MB
a55d50f0266d Verifying Checksum
a55d50f0266d Download complete
a03f37c45b0e Extracting [==================================================>] 1.348MB/1.348MB
30e1558fda68 Extracting [============================> ] 2.228MB/3.941MB
a03f37c45b0e Pull complete
a55d50f0266d Extracting [> ] 65.54kB/3.85MB
30e1558fda68 Extracting [==================================================>] 3.941MB/3.941MB
30e1558fda68 Pull complete
play.texcraft.dev Pulled
a55d50f0266d Extracting [====> ] 327.7kB/3.85MB
a55d50f0266d Extracting [======> ] 524.3kB/3.85MB
a55d50f0266d Extracting [===========> ] 852kB/3.85MB
a55d50f0266d Extracting [==============> ] 1.114MB/3.85MB
a55d50f0266d Extracting [==================> ] 1.442MB/3.85MB
a55d50f0266d Extracting [=======================================> ] 3.015MB/3.85MB
a55d50f0266d Extracting [=========================================> ] 3.211MB/3.85MB
a55d50f0266d Extracting [============================================> ] 3.408MB/3.85MB
a55d50f0266d Extracting [================================================> ] 3.736MB/3.85MB
a55d50f0266d Extracting [==================================================>] 3.85MB/3.85MB
a55d50f0266d Extracting [==================================================>] 3.85MB/3.85MB
a55d50f0266d Pull complete
texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-redis-1 Running
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Started
Container texcraftdev-texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Thu, 26 Mar 2026 18:41:46 GMT
< etag: "dhcxklo9a5mobsk-gzip"
< last-modified: Thu, 26 Mar 2026 18:37:54 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
{ [5 bytes data]
100 15284 0 15284 0 0 200k 0 --:--:-- --:--:-- --:--:-- 201k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> User-Agent: curl/8.14.1
> Accept: */*
>
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0{ [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: Thu, 26 Mar 2026 18:41:46 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 11974 0 --:--:-- --:--:-- --:--:-- 11953
* Connection #0 to host play.texcraft.dev left intact
Success
Build #927. Deployed 3 weeks ago.
$ docker compose pull
texcraft.dev Pulling
play.texcraft.dev Pulling
redis Pulling
redis Pulled
8f6ad858d0a4 Already exists
a5544f57713e Pulling fs layer
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
e3bb7287dd2a Pulling fs layer
f0784e092143 Pulling fs layer
fbc17eab9a56 Pulling fs layer
fbc17eab9a56 Waiting
a5544f57713e Downloading [> ] 39.63kB/3.941MB
f0784e092143 Downloading [> ] 13.67kB/1.348MB
f0784e092143 Verifying Checksum
f0784e092143 Download complete
e3bb7287dd2a Downloading [==================================================>] 98B/98B
e3bb7287dd2a Verifying Checksum
e3bb7287dd2a Download complete
e3bb7287dd2a Extracting [==================================================>] 98B/98B
e3bb7287dd2a Extracting [==================================================>] 98B/98B
a5544f57713e Verifying Checksum
a5544f57713e Download complete
a5544f57713e Extracting [> ] 65.54kB/3.941MB
e3bb7287dd2a Pull complete
f0784e092143 Extracting [=> ] 32.77kB/1.348MB
fbc17eab9a56 Downloading [> ] 39.68kB/3.844MB
a5544f57713e Extracting [=========> ] 720.9kB/3.941MB
f0784e092143 Extracting [=====================> ] 589.8kB/1.348MB
fbc17eab9a56 Downloading [===========================================> ] 3.358MB/3.844MB
fbc17eab9a56 Verifying Checksum
fbc17eab9a56 Download complete
a5544f57713e Extracting [==============> ] 1.18MB/3.941MB
f0784e092143 Extracting [====================================> ] 983kB/1.348MB
a5544f57713e Extracting [==========================> ] 2.097MB/3.941MB
f0784e092143 Extracting [==================================================>] 1.348MB/1.348MB
f0784e092143 Pull complete
fbc17eab9a56 Extracting [> ] 65.54kB/3.844MB
a5544f57713e Extracting [==================================================>] 3.941MB/3.941MB
a5544f57713e Pull complete
play.texcraft.dev Pulled
fbc17eab9a56 Extracting [====> ] 327.7kB/3.844MB
fbc17eab9a56 Extracting [=======> ] 589.8kB/3.844MB
fbc17eab9a56 Extracting [======================> ] 1.704MB/3.844MB
fbc17eab9a56 Extracting [==========================================> ] 3.277MB/3.844MB
fbc17eab9a56 Extracting [=============================================> ] 3.473MB/3.844MB
fbc17eab9a56 Extracting [==================================================>] 3.844MB/3.844MB
fbc17eab9a56 Extracting [==================================================>] 3.844MB/3.844MB
fbc17eab9a56 Pull complete
texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-redis-1 Running
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Started
Container texcraftdev-texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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: Thu, 26 Mar 2026 09:51:44 GMT
< etag: "dhcmbaeujw8wbsk-gzip"
< last-modified: Thu, 26 Mar 2026 09:48:32 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
{ [5 bytes data]
100 15284 0 15284 0 0 264k 0 --:--:-- --:--:-- --:--:-- 266k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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: Thu, 26 Mar 2026 09:51:44 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 6975 0 --:--:-- --:--:-- --:--:-- 7041
* Connection #0 to host play.texcraft.dev left intact
Success
Build #921. Deployed 4 weeks ago.
$ docker compose pull
texcraft.dev Pulling
redis Pulling
play.texcraft.dev Pulling
redis Pulled
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
8f6ad858d0a4 Already exists
4638b30f6c53 Already exists
2db31e13e365 Pulling fs layer
4f4fb700ef54 Already exists
6ab73c03d096 Pulling fs layer
30499320b417 Pulling fs layer
871a266ab160 Pulling fs layer
871a266ab160 Waiting
2db31e13e365 Downloading [> ] 40kB/3.946MB
30499320b417 Downloading [> ] 13.67kB/1.348MB
6ab73c03d096 Downloading [==================================================>] 98B/98B
6ab73c03d096 Verifying Checksum
6ab73c03d096 Download complete
6ab73c03d096 Extracting [==================================================>] 98B/98B
6ab73c03d096 Extracting [==================================================>] 98B/98B
30499320b417 Verifying Checksum
30499320b417 Download complete
2db31e13e365 Verifying Checksum
2db31e13e365 Download complete
6ab73c03d096 Pull complete
30499320b417 Extracting [=> ] 32.77kB/1.348MB
2db31e13e365 Extracting [> ] 65.54kB/3.946MB
30499320b417 Extracting [============================================> ] 1.212MB/1.348MB
2db31e13e365 Extracting [===============> ] 1.245MB/3.946MB
871a266ab160 Downloading [> ] 31.81kB/3.106MB
871a266ab160 Verifying Checksum
871a266ab160 Download complete
30499320b417 Extracting [==================================================>] 1.348MB/1.348MB
2db31e13e365 Extracting [================================> ] 2.556MB/3.946MB
2db31e13e365 Extracting [==================================================>] 3.946MB/3.946MB
30499320b417 Pull complete
871a266ab160 Extracting [> ] 32.77kB/3.106MB
2db31e13e365 Pull complete
play.texcraft.dev Pulled
871a266ab160 Extracting [===> ] 196.6kB/3.106MB
871a266ab160 Extracting [=======> ] 458.8kB/3.106MB
871a266ab160 Extracting [=============> ] 819.2kB/3.106MB
871a266ab160 Extracting [=======================> ] 1.475MB/3.106MB
871a266ab160 Extracting [======================================> ] 2.392MB/3.106MB
871a266ab160 Extracting [========================================> ] 2.49MB/3.106MB
871a266ab160 Extracting [==========================================> ] 2.621MB/3.106MB
871a266ab160 Extracting [===========================================> ] 2.72MB/3.106MB
871a266ab160 Extracting [==================================================>] 3.106MB/3.106MB
871a266ab160 Pull complete
texcraft.dev Pulled
Success
$ docker compose up -d
Container texcraftdev-play.texcraft.dev-1 Recreate
Container texcraftdev-redis-1 Running
Container texcraftdev-texcraft.dev-1 Recreate
Container texcraftdev-texcraft.dev-1 Recreated
Container texcraftdev-play.texcraft.dev-1 Recreated
Container texcraftdev-texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Starting
Container texcraftdev-play.texcraft.dev-1 Started
Container texcraftdev-texcraft.dev-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://texcraft.dev --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 texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1567 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):
{ [2028 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=texcraft.dev
* start date: Feb 20 23:30:24 2026 GMT
* expire date: May 21 23:30:23 2026 GMT
* subjectAltName: host "texcraft.dev" matched cert's "texcraft.dev"
* 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 texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: texcraft.dev
> 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, 23 Mar 2026 22:30:43 GMT
< etag: "dhaikjmuzbb4bsk-gzip"
< last-modified: Mon, 23 Mar 2026 22:27:13 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
} [5 bytes data]
100 15284 0 15284 0 0 229k 0 --:--:-- --:--:-- --:--:-- 229k
* Connection #0 to host texcraft.dev left intact
Success
$ curl --fail-with-body -v https://play.texcraft.dev --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 play.texcraft.dev:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1572 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):
{ [2046 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=play.texcraft.dev
* start date: Feb 21 13:50:24 2026 GMT
* expire date: May 22 13:50:23 2026 GMT
* subjectAltName: host "play.texcraft.dev" matched cert's "play.texcraft.dev"
* 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 play.texcraft.dev (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://play.texcraft.dev/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: play.texcraft.dev]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: play.texcraft.dev
> 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, 23 Mar 2026 22:30:43 GMT
< via: 1.1 Caddy
< content-length: 514
<
{ [5 bytes data]
100 514 100 514 0 0 13654 0 --:--:-- --:--:-- --:--:-- 13891
* Connection #0 to host play.texcraft.dev left intact
Success
{
"auth_token": "",
"branch": "main",
"name": "Texcraft",
"paused": false,
"repo": "github.com/jamespfennell/texcraft",
"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 texcraft.dev",
"run": "curl --fail-with-body -v https://texcraft.dev --output /dev/null"
},
{
"name": "Ping play.texcraft.dev",
"run": "curl --fail-with-body -v https://play.texcraft.dev --output /dev/null"
}
],
"wait_minutes": 0,
"working_directory": "/home/james/texcraft.dev"
}
github.com/jamespfennell/transiter
Last deployed 10 weeks ago.
No pending deployment.
Build #149. Deployed 10 weeks ago.
$ docker compose pull
transiter Skipped - Image is already being pulled by transiter-docs
postgres Pulling
transiter-docs Pulling
postgres Pulled
6bc9f599b3ef Pulling fs layer
89edcaae7ec4 Pulling fs layer
40d1bde12670 Pulling fs layer
9fa9d3f8a300 Pulling fs layer
8673ba527a63 Pulling fs layer
9fa9d3f8a300 Waiting
8673ba527a63 Waiting
6bc9f599b3ef Downloading [> ] 486.6kB/48.48MB
89edcaae7ec4 Downloading [> ] 252.9kB/24.04MB
6bc9f599b3ef Downloading [=====> ] 4.956MB/48.48MB
89edcaae7ec4 Downloading [==========> ] 4.964MB/24.04MB
89edcaae7ec4 Downloading [====================> ] 9.655MB/24.04MB
6bc9f599b3ef Downloading [==========> ] 9.874MB/48.48MB
40d1bde12670 Downloading [> ] 159.8kB/15.92MB
6bc9f599b3ef Downloading [=============> ] 13.34MB/48.48MB
89edcaae7ec4 Downloading [=========================> ] 12.13MB/24.04MB
40d1bde12670 Downloading [=========> ] 3.17MB/15.92MB
6bc9f599b3ef Downloading [===============> ] 14.81MB/48.48MB
89edcaae7ec4 Downloading [===============================> ] 15.08MB/24.04MB
40d1bde12670 Downloading [====================> ] 6.493MB/15.92MB
6bc9f599b3ef Downloading [=================> ] 17.28MB/48.48MB
89edcaae7ec4 Downloading [======================================> ] 18.3MB/24.04MB
40d1bde12670 Downloading [============================> ] 9.172MB/15.92MB
6bc9f599b3ef Downloading [====================> ] 20.27MB/48.48MB
89edcaae7ec4 Downloading [==========================================> ] 20.53MB/24.04MB
40d1bde12670 Downloading [=====================================> ] 12.03MB/15.92MB
89edcaae7ec4 Downloading [==============================================> ] 22.52MB/24.04MB
6bc9f599b3ef Downloading [=======================> ] 23.22MB/48.48MB
89edcaae7ec4 Verifying Checksum
89edcaae7ec4 Download complete
40d1bde12670 Downloading [================================================> ] 15.54MB/15.92MB
40d1bde12670 Verifying Checksum
40d1bde12670 Download complete
6bc9f599b3ef Downloading [===============================> ] 30.12MB/48.48MB
6bc9f599b3ef Downloading [=========================================> ] 40MB/48.48MB
6bc9f599b3ef Verifying Checksum
6bc9f599b3ef Download complete
9fa9d3f8a300 Downloading [> ] 7.555kB/672.5kB
9fa9d3f8a300 Verifying Checksum
9fa9d3f8a300 Download complete
8673ba527a63 Downloading [> ] 147.6kB/14.55MB
6bc9f599b3ef Extracting [> ] 491.5kB/48.48MB
8673ba527a63 Downloading [========> ] 2.426MB/14.55MB
8673ba527a63 Downloading [===============> ] 4.397MB/14.55MB
6bc9f599b3ef Extracting [==> ] 1.966MB/48.48MB
8673ba527a63 Downloading [============================> ] 8.293MB/14.55MB
8673ba527a63 Downloading [=================================================> ] 14.4MB/14.55MB
8673ba527a63 Verifying Checksum
8673ba527a63 Download complete
6bc9f599b3ef Extracting [===> ] 2.949MB/48.48MB
6bc9f599b3ef Extracting [====> ] 3.932MB/48.48MB
6bc9f599b3ef Extracting [=====> ] 5.407MB/48.48MB
6bc9f599b3ef Extracting [=======> ] 6.881MB/48.48MB
6bc9f599b3ef Extracting [========> ] 8.356MB/48.48MB
6bc9f599b3ef Extracting [=========> ] 9.339MB/48.48MB
6bc9f599b3ef Extracting [==========> ] 9.83MB/48.48MB
6bc9f599b3ef Extracting [===========> ] 10.81MB/48.48MB
6bc9f599b3ef Extracting [============> ] 11.8MB/48.48MB
6bc9f599b3ef Extracting [=============> ] 13.27MB/48.48MB
6bc9f599b3ef Extracting [================> ] 15.73MB/48.48MB
6bc9f599b3ef Extracting [===================> ] 18.68MB/48.48MB
6bc9f599b3ef Extracting [======================> ] 22.12MB/48.48MB
6bc9f599b3ef Extracting [========================> ] 24.08MB/48.48MB
6bc9f599b3ef Extracting [===========================> ] 26.54MB/48.48MB
6bc9f599b3ef Extracting [============================> ] 27.53MB/48.48MB
6bc9f599b3ef Extracting [================================> ] 31.95MB/48.48MB
6bc9f599b3ef Extracting [===================================> ] 34.9MB/48.48MB
6bc9f599b3ef Extracting [======================================> ] 36.86MB/48.48MB
6bc9f599b3ef Extracting [========================================> ] 38.83MB/48.48MB
6bc9f599b3ef Extracting [==========================================> ] 40.8MB/48.48MB
6bc9f599b3ef Extracting [============================================> ] 42.76MB/48.48MB
6bc9f599b3ef Extracting [==============================================> ] 44.73MB/48.48MB
6bc9f599b3ef Extracting [===============================================> ] 45.71MB/48.48MB
6bc9f599b3ef Extracting [================================================> ] 46.69MB/48.48MB
6bc9f599b3ef Extracting [=================================================> ] 47.68MB/48.48MB
6bc9f599b3ef Extracting [=================================================> ] 48.17MB/48.48MB
6bc9f599b3ef Extracting [==================================================>] 48.48MB/48.48MB
6bc9f599b3ef Pull complete
89edcaae7ec4 Extracting [> ] 262.1kB/24.04MB
89edcaae7ec4 Extracting [=====> ] 2.884MB/24.04MB
89edcaae7ec4 Extracting [===========> ] 5.505MB/24.04MB
89edcaae7ec4 Extracting [==============> ] 7.078MB/24.04MB
89edcaae7ec4 Extracting [====================> ] 9.961MB/24.04MB
89edcaae7ec4 Extracting [=========================> ] 12.32MB/24.04MB
89edcaae7ec4 Extracting [==============================> ] 14.68MB/24.04MB
89edcaae7ec4 Extracting [======================================> ] 18.61MB/24.04MB
89edcaae7ec4 Extracting [============================================> ] 21.23MB/24.04MB
89edcaae7ec4 Extracting [==============================================> ] 22.28MB/24.04MB
89edcaae7ec4 Extracting [===============================================> ] 23.07MB/24.04MB
89edcaae7ec4 Extracting [==================================================>] 24.04MB/24.04MB
89edcaae7ec4 Pull complete
40d1bde12670 Extracting [> ] 163.8kB/15.92MB
40d1bde12670 Extracting [=========> ] 2.949MB/15.92MB
40d1bde12670 Extracting [================> ] 5.407MB/15.92MB
40d1bde12670 Extracting [=========================> ] 8.028MB/15.92MB
40d1bde12670 Extracting [=============================> ] 9.503MB/15.92MB
40d1bde12670 Extracting [=================================> ] 10.65MB/15.92MB
40d1bde12670 Extracting [====================================> ] 11.63MB/15.92MB
40d1bde12670 Extracting [===========================================> ] 13.93MB/15.92MB
40d1bde12670 Extracting [==================================================>] 15.92MB/15.92MB
40d1bde12670 Pull complete
9fa9d3f8a300 Extracting [==> ] 32.77kB/672.5kB
9fa9d3f8a300 Extracting [==================================================>] 672.5kB/672.5kB
9fa9d3f8a300 Extracting [==================================================>] 672.5kB/672.5kB
9fa9d3f8a300 Pull complete
8673ba527a63 Extracting [> ] 163.8kB/14.55MB
8673ba527a63 Extracting [=====> ] 1.638MB/14.55MB
8673ba527a63 Extracting [=============> ] 3.932MB/14.55MB
8673ba527a63 Extracting [=====================> ] 6.39MB/14.55MB
8673ba527a63 Extracting [=================================================> ] 14.42MB/14.55MB
8673ba527a63 Extracting [==================================================>] 14.55MB/14.55MB
8673ba527a63 Pull complete
transiter-docs Pulled
Success
$ docker compose up -d transiter
Container transiter-transiter-1 Recreate
Container transiter-transiter-1 Recreated
Container transiter-transiter-1 Starting
Container transiter-transiter-1 Started
Success
$ docker compose up -d transiter-docs
Container transiter-transiter-docs-1 Recreate
Container transiter-transiter-docs-1 Recreated
Container transiter-transiter-docs-1 Starting
Container transiter-transiter-docs-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://demo.transiter.dev/systems/us-ny-subway --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 demo.transiter.dev (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):
{ [2050 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=demo.transiter.dev
* start date: Dec 23 04:39:16 2025 GMT
* expire date: Mar 23 04:39:15 2026 GMT
* subjectAltName: host "demo.transiter.dev" matched cert's "demo.transiter.dev"
* issuer: C=US; O=Let's Encrypt; CN=E7
* SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /systems/us-ny-subway]
* h2h3 [:scheme: https]
* h2h3 [:authority: demo.transiter.dev]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x5e2cb8535780)
} [5 bytes data]
> GET /systems/us-ny-subway HTTP/2
> Host: demo.transiter.dev
> 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: application/json
< date: Fri, 06 Feb 2026 04:10:45 GMT
< via: 1.1 Caddy
< content-length: 982
<
{ [5 bytes data]
100 982 100 982 0 0 4641 0 --:--:-- --:--:-- --:--:-- 4632
100 982 100 982 0 0 4634 0 --:--:-- --:--:-- --:--:-- 4632
* Connection #0 to host demo.transiter.dev left intact
Success
Build #138. Deployed 48 weeks ago.
$ docker compose pull
transiter-docs Skipped - Image is already being pulled by transiter
transiter Pulling
postgres Pulling
postgres Pulled
cf05a52c0235 Already exists
63964a8518f5 Already exists
cb6233552428 Pulling fs layer
3f6c051f7dc3 Pulling fs layer
f77b02a2f34b Pulling fs layer
3f6c051f7dc3 Downloading [> ] 7.442kB/658.1kB
3f6c051f7dc3 Downloading [==================================================>] 658.1kB/658.1kB
3f6c051f7dc3 Verifying Checksum
3f6c051f7dc3 Download complete
f77b02a2f34b Downloading [> ] 142.9kB/13.99MB
cb6233552428 Downloading [> ] 152.5kB/14.99MB
f77b02a2f34b Verifying Checksum
f77b02a2f34b Download complete
cb6233552428 Downloading [==============================================> ] 13.89MB/14.99MB
cb6233552428 Download complete
cb6233552428 Extracting [> ] 163.8kB/14.99MB
cb6233552428 Extracting [================> ] 4.915MB/14.99MB
cb6233552428 Extracting [=============================> ] 8.847MB/14.99MB
cb6233552428 Extracting [==============================================> ] 14.09MB/14.99MB
cb6233552428 Extracting [==================================================>] 14.99MB/14.99MB
cb6233552428 Pull complete
3f6c051f7dc3 Extracting [==> ] 32.77kB/658.1kB
3f6c051f7dc3 Extracting [==================================================>] 658.1kB/658.1kB
3f6c051f7dc3 Pull complete
f77b02a2f34b Extracting [> ] 163.8kB/13.99MB
f77b02a2f34b Extracting [==================> ] 5.243MB/13.99MB
f77b02a2f34b Extracting [==================================================>] 13.99MB/13.99MB
f77b02a2f34b Pull complete
transiter Pulled
Success
$ docker compose up -d transiter
Container transiter-transiter-1 Recreate
Container transiter-transiter-1 Recreated
Container transiter-transiter-1 Starting
Container transiter-transiter-1 Started
Success
$ docker compose up -d transiter-docs
Container transiter-transiter-docs-1 Recreate
Container transiter-transiter-docs-1 Recreated
Container transiter-transiter-docs-1 Starting
Container transiter-transiter-docs-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://demo.transiter.dev/systems/us-ny-subway --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 demo.transiter.dev (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):
{ [2084 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=demo.transiter.dev
* start date: Apr 27 18:47:59 2025 GMT
* expire date: Jul 26 18:47:58 2025 GMT
* subjectAltName: host "demo.transiter.dev" matched cert's "demo.transiter.dev"
* issuer: C=US; O=Let's Encrypt; CN=E5
* SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /systems/us-ny-subway]
* h2h3 [:scheme: https]
* h2h3 [:authority: demo.transiter.dev]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x595a760f6780)
} [5 bytes data]
> GET /systems/us-ny-subway HTTP/2
> Host: demo.transiter.dev
> 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: application/json
< date: Thu, 15 May 2025 03:37:05 GMT
< via: 1.1 Caddy
< content-length: 956
<
{ [5 bytes data]
100 956 100 956 0 0 12052 0 --:--:-- --:--:-- --:--:-- 12101
* Connection #0 to host demo.transiter.dev left intact
Success
Build #137. Deployed 48 weeks ago.
$ docker compose pull
transiter Skipped - Image is already being pulled by transiter-docs
transiter-docs Pulling
postgres Pulling
postgres Pulled
cf05a52c0235 Already exists
63964a8518f5 Pulling fs layer
7742f10b139e Pulling fs layer
a809d860c701 Pulling fs layer
778c091707dc Pulling fs layer
778c091707dc Waiting
63964a8518f5 Downloading [> ] 243.9kB/24.01MB
7742f10b139e Downloading [> ] 151.3kB/14.99MB
a809d860c701 Downloading [> ] 6.845kB/658.1kB
a809d860c701 Downloading [==================================================>] 658.1kB/658.1kB
a809d860c701 Verifying Checksum
a809d860c701 Download complete
63964a8518f5 Downloading [===================================> ] 17.26MB/24.01MB
7742f10b139e Downloading [====================================> ] 10.85MB/14.99MB
63964a8518f5 Verifying Checksum
63964a8518f5 Download complete
7742f10b139e Verifying Checksum
7742f10b139e Download complete
63964a8518f5 Extracting [> ] 262.1kB/24.01MB
778c091707dc Downloading [> ] 140.4kB/13.99MB
63964a8518f5 Extracting [========> ] 4.194MB/24.01MB
778c091707dc Downloading [===================================> ] 9.95MB/13.99MB
778c091707dc Verifying Checksum
778c091707dc Download complete
63964a8518f5 Extracting [================> ] 8.126MB/24.01MB
63964a8518f5 Extracting [===========================> ] 13.37MB/24.01MB
63964a8518f5 Extracting [======================================> ] 18.61MB/24.01MB
63964a8518f5 Extracting [=============================================> ] 22.02MB/24.01MB
63964a8518f5 Extracting [=================================================> ] 23.59MB/24.01MB
63964a8518f5 Extracting [==================================================>] 24.01MB/24.01MB
63964a8518f5 Pull complete
7742f10b139e Extracting [> ] 163.8kB/14.99MB
7742f10b139e Extracting [=============> ] 4.096MB/14.99MB
7742f10b139e Extracting [=========================> ] 7.7MB/14.99MB
7742f10b139e Extracting [==================================> ] 10.32MB/14.99MB
7742f10b139e Extracting [==================================================>] 14.99MB/14.99MB
7742f10b139e Pull complete
a809d860c701 Extracting [==> ] 32.77kB/658.1kB
a809d860c701 Extracting [==================================================>] 658.1kB/658.1kB
a809d860c701 Pull complete
778c091707dc Extracting [> ] 163.8kB/13.99MB
778c091707dc Extracting [============> ] 3.604MB/13.99MB
778c091707dc Extracting [======================> ] 6.39MB/13.99MB
778c091707dc Extracting [=============================================> ] 12.78MB/13.99MB
778c091707dc Extracting [==================================================>] 13.99MB/13.99MB
778c091707dc Pull complete
transiter-docs Pulled
Success
$ docker compose up -d transiter
Container transiter-transiter-1 Recreate
Container transiter-transiter-1 Recreated
Container transiter-transiter-1 Starting
Container transiter-transiter-1 Started
Success
$ docker compose up -d transiter-docs
Container transiter-transiter-docs-1 Recreate
Container transiter-transiter-docs-1 Recreated
Container transiter-transiter-docs-1 Starting
Container transiter-transiter-docs-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://demo.transiter.dev/systems/us-ny-subway --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 demo.transiter.dev (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):
{ [2084 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=demo.transiter.dev
* start date: Apr 27 18:47:59 2025 GMT
* expire date: Jul 26 18:47:58 2025 GMT
* subjectAltName: host "demo.transiter.dev" matched cert's "demo.transiter.dev"
* issuer: C=US; O=Let's Encrypt; CN=E5
* SSL certificate verify ok.
} [5 bytes data]
* using HTTP/2
* h2h3 [:method: GET]
* h2h3 [:path: /systems/us-ny-subway]
* h2h3 [:scheme: https]
* h2h3 [:authority: demo.transiter.dev]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x6125824d8780)
} [5 bytes data]
> GET /systems/us-ny-subway HTTP/2
> Host: demo.transiter.dev
> 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: application/json
< date: Wed, 14 May 2025 22:01:06 GMT
< via: 1.1 Caddy
< content-length: 956
<
{ [5 bytes data]
100 956 100 956 0 0 4967 0 --:--:-- --:--:-- --:--:-- 4979
* Connection #0 to host demo.transiter.dev left intact
Success
Build #135. Failed 51 weeks ago.
$ /mount/docker compose pull
Failed to start command.
This is probably an error in the project configuration.
Error: No such file or directory (os error 2)
Failure
{
"auth_token": "",
"branch": "master",
"name": "Transiter",
"paused": false,
"repo": "github.com/jamespfennell/transiter",
"retention": 10,
"steps": [
{
"name": "Pull",
"run": "docker compose pull"
},
{
"name": "Redeploy Transiter",
"run": "docker compose up -d transiter"
},
{
"name": "Redeploy Transiter docs",
"run": "docker compose up -d transiter-docs"
},
{
"name": "Wait for 5 seconds",
"run": "sleep 5"
},
{
"name": "Ping demo.transiter.dev",
"run": "curl --fail-with-body -v https://demo.transiter.dev/systems/us-ny-subway --output /dev/null"
}
],
"wait_minutes": 0,
"working_directory": "/home/james/transiter"
}
github.com/jamespfennell/jpfennell.com
Last deployed 5 weeks ago.
No pending deployment.
Build #19. Deployed 5 weeks ago.
$ docker compose pull
jpfennell.com Pulling
206356c42440 Pulling fs layer
75a1d70aee50 Pulling fs layer
a9d395129dce Pulling fs layer
df9da45c1db2 Pulling fs layer
18a071c04bd1 Pulling fs layer
79697674b897 Pulling fs layer
9eef040df109 Pulling fs layer
3b5519ccaf9f Pulling fs layer
4f4fb700ef54 Pulling fs layer
df9da45c1db2 Waiting
18a071c04bd1 Waiting
79697674b897 Waiting
9eef040df109 Waiting
3b5519ccaf9f Waiting
4f4fb700ef54 Waiting
75a1d70aee50 Downloading [> ] 335.9kB/33.16MB
a9d395129dce Downloading [==============================> ] 389B/629B
a9d395129dce Downloading [==================================================>] 629B/629B
a9d395129dce Verifying Checksum
a9d395129dce Download complete
206356c42440 Downloading [> ] 302.3kB/29.78MB
75a1d70aee50 Downloading [=====================> ] 14.3MB/33.16MB
206356c42440 Downloading [======================> ] 13.54MB/29.78MB
df9da45c1db2 Downloading [=====================> ] 409B/954B
df9da45c1db2 Downloading [==================================================>] 954B/954B
df9da45c1db2 Verifying Checksum
df9da45c1db2 Download complete
75a1d70aee50 Downloading [========================================> ] 26.53MB/33.16MB
206356c42440 Downloading [============================================> ] 26.48MB/29.78MB
206356c42440 Download complete
18a071c04bd1 Downloading [==================================================>] 403B/403B
18a071c04bd1 Verifying Checksum
18a071c04bd1 Download complete
75a1d70aee50 Verifying Checksum
75a1d70aee50 Download complete
206356c42440 Extracting [> ] 327.7kB/29.78MB
79697674b897 Downloading [================> ] 408B/1.208kB
79697674b897 Downloading [==================================================>] 1.208kB/1.208kB
79697674b897 Verifying Checksum
79697674b897 Download complete
9eef040df109 Downloading [=============> ] 376B/1.397kB
9eef040df109 Downloading [==================================================>] 1.397kB/1.397kB
9eef040df109 Verifying Checksum
9eef040df109 Download complete
4f4fb700ef54 Downloading [==================================================>] 32B/32B
4f4fb700ef54 Verifying Checksum
4f4fb700ef54 Download complete
3b5519ccaf9f Downloading [> ] 11.27kB/1.034MB
3b5519ccaf9f Verifying Checksum
3b5519ccaf9f Download complete
206356c42440 Extracting [====> ] 2.621MB/29.78MB
206356c42440 Extracting [==========> ] 6.226MB/29.78MB
206356c42440 Extracting [==============> ] 8.847MB/29.78MB
206356c42440 Extracting [==================> ] 10.81MB/29.78MB
206356c42440 Extracting [====================> ] 12.45MB/29.78MB
206356c42440 Extracting [=========================> ] 15.07MB/29.78MB
206356c42440 Extracting [=============================> ] 17.69MB/29.78MB
206356c42440 Extracting [===================================> ] 20.97MB/29.78MB
206356c42440 Extracting [========================================> ] 24.25MB/29.78MB
206356c42440 Extracting [============================================> ] 26.21MB/29.78MB
206356c42440 Extracting [==============================================> ] 27.85MB/29.78MB
206356c42440 Extracting [================================================> ] 28.84MB/29.78MB
206356c42440 Extracting [================================================> ] 29.16MB/29.78MB
206356c42440 Extracting [==================================================>] 29.78MB/29.78MB
206356c42440 Pull complete
75a1d70aee50 Extracting [> ] 360.4kB/33.16MB
75a1d70aee50 Extracting [=====> ] 3.965MB/33.16MB
75a1d70aee50 Extracting [============> ] 8.29MB/33.16MB
75a1d70aee50 Extracting [===================> ] 12.98MB/33.16MB
75a1d70aee50 Extracting [======================> ] 14.78MB/33.16MB
75a1d70aee50 Extracting [===========================> ] 18.02MB/33.16MB
75a1d70aee50 Extracting [==============================> ] 20.19MB/33.16MB
75a1d70aee50 Extracting [==================================> ] 22.71MB/33.16MB
75a1d70aee50 Extracting [=====================================> ] 24.87MB/33.16MB
75a1d70aee50 Extracting [==========================================> ] 28.48MB/33.16MB
75a1d70aee50 Extracting [==============================================> ] 30.64MB/33.16MB
75a1d70aee50 Extracting [================================================> ] 32.44MB/33.16MB
75a1d70aee50 Extracting [==================================================>] 33.16MB/33.16MB
75a1d70aee50 Extracting [==================================================>] 33.16MB/33.16MB
75a1d70aee50 Pull complete
a9d395129dce Extracting [==================================================>] 629B/629B
a9d395129dce Extracting [==================================================>] 629B/629B
a9d395129dce Pull complete
df9da45c1db2 Extracting [==================================================>] 954B/954B
df9da45c1db2 Extracting [==================================================>] 954B/954B
df9da45c1db2 Pull complete
18a071c04bd1 Extracting [==================================================>] 403B/403B
18a071c04bd1 Extracting [==================================================>] 403B/403B
18a071c04bd1 Pull complete
79697674b897 Extracting [==================================================>] 1.208kB/1.208kB
79697674b897 Extracting [==================================================>] 1.208kB/1.208kB
79697674b897 Pull complete
9eef040df109 Extracting [==================================================>] 1.397kB/1.397kB
9eef040df109 Extracting [==================================================>] 1.397kB/1.397kB
9eef040df109 Pull complete
3b5519ccaf9f Extracting [=> ] 32.77kB/1.034MB
3b5519ccaf9f Extracting [==================================================>] 1.034MB/1.034MB
3b5519ccaf9f Extracting [==================================================>] 1.034MB/1.034MB
3b5519ccaf9f Pull complete
4f4fb700ef54 Extracting [==================================================>] 32B/32B
4f4fb700ef54 Extracting [==================================================>] 32B/32B
4f4fb700ef54 Pull complete
jpfennell.com Pulled
Success
$ docker compose up -d
Container jpfennellcom-jpfennell.com-1 Recreate
Container jpfennellcom-jpfennell.com-1 Recreated
Container jpfennellcom-jpfennell.com-1 Starting
Container jpfennellcom-jpfennell.com-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://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 jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1568 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):
{ [2039 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=jpfennell.com
* start date: Feb 20 10:10:24 2026 GMT
* expire date: May 21 10:10:23 2026 GMT
* subjectAltName: host "jpfennell.com" matched cert's "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 jpfennell.com (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: 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: 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
< accept-ranges: bytes
< alt-svc: h3=":443"; ma=2592000
< content-type: text/html
< date: Tue, 17 Mar 2026 02:33:42 GMT
< etag: "69b80a1b-e8c"
< last-modified: Mon, 16 Mar 2026 13:48:11 GMT
< server: nginx/1.29.6
< via: 1.1 Caddy
< content-length: 3724
<
{ [5 bytes data]
100 3724 100 3724 0 0 95843 0 --:--:-- --:--:-- --:--:-- 98000
* Connection #0 to host jpfennell.com left intact
Success
{
"auth_token": "",
"branch": "master",
"name": "jpfennell.com",
"paused": false,
"repo": "github.com/jamespfennell/jpfennell.com",
"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 jpfennell.com",
"run": "curl --fail-with-body -v https://jpfennell.com --output /dev/null"
}
],
"wait_minutes": 0,
"working_directory": "/home/james/jpfennell.com"
}
github.com/jamespfennell/realtimerail.nyc
Last deployed 24 weeks ago.
No pending deployment.
Build #159. Deployed 24 weeks ago.
$ docker compose pull
ui Pulling
38513bd72563 Pulling fs layer
a0a6ab141558 Pulling fs layer
0e86847a3920 Pulling fs layer
1bace2083289 Pulling fs layer
89df300a082a Pulling fs layer
35fb9ffa6621 Pulling fs layer
5545b08f9d26 Pulling fs layer
ef8cc739aa5b Pulling fs layer
403892722aea Pulling fs layer
7e2f54adf500 Pulling fs layer
35fb9ffa6621 Waiting
5545b08f9d26 Waiting
1bace2083289 Waiting
89df300a082a Waiting
ef8cc739aa5b Waiting
403892722aea Waiting
7e2f54adf500 Waiting
a0a6ab141558 Downloading [> ] 306.6kB/29.97MB
38513bd72563 Downloading [> ] 302.4kB/29.78MB
0e86847a3920 Downloading [==================================================>] 629B/629B
0e86847a3920 Verifying Checksum
0e86847a3920 Download complete
38513bd72563 Downloading [===========> ] 7.05MB/29.78MB
a0a6ab141558 Downloading [==================> ] 11.39MB/29.97MB
1bace2083289 Downloading [==================================================>] 955B/955B
1bace2083289 Verifying Checksum
1bace2083289 Download complete
38513bd72563 Downloading [================================> ] 19.06MB/29.78MB
a0a6ab141558 Downloading [==================================> ] 20.63MB/29.97MB
a0a6ab141558 Downloading [================================================> ] 28.93MB/29.97MB
a0a6ab141558 Verifying Checksum
a0a6ab141558 Download complete
38513bd72563 Downloading [=============================================> ] 27.08MB/29.78MB
38513bd72563 Download complete
89df300a082a Downloading [==================================================>] 404B/404B
89df300a082a Download complete
35fb9ffa6621 Downloading [======================================> ] 934B/1.209kB
35fb9ffa6621 Downloading [==================================================>] 1.209kB/1.209kB
35fb9ffa6621 Verifying Checksum
35fb9ffa6621 Download complete
38513bd72563 Extracting [> ] 327.7kB/29.78MB
5545b08f9d26 Downloading [=================================> ] 934B/1.397kB
5545b08f9d26 Downloading [==================================================>] 1.397kB/1.397kB
5545b08f9d26 Verifying Checksum
5545b08f9d26 Download complete
38513bd72563 Extracting [======> ] 3.932MB/29.78MB
ef8cc739aa5b Downloading [> ] 5.476kB/452.8kB
ef8cc739aa5b Downloading [==================================================>] 452.8kB/452.8kB
ef8cc739aa5b Verifying Checksum
ef8cc739aa5b Download complete
38513bd72563 Extracting [=============> ] 7.864MB/29.78MB
403892722aea Downloading [==================================================>] 176B/176B
403892722aea Verifying Checksum
403892722aea Download complete
7e2f54adf500 Downloading [==================================================>] 631B/631B
7e2f54adf500 Verifying Checksum
7e2f54adf500 Download complete
38513bd72563 Extracting [=================> ] 10.16MB/29.78MB
38513bd72563 Extracting [====================> ] 12.12MB/29.78MB
38513bd72563 Extracting [=========================> ] 15.4MB/29.78MB
38513bd72563 Extracting [===============================> ] 18.68MB/29.78MB
38513bd72563 Extracting [======================================> ] 22.94MB/29.78MB
38513bd72563 Extracting [===========================================> ] 25.89MB/29.78MB
38513bd72563 Extracting [============================================> ] 26.21MB/29.78MB
38513bd72563 Extracting [=============================================> ] 27.2MB/29.78MB
38513bd72563 Extracting [================================================> ] 28.84MB/29.78MB
38513bd72563 Extracting [=================================================> ] 29.49MB/29.78MB
38513bd72563 Extracting [==================================================>] 29.78MB/29.78MB
38513bd72563 Pull complete
a0a6ab141558 Extracting [> ] 327.7kB/29.97MB
a0a6ab141558 Extracting [=====> ] 3.277MB/29.97MB
a0a6ab141558 Extracting [===========> ] 6.881MB/29.97MB
a0a6ab141558 Extracting [==================> ] 10.81MB/29.97MB
a0a6ab141558 Extracting [=========================> ] 15.07MB/29.97MB
a0a6ab141558 Extracting [================================> ] 19.33MB/29.97MB
a0a6ab141558 Extracting [====================================> ] 21.95MB/29.97MB
a0a6ab141558 Extracting [===========================================> ] 25.89MB/29.97MB
a0a6ab141558 Extracting [=============================================> ] 27.2MB/29.97MB
a0a6ab141558 Extracting [==============================================> ] 27.85MB/29.97MB
a0a6ab141558 Extracting [==================================================>] 29.97MB/29.97MB
a0a6ab141558 Pull complete
0e86847a3920 Extracting [==================================================>] 629B/629B
0e86847a3920 Pull complete
1bace2083289 Extracting [==================================================>] 955B/955B
1bace2083289 Extracting [==================================================>] 955B/955B
1bace2083289 Pull complete
89df300a082a Extracting [==================================================>] 404B/404B
89df300a082a Extracting [==================================================>] 404B/404B
89df300a082a Pull complete
35fb9ffa6621 Extracting [==================================================>] 1.209kB/1.209kB
35fb9ffa6621 Extracting [==================================================>] 1.209kB/1.209kB
35fb9ffa6621 Pull complete
5545b08f9d26 Extracting [==================================================>] 1.397kB/1.397kB
5545b08f9d26 Extracting [==================================================>] 1.397kB/1.397kB
5545b08f9d26 Pull complete
ef8cc739aa5b Extracting [===> ] 32.77kB/452.8kB
ef8cc739aa5b Extracting [==================================================>] 452.8kB/452.8kB
ef8cc739aa5b Extracting [==================================================>] 452.8kB/452.8kB
ef8cc739aa5b Pull complete
403892722aea Extracting [==================================================>] 176B/176B
403892722aea Extracting [==================================================>] 176B/176B
403892722aea Pull complete
7e2f54adf500 Extracting [==================================================>] 631B/631B
7e2f54adf500 Extracting [==================================================>] 631B/631B
7e2f54adf500 Pull complete
ui Pulled
Success
$ docker compose up -d
Container realtimerailnyc-ui-1 Recreate
Container realtimerailnyc-ui-1 Recreated
Container realtimerailnyc-ui-1 Starting
Container realtimerailnyc-ui-1 Started
Success
Build #153. Deployed 50 weeks ago.
$ docker compose pull
ui Pulling
254e724d7786 Already exists
913115292750 Already exists
3e544d53ce49 Already exists
4f21ed9ac0c0 Already exists
d38f2ef2d6f2 Already exists
40a6e9f4e456 Already exists
d3dc5ec71e9d Already exists
08918b0b85a9 Pulling fs layer
0d804759fc34 Pulling fs layer
3381308beb78 Pulling fs layer
08918b0b85a9 Downloading [> ] 4.704kB/452.7kB
0d804759fc34 Downloading [==================================================>] 176B/176B
0d804759fc34 Verifying Checksum
0d804759fc34 Download complete
08918b0b85a9 Download complete
08918b0b85a9 Extracting [===> ] 32.77kB/452.7kB
3381308beb78 Downloading [==================================================>] 629B/629B
3381308beb78 Verifying Checksum
3381308beb78 Download complete
08918b0b85a9 Extracting [==================================================>] 452.7kB/452.7kB
08918b0b85a9 Pull complete
0d804759fc34 Extracting [==================================================>] 176B/176B
0d804759fc34 Extracting [==================================================>] 176B/176B
0d804759fc34 Pull complete
3381308beb78 Extracting [==================================================>] 629B/629B
3381308beb78 Extracting [==================================================>] 629B/629B
3381308beb78 Pull complete
ui Pulled
Success
$ docker compose up -d
Container realtimerailnyc-ui-1 Recreate
Container realtimerailnyc-ui-1 Recreated
Container realtimerailnyc-ui-1 Starting
Container realtimerailnyc-ui-1 Started
Success
Build #150. Deployed 51 weeks ago.
$ /mount/docker compose pull
ui Pulling
254e724d7786 Pulling fs layer
913115292750 Pulling fs layer
3e544d53ce49 Pulling fs layer
4f21ed9ac0c0 Pulling fs layer
d38f2ef2d6f2 Pulling fs layer
40a6e9f4e456 Pulling fs layer
d3dc5ec71e9d Pulling fs layer
dcf703aafc35 Pulling fs layer
ee7ba3cbfac7 Pulling fs layer
a3435257b538 Pulling fs layer
40a6e9f4e456 Waiting
d3dc5ec71e9d Waiting
dcf703aafc35 Waiting
ee7ba3cbfac7 Waiting
a3435257b538 Waiting
4f21ed9ac0c0 Waiting
d38f2ef2d6f2 Waiting
3e544d53ce49 Downloading [==================================================>] 629B/629B
3e544d53ce49 Verifying Checksum
3e544d53ce49 Download complete
913115292750 Downloading [> ] 441.6kB/44.15MB
254e724d7786 Downloading [> ] 297.2kB/28.23MB
913115292750 Downloading [==================> ] 16.5MB/44.15MB
254e724d7786 Downloading [==============================> ] 17.19MB/28.23MB
254e724d7786 Verifying Checksum
254e724d7786 Download complete
4f21ed9ac0c0 Downloading [====================================> ] 690B/955B
4f21ed9ac0c0 Download complete
913115292750 Downloading [=================================> ] 29.42MB/44.15MB
913115292750 Downloading [=============================================> ] 40.18MB/44.15MB
254e724d7786 Extracting [> ] 294.9kB/28.23MB
d38f2ef2d6f2 Downloading [==================================================>] 404B/404B
d38f2ef2d6f2 Verifying Checksum
d38f2ef2d6f2 Download complete
40a6e9f4e456 Downloading [=============================> ] 721B/1.208kB
40a6e9f4e456 Downloading [==================================================>] 1.208kB/1.208kB
40a6e9f4e456 Verifying Checksum
40a6e9f4e456 Download complete
913115292750 Verifying Checksum
913115292750 Download complete
d3dc5ec71e9d Downloading [=========================> ] 721B/1.398kB
d3dc5ec71e9d Downloading [==================================================>] 1.398kB/1.398kB
d3dc5ec71e9d Verifying Checksum
d3dc5ec71e9d Download complete
254e724d7786 Extracting [====> ] 2.654MB/28.23MB
ee7ba3cbfac7 Downloading [==================================================>] 177B/177B
ee7ba3cbfac7 Verifying Checksum
ee7ba3cbfac7 Download complete
dcf703aafc35 Downloading [> ] 4.829kB/449.2kB
dcf703aafc35 Downloading [==================================================>] 449.2kB/449.2kB
dcf703aafc35 Verifying Checksum
dcf703aafc35 Download complete
a3435257b538 Downloading [==================================================>] 634B/634B
a3435257b538 Verifying Checksum
a3435257b538 Download complete
254e724d7786 Extracting [========> ] 4.719MB/28.23MB
254e724d7786 Extracting [============> ] 7.078MB/28.23MB
254e724d7786 Extracting [==============> ] 8.258MB/28.23MB
254e724d7786 Extracting [================> ] 9.142MB/28.23MB
254e724d7786 Extracting [=================> ] 10.03MB/28.23MB
254e724d7786 Extracting [===================> ] 11.21MB/28.23MB
254e724d7786 Extracting [=====================> ] 12.39MB/28.23MB
254e724d7786 Extracting [=========================> ] 14.16MB/28.23MB
254e724d7786 Extracting [============================> ] 15.93MB/28.23MB
254e724d7786 Extracting [=================================> ] 19.17MB/28.23MB
254e724d7786 Extracting [=======================================> ] 22.12MB/28.23MB
254e724d7786 Extracting [==========================================> ] 23.89MB/28.23MB
254e724d7786 Extracting [============================================> ] 25.36MB/28.23MB
254e724d7786 Extracting [===============================================> ] 26.84MB/28.23MB
254e724d7786 Extracting [================================================> ] 27.43MB/28.23MB
254e724d7786 Extracting [==================================================>] 28.23MB/28.23MB
254e724d7786 Pull complete
913115292750 Extracting [> ] 458.8kB/44.15MB
913115292750 Extracting [=====> ] 5.046MB/44.15MB
913115292750 Extracting [===========> ] 10.09MB/44.15MB
913115292750 Extracting [=================> ] 15.14MB/44.15MB
913115292750 Extracting [=======================> ] 20.64MB/44.15MB
913115292750 Extracting [==========================> ] 23.4MB/44.15MB
913115292750 Extracting [=============================> ] 25.69MB/44.15MB
913115292750 Extracting [==================================> ] 30.74MB/44.15MB
913115292750 Extracting [========================================> ] 35.78MB/44.15MB
913115292750 Extracting [==========================================> ] 37.62MB/44.15MB
913115292750 Extracting [============================================> ] 38.99MB/44.15MB
913115292750 Extracting [===============================================> ] 41.75MB/44.15MB
913115292750 Extracting [================================================> ] 42.66MB/44.15MB
913115292750 Extracting [==================================================>] 44.15MB/44.15MB
913115292750 Pull complete
3e544d53ce49 Extracting [==================================================>] 629B/629B
3e544d53ce49 Extracting [==================================================>] 629B/629B
3e544d53ce49 Pull complete
4f21ed9ac0c0 Extracting [==================================================>] 955B/955B
4f21ed9ac0c0 Extracting [==================================================>] 955B/955B
4f21ed9ac0c0 Pull complete
d38f2ef2d6f2 Extracting [==================================================>] 404B/404B
d38f2ef2d6f2 Extracting [==================================================>] 404B/404B
d38f2ef2d6f2 Pull complete
40a6e9f4e456 Extracting [==================================================>] 1.208kB/1.208kB
40a6e9f4e456 Extracting [==================================================>] 1.208kB/1.208kB
40a6e9f4e456 Pull complete
d3dc5ec71e9d Extracting [==================================================>] 1.398kB/1.398kB
d3dc5ec71e9d Extracting [==================================================>] 1.398kB/1.398kB
d3dc5ec71e9d Pull complete
dcf703aafc35 Extracting [===> ] 32.77kB/449.2kB
dcf703aafc35 Extracting [==================================================>] 449.2kB/449.2kB
dcf703aafc35 Extracting [==================================================>] 449.2kB/449.2kB
dcf703aafc35 Pull complete
ee7ba3cbfac7 Extracting [==================================================>] 177B/177B
ee7ba3cbfac7 Extracting [==================================================>] 177B/177B
ee7ba3cbfac7 Pull complete
a3435257b538 Extracting [==================================================>] 634B/634B
a3435257b538 Extracting [==================================================>] 634B/634B
a3435257b538 Pull complete
ui Pulled
Success
$ /mount/docker compose up -d
Container realtimerailnyc-ui-1 Recreate
Container realtimerailnyc-ui-1 Recreated
Container realtimerailnyc-ui-1 Starting
Container realtimerailnyc-ui-1 Started
Success
Build #149. Failed 51 weeks ago.
$ /mount/docker compose pull
Failed to start command.
This is probably an error in the project configuration.
Error: No such file or directory (os error 2)
Failure
{
"auth_token": "",
"branch": "master",
"name": "realtimerail.nyc",
"paused": false,
"repo": "github.com/jamespfennell/realtimerail.nyc",
"retention": 10,
"steps": [
{
"name": "Pull",
"run": "docker compose pull"
},
{
"name": "Redeploy",
"run": "docker compose up -d"
}
],
"wait_minutes": 0,
"working_directory": "/home/james/realtimerail.nyc"
}
github.com/jamespfennell/rollouts
Last deployed 10 weeks ago.
No pending deployment.
Build #34. Deployed 10 weeks ago.
$ docker compose pull
rollouts1 Skipped - Image is already being pulled by rollouts2
rollouts2 Pulling
rollouts2 Pulled
Success
$ docker compose up -d rollouts2
Container rollouts-a-rollouts2-1 Recreate
Container rollouts-a-rollouts2-1 Recreated
Container rollouts-a-rollouts2-1 Starting
Container rollouts-a-rollouts2-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://rollouts2.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* Host rollouts2.a.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11: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):
{ [2063 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=rollouts2.a.jpfennell.com
* start date: Dec 23 13:19:16 2025 GMT
* expire date: Mar 23 13:19:15 2026 GMT
* subjectAltName: host "rollouts2.a.jpfennell.com" matched cert's "rollouts2.a.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 rollouts2.a.jpfennell.com (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts2.a.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts2.a.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: rollouts2.a.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:53:56 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
<
{ [5 bytes data]
100 91339 0 91339 0 0 2448k 0 --:--:-- --:--:-- --:--:-- 2477k
* Connection #0 to host rollouts2.a.jpfennell.com left intact
Success
Build #33. Deployed 10 weeks ago.
$ docker compose pull
rollouts2 Skipped - Image is already being pulled by rollouts1
rollouts1 Pulling
rollouts1 Pulled
Success
$ docker compose up -d rollouts2
Container rollouts-a-rollouts2-1 Recreate
Container rollouts-a-rollouts2-1 Recreated
Container rollouts-a-rollouts2-1 Starting
Container rollouts-a-rollouts2-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://rollouts2.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* Host rollouts2.a.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11: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):
{ [2063 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=rollouts2.a.jpfennell.com
* start date: Dec 23 13:19:16 2025 GMT
* expire date: Mar 23 13:19:15 2026 GMT
* subjectAltName: host "rollouts2.a.jpfennell.com" matched cert's "rollouts2.a.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 rollouts2.a.jpfennell.com (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts2.a.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts2.a.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: rollouts2.a.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:38:51 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
<
{ [5 bytes data]
100 82216 0 82216 0 0 2330k 0 --:--:-- --:--:-- --:--:-- 2361k
* Connection #0 to host rollouts2.a.jpfennell.com left intact
Success
Build #32. Deployed 10 weeks ago.
$ docker compose pull
rollouts2 Skipped - Image is already being pulled by rollouts1
rollouts1 Pulling
rollouts1 Pulled
Success
$ docker compose up -d rollouts2
Container rollouts-a-rollouts2-1 Recreate
Container rollouts-a-rollouts2-1 Recreated
Container rollouts-a-rollouts2-1 Starting
Container rollouts-a-rollouts2-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://rollouts2.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* Host rollouts2.a.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11: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):
{ [2063 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=rollouts2.a.jpfennell.com
* start date: Dec 23 13:19:16 2025 GMT
* expire date: Mar 23 13:19:15 2026 GMT
* subjectAltName: host "rollouts2.a.jpfennell.com" matched cert's "rollouts2.a.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 rollouts2.a.jpfennell.com (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts2.a.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts2.a.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: rollouts2.a.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:52:46 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
<
{ [5 bytes data]
100 73335 0 73335 0 0 1850k 0 --:--:-- --:--:-- --:--:-- 1884k
* Connection #0 to host rollouts2.a.jpfennell.com left intact
Success
Build #31. Deployed 10 weeks ago.
$ docker compose pull
rollouts2 Skipped - Image is already being pulled by rollouts1
rollouts1 Pulling
rollouts1 Pulled
Success
$ docker compose up -d rollouts2
Container rollouts-a-rollouts2-1 Recreate
Container rollouts-a-rollouts2-1 Recreated
Container rollouts-a-rollouts2-1 Starting
Container rollouts-a-rollouts2-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://rollouts2.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* Host rollouts2.a.jpfennell.com:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11: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):
{ [2063 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=rollouts2.a.jpfennell.com
* start date: Dec 23 13:19:16 2025 GMT
* expire date: Mar 23 13:19:15 2026 GMT
* subjectAltName: host "rollouts2.a.jpfennell.com" matched cert's "rollouts2.a.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 rollouts2.a.jpfennell.com (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://rollouts2.a.jpfennell.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: rollouts2.a.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: rollouts2.a.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: Fri, 06 Feb 2026 04:21:40 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
<
{ [5 bytes data]
100 63057 0 63057 0 0 2033k 0 --:--:-- --:--:-- --:--:-- 2052k
* Connection #0 to host rollouts2.a.jpfennell.com left intact
Success
Build #30. Deployed 50 weeks ago.
$ docker compose pull
rollouts1 Skipped - Image is already being pulled by rollouts2
rollouts2 Pulling
rollouts2 Pulled
Success
$ docker compose up -d rollouts2
Container rollouts-a-rollouts2-1 Recreate
Container rollouts-a-rollouts2-1 Recreated
Container rollouts-a-rollouts2-1 Starting
Container rollouts-a-rollouts2-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://rollouts2.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 rollouts2.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):
{ [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.a.jpfennell.com
* start date: Apr 28 14:14:24 2025 GMT
* expire date: Jul 27 14:14:23 2025 GMT
* subjectAltName: host "rollouts2.a.jpfennell.com" matched cert's "rollouts2.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: rollouts2.a.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x592b1d017780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts2.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:35:59 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
<
{ [5 bytes data]
100 52036 0 52036 0 0 426k 0 --:--:-- --:--:-- --:--:-- 427k
* Connection #0 to host rollouts2.a.jpfennell.com left intact
Success
Build #29. Failed 50 weeks ago.
$ docker compose pull
Failed to start command.
This is probably an error in the project configuration.
Error: No such file or directory (os error 2)
Failure
Build #28. Deployed 51 weeks ago.
$ /mount/docker compose pull
rollouts1 Skipped - Image is already being pulled by rollouts2
rollouts2 Pulling
rollouts2 Pulled
Success
$ /mount/docker compose up -d rollouts2
Container rollouts-a-rollouts2-1 Recreate
Container rollouts-a-rollouts2-1 Recreated
Container rollouts-a-rollouts2-1 Starting
Container rollouts-a-rollouts2-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://rollouts2.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 rollouts2.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):
{ [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.a.jpfennell.com
* start date: Apr 28 14:14:24 2025 GMT
* expire date: Jul 27 14:14:23 2025 GMT
* subjectAltName: host "rollouts2.a.jpfennell.com" matched cert's "rollouts2.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: rollouts2.a.jpfennell.com]
* h2h3 [user-agent: curl/7.88.1]
* h2h3 [accept: */*]
* Using Stream ID: 1 (easy handle 0x5c52f03fd780)
} [5 bytes data]
> GET / HTTP/2
> Host: rollouts2.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:17:16 GMT
< server: tiny-http (Rust)
< via: 1.1 Caddy
< content-length: 28667
<
{ [5 bytes data]
100 28667 100 28667 0 0 298k 0 --:--:-- --:--:-- --:--:-- 301k
* Connection #0 to host rollouts2.a.jpfennell.com left intact
Success
Build #26. Failed 51 weeks ago.
$ /mount/docker compose pull
Failed to start command.
This is probably an error in the project configuration.
Error: No such file or directory (os error 2)
Failure
{
"auth_token": "",
"branch": "main",
"name": "rollouts2.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 rollouts2"
},
{
"name": "Wait for 5 seconds",
"run": "sleep 5"
},
{
"name": "Ping rollouts2.a.jpfennell.com",
"run": "curl --fail-with-body -v https://rollouts2.a.jpfennell.com --output /dev/null"
}
],
"wait_minutes": 10,
"working_directory": "/home/james/rollouts-a"
}
github.com/jamespfennell/unionpots.nyc
Last deployed 5 weeks ago.
No pending deployment.
Build #4. Deployed 5 weeks ago.
$ docker compose pull
jpfennell.com Pulling
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
27f0c6d37158 Pulling fs layer
99173df8e8f1 Pulling fs layer
99173df8e8f1 Downloading [====================================> ] 422B/578B
99173df8e8f1 Downloading [==================================================>] 578B/578B
99173df8e8f1 Verifying Checksum
99173df8e8f1 Download complete
27f0c6d37158 Downloading [==================================================>] 103B/103B
27f0c6d37158 Verifying Checksum
27f0c6d37158 Download complete
27f0c6d37158 Extracting [==================================================>] 103B/103B
27f0c6d37158 Extracting [==================================================>] 103B/103B
27f0c6d37158 Pull complete
99173df8e8f1 Extracting [==================================================>] 578B/578B
99173df8e8f1 Extracting [==================================================>] 578B/578B
99173df8e8f1 Pull complete
jpfennell.com Pulled
Success
$ docker compose up -d
Container unionpotsnyc-jpfennell.com-1 Recreate
Container unionpotsnyc-jpfennell.com-1 Recreated
Container unionpotsnyc-jpfennell.com-1 Starting
Container unionpotsnyc-jpfennell.com-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://unionpots.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* Host unionpots.nyc:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1568 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):
{ [2037 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=unionpots.nyc
* start date: Feb 23 04:36:45 2026 GMT
* expire date: May 24 04:36:44 2026 GMT
* subjectAltName: host "unionpots.nyc" matched cert's "unionpots.nyc"
* 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 unionpots.nyc (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://unionpots.nyc/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: unionpots.nyc]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: unionpots.nyc
> 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, 16 Mar 2026 13:42:23 GMT
< etag: "dh4905edss1sle-gzip"
< last-modified: Mon, 16 Mar 2026 13:41:25 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
<
} [5 bytes data]
100 770 0 770 0 0 16658 0 --:--:-- --:--:-- --:--:-- 16739
* Connection #0 to host unionpots.nyc left intact
Success
Build #3. Deployed 5 weeks ago.
$ docker compose pull
jpfennell.com Pulling
589002ba0eae Already exists
69a0ee2ce755 Already exists
6304d7b2d77e Already exists
4638b30f6c53 Already exists
4f4fb700ef54 Already exists
809503be270f Pulling fs layer
0f744e571e3f Pulling fs layer
809503be270f Downloading [==================================================>] 103B/103B
809503be270f Verifying Checksum
809503be270f Download complete
809503be270f Extracting [==================================================>] 103B/103B
809503be270f Extracting [==================================================>] 103B/103B
0f744e571e3f Downloading [==================================================>] 305B/305B
0f744e571e3f Verifying Checksum
0f744e571e3f Download complete
809503be270f Pull complete
0f744e571e3f Extracting [==================================================>] 305B/305B
0f744e571e3f Extracting [==================================================>] 305B/305B
0f744e571e3f Pull complete
jpfennell.com Pulled
Success
$ docker compose up -d
Container unionpotsnyc-jpfennell.com-1 Recreate
Container unionpotsnyc-jpfennell.com-1 Recreated
Container unionpotsnyc-jpfennell.com-1 Starting
Container unionpotsnyc-jpfennell.com-1 Started
Success
$ sleep 5
Success
$ curl --fail-with-body -v https://unionpots.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* Host unionpots.nyc:443 was resolved.
* IPv6: (none)
* IPv4: 162.243.34.11
* Trying 162.243.34.11:443...
* ALPN: curl offers h2,http/1.1
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [1568 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):
{ [2037 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=unionpots.nyc
* start date: Feb 23 04:36:45 2026 GMT
* expire date: May 24 04:36:44 2026 GMT
* subjectAltName: host "unionpots.nyc" matched cert's "unionpots.nyc"
* 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 unionpots.nyc (162.243.34.11) port 443
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://unionpots.nyc/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: unionpots.nyc]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.14.1]
* [HTTP/2] [1] [accept: */*]
} [5 bytes data]
> GET / HTTP/2
> Host: unionpots.nyc
> 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
< accept-ranges: bytes
< alt-svc: h3=":443"; ma=2592000
< content-type: text/html; charset=utf-8
< date: Mon, 16 Mar 2026 03:39:22 GMT
< etag: "dh3vxi1j9ips71"
< last-modified: Mon, 16 Mar 2026 03:26:43 GMT
< server: Caddy
< vary: Accept-Encoding
< via: 1.1 Caddy
< content-length: 253
<
{ [5 bytes data]
100 253 100 253 0 0 5121 0 --:--:-- --:--:-- --:--:-- 5163
* Connection #0 to host unionpots.nyc left intact
Success
{
"auth_token": "",
"branch": "main",
"name": "unionpots.nyc",
"paused": false,
"repo": "github.com/jamespfennell/unionpots.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 unionpots.nyc",
"run": "curl --fail-with-body -v https://unionpots.nyc --output /dev/null"
}
],
"wait_minutes": 0,
"working_directory": "/home/james/unionpots.nyc"
}
| resource | used/limit | resetting |
|---|---|---|
| core | 0/60 | in 59 minutes |