<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments on: Kamal&#8217;s missing tutorial – how to deploy a Rails 8 app with Postgres to your VPS	</title>
	<atom:link href="https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/feed/" rel="self" type="application/rss+xml" />
	<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/</link>
	<description>Maker of PromptHero, Jobician, Hustl, and more</description>
	<lastBuildDate>Thu, 26 Feb 2026 18:31:05 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.1</generator>
	<item>
		<title>
		By: Bruno		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19717</link>

		<dc:creator><![CDATA[Bruno]]></dc:creator>
		<pubDate>Thu, 26 Feb 2026 18:31:05 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19717</guid>

					<description><![CDATA[Hey, Thanks for your post and update to the new Rails and Kamal versions!! I&#039;m trying to setup the pg-backups but it&#039;s not working with my S3 setup. The SECRET_ACCESS_KEY is present in the env for the image but the scripts fail to load it while running the cron job. Any tips on that?!?]]></description>
			<content:encoded><![CDATA[<p>Hey, Thanks for your post and update to the new Rails and Kamal versions!! I&#8217;m trying to setup the pg-backups but it&#8217;s not working with my S3 setup. The SECRET_ACCESS_KEY is present in the env for the image but the scripts fail to load it while running the cron job. Any tips on that?!?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: YiSheng Lee		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19694</link>

		<dc:creator><![CDATA[YiSheng Lee]]></dc:creator>
		<pubDate>Thu, 02 Oct 2025 23:54:28 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19694</guid>

					<description><![CDATA[Hello, thanks for the guide, it is very well written. I am trying to deploy a simple rails app in DigitalOcean Droplet, and I do not have a host, what should I filled in here


proxy:
  ssl: false
  host: noname-1.localhost]]></description>
			<content:encoded><![CDATA[<p>Hello, thanks for the guide, it is very well written. I am trying to deploy a simple rails app in DigitalOcean Droplet, and I do not have a host, what should I filled in here</p>
<p>proxy:<br />
  ssl: false<br />
  host: noname-1.localhost</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: rameerez		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19692</link>

		<dc:creator><![CDATA[rameerez]]></dc:creator>
		<pubDate>Sun, 31 Aug 2025 23:15:09 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19692</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19690&quot;&gt;Andrés Morales&lt;/a&gt;.

Yay! Glad it helped. Thanks for commenting!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19690">Andrés Morales</a>.</p>
<p>Yay! Glad it helped. Thanks for commenting!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Andrés Morales		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19690</link>

		<dc:creator><![CDATA[Andrés Morales]]></dc:creator>
		<pubDate>Tue, 05 Aug 2025 22:56:54 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19690</guid>

					<description><![CDATA[Thank you! I was having a hard time setting up accessories containers. Your examples on the different options the kamal command provides where very helpful.]]></description>
			<content:encoded><![CDATA[<p>Thank you! I was having a hard time setting up accessories containers. Your examples on the different options the kamal command provides where very helpful.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: rameerez		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19684</link>

		<dc:creator><![CDATA[rameerez]]></dc:creator>
		<pubDate>Tue, 20 May 2025 14:02:06 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19684</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19674&quot;&gt;Stephen&lt;/a&gt;.

Thanks, very good insight!

I ended up using a similar image: kartoza/pg-backup

They&#039;re essentially the same

But it looks like eeshugerman/postgres-backup-s3 hasn&#039;t been updated in the last few years, whereas kartoza/pg-backup seems well maintained and updated regularly

Will update the blogpost with my working backup config! Thanks for the idea!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19674">Stephen</a>.</p>
<p>Thanks, very good insight!</p>
<p>I ended up using a similar image: kartoza/pg-backup</p>
<p>They&#8217;re essentially the same</p>
<p>But it looks like eeshugerman/postgres-backup-s3 hasn&#8217;t been updated in the last few years, whereas kartoza/pg-backup seems well maintained and updated regularly</p>
<p>Will update the blogpost with my working backup config! Thanks for the idea!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: rameerez		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19683</link>

		<dc:creator><![CDATA[rameerez]]></dc:creator>
		<pubDate>Tue, 20 May 2025 13:59:35 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19683</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19670&quot;&gt;domarcio&lt;/a&gt;.

Thanks for the heads up!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19670">domarcio</a>.</p>
<p>Thanks for the heads up!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: rameerez		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19682</link>

		<dc:creator><![CDATA[rameerez]]></dc:creator>
		<pubDate>Tue, 20 May 2025 13:59:19 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19682</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-18028&quot;&gt;FAbian&lt;/a&gt;.

I think it&#039;s passed already but I&#039;m updating the post later today and will update and refresh all configs to make sure they&#039;re current and valid!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-18028">FAbian</a>.</p>
<p>I think it&#8217;s passed already but I&#8217;m updating the post later today and will update and refresh all configs to make sure they&#8217;re current and valid!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: rameerez		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19681</link>

		<dc:creator><![CDATA[rameerez]]></dc:creator>
		<pubDate>Tue, 20 May 2025 13:48:18 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19681</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-18000&quot;&gt;XYZ&lt;/a&gt;.

Thanks for the heads up! I believe it was necessary in earlier versions of Kamal, but I&#039;ve just tried removing it with a new Kamal 2.6 app and you&#039;re right – it&#039;s not needed at all. I&#039;ll update the blogpost, thanks!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-18000">XYZ</a>.</p>
<p>Thanks for the heads up! I believe it was necessary in earlier versions of Kamal, but I&#8217;ve just tried removing it with a new Kamal 2.6 app and you&#8217;re right – it&#8217;s not needed at all. I&#8217;ll update the blogpost, thanks!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Stephen		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19674</link>

		<dc:creator><![CDATA[Stephen]]></dc:creator>
		<pubDate>Sat, 26 Apr 2025 21:04:48 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19674</guid>

					<description><![CDATA[Hey, thanks for the article. Here’s how i do backups with my s3 storage provider, works like a charm. Just add as an additional accessory, like so:

accessories:
  pg-backups:
    # Boot the service: kamal accessory boot [SERVICE]-postgres-backups -d production
    # Manual Backup: kamal accessory exec -i --reuse pg-backups &quot;sh backup.sh&quot; -d production
    # Restore from backup: kamal accessory exec -i --reuse pg-backups &quot;sh restore.sh [TIMESTAMP]&quot; -d production
    # Restore from backup: kamal accessory exec -i --reuse pg-backups &quot;sh restore.sh 2024-10-05T00:00:00&quot; -d production
    image: eeshugerman/postgres-backup-s3:16
    host: 159.xxx.xx
    env:
      clear:
        SCHEDULE: &quot;@hourly&quot;
        BACKUP_KEEP_DAYS: 20
        S3_REGION: ch-dk-2
        S3_BUCKET: submissio-db-backups-production
        S3_ENDPOINT: https://your-endpoint
        S3_PREFIX: postgres-backups
        # POSTGRES_HOST: 159.xxx.cxx&#062; Public IP, no longer works because of Firewall
        POSTGRES_HOST: 172.18.0.3 # Internal Docker IP (Found via: docker inspect -f &#039;{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}&#039; submissio-pg-16)
        POSTGRES_USER: submissio_user
        POSTGRES_DATABASE: submissio_production
        LOGS_ENABLED: true
      secret:
        - POSTGRES_PASSWORD
        - PASSPHRASE
        - S3_ACCESS_KEY_ID
        - S3_SECRET_ACCESS_KEY]]></description>
			<content:encoded><![CDATA[<p>Hey, thanks for the article. Here’s how i do backups with my s3 storage provider, works like a charm. Just add as an additional accessory, like so:</p>
<p>accessories:<br />
  pg-backups:<br />
    # Boot the service: kamal accessory boot [SERVICE]-postgres-backups -d production<br />
    # Manual Backup: kamal accessory exec -i &#8211;reuse pg-backups &#8220;sh backup.sh&#8221; -d production<br />
    # Restore from backup: kamal accessory exec -i &#8211;reuse pg-backups &#8220;sh restore.sh [TIMESTAMP]&#8221; -d production<br />
    # Restore from backup: kamal accessory exec -i &#8211;reuse pg-backups &#8220;sh restore.sh 2024-10-05T00:00:00&#8221; -d production<br />
    image: eeshugerman/postgres-backup-s3:16<br />
    host: 159.xxx.xx<br />
    env:<br />
      clear:<br />
        SCHEDULE: &#8220;@hourly&#8221;<br />
        BACKUP_KEEP_DAYS: 20<br />
        S3_REGION: ch-dk-2<br />
        S3_BUCKET: submissio-db-backups-production<br />
        S3_ENDPOINT: <a href="https://your-endpoint" rel="nofollow ugc">https://your-endpoint</a><br />
        S3_PREFIX: postgres-backups<br />
        # POSTGRES_HOST: 159.xxx.cxx&gt; Public IP, no longer works because of Firewall<br />
        POSTGRES_HOST: 172.18.0.3 # Internal Docker IP (Found via: docker inspect -f &#8216;{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}&#8217; submissio-pg-16)<br />
        POSTGRES_USER: submissio_user<br />
        POSTGRES_DATABASE: submissio_production<br />
        LOGS_ENABLED: true<br />
      secret:<br />
        &#8211; POSTGRES_PASSWORD<br />
        &#8211; PASSPHRASE<br />
        &#8211; S3_ACCESS_KEY_ID<br />
        &#8211; S3_SECRET_ACCESS_KEY</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: domarcio		</title>
		<link>https://rameerez.com/kamal-tutorial-how-to-deploy-a-postgresql-rails-app/#comment-19670</link>

		<dc:creator><![CDATA[domarcio]]></dc:creator>
		<pubDate>Sat, 19 Apr 2025 13:23:25 +0000</pubDate>
		<guid isPermaLink="false">https://rameerez.com/?p=6097#comment-19670</guid>

					<description><![CDATA[It works very well. Thanks, Rameerez! I only needed to change a few things. I had some trouble connecting to the database (role does not exist, missing cache, etc.). Below are my changes using Rails 8.0.2.

In the database.yml, I needed specify all databases for production:

production:
  primary: &#038;primary_production
    &#060;&#060;: *default
    database: 
    username: 
    password: 
    host: 
  cache:
    &#060;&#060;: *primary_production
    database: gdi_production_cache
    migrations_paths: db/cache_migrate
  queue:
    &#060;&#060;: *primary_production
    database: gdi_production_queue
    migrations_paths: db/queue_migrate
  cable:
    &#060;&#060;: *primary_production
    database: gdi_production_cable
    migrations_paths: db/cable_migrate

In the deploy.yml:

- accessories.postgres.env.clear. I needed put POSTGRES_USER and POSTGRES_DB rather than env vars.

- env.secret: Put POSTGRES_PASSWORD]]></description>
			<content:encoded><![CDATA[<p>It works very well. Thanks, Rameerez! I only needed to change a few things. I had some trouble connecting to the database (role does not exist, missing cache, etc.). Below are my changes using Rails 8.0.2.</p>
<p>In the database.yml, I needed specify all databases for production:</p>
<p>production:<br />
  primary: &amp;primary_production<br />
    &lt;&lt;: *default<br />
    database:<br />
    username:<br />
    password:<br />
    host:<br />
  cache:<br />
    &lt;&lt;: *primary_production<br />
    database: gdi_production_cache<br />
    migrations_paths: db/cache_migrate<br />
  queue:<br />
    &lt;&lt;: *primary_production<br />
    database: gdi_production_queue<br />
    migrations_paths: db/queue_migrate<br />
  cable:<br />
    &lt;&lt;: *primary_production<br />
    database: gdi_production_cable<br />
    migrations_paths: db/cable_migrate</p>
<p>In the deploy.yml:</p>
<p>&#8211; accessories.postgres.env.clear. I needed put POSTGRES_USER and POSTGRES_DB rather than env vars.</p>
<p>&#8211; env.secret: Put POSTGRES_PASSWORD</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
