Files
sanasto-wiki/docs/DEPLOYMENT.md

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.