{"id":43064565,"url":"https://github.com/scarver2/kamalduo","last_synced_at":"2026-01-31T12:35:38.540Z","repository":{"id":331516833,"uuid":"1124754287","full_name":"scarver2/kamalduo","owner":"scarver2","description":"This repo demonstrates using Kamal 2 to deploy a Sinatra Rack application. VPS instructions included.","archived":false,"fork":false,"pushed_at":"2026-01-10T00:44:16.000Z","size":36,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-10T20:10:17.139Z","etag":null,"topics":["docker","docker-compose","kamal","kamal2","ruby","sinantra"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scarver2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-29T14:59:45.000Z","updated_at":"2026-01-10T00:44:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/scarver2/kamalduo","commit_stats":null,"previous_names":["scarver2/kamalduo"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/scarver2/kamalduo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarver2%2Fkamalduo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarver2%2Fkamalduo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarver2%2Fkamalduo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarver2%2Fkamalduo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scarver2","download_url":"https://codeload.github.com/scarver2/kamalduo/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scarver2%2Fkamalduo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28943399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T12:10:04.904Z","status":"ssl_error","status_checked_at":"2026-01-31T12:09:58.894Z","response_time":128,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","kamal","kamal2","ruby","sinantra"],"created_at":"2026-01-31T12:35:36.628Z","updated_at":"2026-01-31T12:35:38.534Z","avatar_url":"https://github.com/scarver2.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [Sinatra Kamal Duo](https://github.com/scarver2/kamalduo)\n\nThis repo demonstrates deploying a [Sinatra Rack application](https://sinatrarb.com) using [Kamal 2](https://kamal-deploy.org). Instructions are included how to deploy to popular VPSes.\n\n## Prerequisites\n\nInstall Kamal 2 gem globally.\n```bash\ngem install kamal\n```\n\n## Instructions\n\nInstall the application's RubyGem dependecies.\n```bash\nbundle install\n```\n\nSet the environment variables for your project using the `.env.template` file.\nUse `bin/kamal` to access all Kamal commands using the environment variables.\n\nA `.env.local` file is provided to test Docker, Kamal, and the Sinatra Rack application locally.\n\n### Recommendation\nIt is recommended you add a `kamalduo.local` entry to your local `/etc/hosts` file to test locally:\n```bash\ngrep -qE '^\\s*127\\.0\\.0\\.1\\s+kamalduo\\.local$' /etc/hosts \\\n  || echo '127.0.0.1  kamalduo.local' | sudo tee -a /etc/hosts \u003e /dev/null\n```\n\n## The Kamal Advantage\n### Health Check\nKamalDuo demonstrates a health check endpoint at `/healthz` that Kamal will use to verify the application is running.\n\n```bash\ncurl -i http://localhost:9292/healthz\n```\n\n## Documentation\n\n📦[docs](docs)\u003cbr /\u003e\n ┣ 📂[devops](docs/devops)\u003cbr /\u003e\n ┃ ┗ [GitHub Actions](docs/devops/github_actions.md)\u003cbr /\u003e\n ┣ 📂[hosting](docs/hosting)\u003cbr /\u003e\n ┃ ┣ [Digital Ocean](docs/devops/digital_ocean.md)\u003cbr /\u003e\n ┃ ┣ [Hetzner](docs/devops/hetzner.md)\u003cbr /\u003e\n ┃ ┣ [Vultr](docs/devops/vultr.md)\u003cbr /\u003e\n ┣ 📂[secrets](docs/secrets)\u003cbr /\u003e\n ┃ ┗ 📜[Bitwarden](docs/secrets/bitwarden.md)\u003cbr /\u003e\n ┣ 📜[Docker](docs/docker.md)\u003cbr /\u003e\n ┣ 📜[Kamal](docs/kamal.md)\u003cbr /\u003e\n ┗ 📜[NGINX](docs/hosting/nginx.md)\u003cbr /\u003e\n\nDeveloped using [Kamal 2.10.1](https://github.com/basecamp/kamal/releases/tag/v2.10.1).\n\n## Credits\n\n@2026 [Stan Carver II](http://stancarver.com), [A1 Web Consulting](https://a1webconsulting.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscarver2%2Fkamalduo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscarver2%2Fkamalduo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscarver2%2Fkamalduo/lists"}