Files

1.2 KiB

Deployment (Kamal)

We deploy with Kamal. You do NOT need to manually set up web servers or Docker on the VM. kamal setup provisions everything.

Requirements

Local machine

  • Ruby + Bundler
  • Docker (for building images)
  • SSH key access to the VM
  • Registry credentials (see config/deploy.yml)

Remote VM

  • Bare VM with SSH access
  • Open ports: 22, 80, 443
  • A domain name pointing at the VM (for SSL)

Configure

Update config/deploy.yml:

service: sanasto-wiki
image: your-registry/sanasto-wiki

servers:
  web:
    - your-server-ip

proxy:
  ssl: true
  host: sanasto.example.com

registry:
  server: ghcr.io
  username: your-github-username

ssh:
  user: deploy

Set the registry password:

export KAMAL_REGISTRY_PASSWORD="your-token"

Make sure config/master.key is present locally.

First deploy

bundle exec kamal setup

Regular deploys

bundle exec kamal deploy

Useful commands

bundle exec kamal app logs --follow
bundle exec kamal app details
bundle exec kamal app exec --interactive --reuse "bin/rails console"
bundle exec kamal rollback

Initial app setup

Visit https://your-domain/setup once after the first deploy to create the admin account.