<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" 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/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <title>#deploys posts — Ben Crowder</title>
    <link>https://bencrowder.net/blog/tag/deploys/</link>
    <atom:link href="https://bencrowder.net/blog/tag/deploys/feed/" rel="self" />
    <description>Feed for blog posts tagged with #deploys.</description>
    <lastBuildDate>Sat, 04 Apr 2026 05:22:16 GMT</lastBuildDate>
    <language>en-US</language>
    <generator>https://bencrowder.net/</generator>

    <item>
      <title>I used to use Fabric to deploy my personal apps, but I often ran into issues with it, so several mon...</title>
      <link>https://bencrowder.net/blog/2021/1130/</link>
      <guid isPermaLink="true">https://bencrowder.net/blog/2021/1130/</guid>
      <pubDate>Sat, 17 Apr 2021 12:00:00 GMT</pubDate>
      <dc:creator><![CDATA[Ben Crowder]]></dc:creator>
      <description><![CDATA[<p>I used to use Fabric to deploy my personal apps, but I often ran into issues with it, so several months ago I switched over to simple shell scripts that use ssh. Much more resilient, and far easier to maintain (at least for me).</p>
<p>Here’s a sample of what one of these deploy scripts looks like for a Django app:</p>
<pre>
#!/bin/sh

git push

ssh myusername@myhost /bin/zsh << EOF
  cd /path/to/app/code/

  echo "- Pulling the code"
  git checkout main && git pull

  echo "- Restarting the app"
  supervisorctl restart myappname

  echo "- Running migrations"
  /path/to/venv/bin/python manage.py migrate

  echo "- Collecting static"
  /path/to/venv/bin/python manage.py collectstatic --noinput
EOF
</pre>
<p>I’ve thought about using a CD pipeline instead, but I’m not convinced that introducing an extra dependency — no matter how slick — is actually worth it for something small and personal like this. (CI/CD sure is nice at work, however.)</p><hr class="feed-extra" style="margin-top: 48pt;" /><p class="feed-extra feed-mail"><a href="mailto:ben.crowder@gmail.com?subject=Re%3A%20I used to use Fabric to deploy my personal apps, but I often ran into issues with it, so several mon...">Reply via email</a></p>]]></description>
    </item>
    
  </channel>
</rss>
