basecamp / kamal

Deploy web apps anywhere.
https://kamal-deploy.org
MIT License
10.6k stars 408 forks source link

Timeout Error Connecting to Registry #1028

Closed antarr closed 2 days ago

antarr commented 2 days ago

I'm trying to deploy for the first time using Kamal on a new Ubuntu 22 server. I'm getting an error when connecting to the github registry.

shell

➜  rails_app git:(main) ✗ kamal setup 
  INFO [1a89bb1b] Running /usr/bin/env mkdir -p .kamal on x.x.x.x
  INFO [1a89bb1b] Finished in 1.044 seconds with exit status 0 (successful).
Acquiring the deploy lock...
Ensure Docker is installed...
  INFO [c1092eab] Running docker -v on x.x.x.x
  INFO [c1092eab] Finished in 0.119 seconds with exit status 0 (successful).
  INFO [a107bfbd] Running docker login ghcr.io -u [REDACTED] -p [REDACTED] on x.x.x.x
Releasing the deploy lock...
  Finished all in 76.5 seconds
  ERROR (Net::SSH::ConnectionTimeout): Exception while executing on host 192.168.0.2: Net::SSH::ConnectionTimeout

deploy.yml

# Name of your application. Used to uniquely configure containers.
service: rails_app

# Name of the container image.
image: account/rails_app

# Deploy to these servers.
servers:
  web:
    - x.x.x.x
  # job:
  #   hosts:
  #     - 192.168.0.1
  #   cmd: bin/jobs

# Enable SSL auto certification via Let's Encrypt (and allow for multiple apps on one server).
# Set ssl: false if using something like Cloudflare to terminate SSL (but keep host!).
# proxy:
#   ssl: true
#   host: app.example.com

# Credentials for your image host.
registry:
  # Specify the registry server, if you're not using Docker Hub
  server: ghcr.io
  username: antarr

  # Always use an access token rather than real password (pulled from .kamal/secrets).
  password:
    - KAMAL_REGISTRY_PASSWORD

# Configure builder setup.
builder:
  arch: x86_64

ssh:
  user: deploy

accessories:
  redis:
    image: redis:7.0
    host: 192.168.0.2
    port: 6379
    directories:
      - data:/data
djmb commented 2 days ago

The timeout is to 192.168.0.2, so I think it is for your accessory. That's a placeholder IP address and part of the IPv4 private address space - you should replace it with the IP of your server.