<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Servers on passthejoe</title>
    <link>https://relvokcor.xyz/~passthejoe/hugo/blog/servers/</link>
    <description>Recent content in Servers on passthejoe</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <copyright>Copyright © 2025, Steven Rosenberg.</copyright>
    <lastBuildDate>Thu, 04 Jan 2024 09:38:16 -0800</lastBuildDate>
    <atom:link href="https://relvokcor.xyz/~passthejoe/hugo/blog/servers/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Standard Ebooks runs everything on a 2 GB VPS with no database and almost no JavaScript</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/standard-ebooks-runs-everything-on-a-2-gb-vps-with-no-database-and-almost-no-javascript/</link>
      <pubDate>Thu, 04 Jan 2024 09:38:16 -0800</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/standard-ebooks-runs-everything-on-a-2-gb-vps-with-no-database-and-almost-no-javascript/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://alexcabal.com/posts/standard-ebooks-and-classic-web-tech&#34;&gt;How Standard Ebooks serves millions of requests per month with a 2GB VPS; or, a paean to the classic web&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;They&amp;rsquo;re keeping the tech simple. They build ebooks and then distribute them.&lt;/p&gt;&#xA;&lt;p&gt;One single-core server hosts all of their Git repos, builds their ebooks and serves their web site.&lt;/p&gt;&#xA;&lt;p&gt;Alex Cabal says the web site runs on a &amp;ldquo;classic LAP stack.&amp;rdquo; It&amp;rsquo;s missing the &amp;ldquo;M,&amp;rdquo; meaning no MySQL — and no database at all.&lt;/p&gt;</description>
    </item>
    <item>
      <title>You really need to set rsslimit in your Hugo config file</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/you-really-need-to-set-rsslimit-in-your-hugo-config-file/</link>
      <pubDate>Wed, 04 Jan 2023 17:02:27 -0800</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/you-really-need-to-set-rsslimit-in-your-hugo-config-file/</guid>
      <description>&lt;p&gt;I use Hugo to automatically build two sites that pull XML feeds from the CentOS project whenever there are updates to the Stream 8 and Stream 9 Linux distributions. The entries tend to be long, but they are all text, and the great thing is that the blog tends to run itself.&lt;/p&gt;&#xA;&lt;p&gt;I was having trouble with IFTTT, which I use to post the new entries to Twitter, and I found that the XML out of Hugo was &lt;em&gt;sluggish&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>My &#39;dynamic&#39; IP is pretty static</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/my-dynamic-ip-is-pretty-static/</link>
      <pubDate>Sat, 21 Sep 2019 12:35:57 -0700</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/my-dynamic-ip-is-pretty-static/</guid>
      <description>&lt;p&gt;I have been running this web server on a Raspberry Pi Zero W in my coat closet for three months, and my dynamic IP still hasn&amp;rsquo;t changed.&lt;/p&gt;&#xA;&lt;p&gt;That&amp;rsquo;s good because I still haven&amp;rsquo;t implemented a script to change where my URL points from &lt;a href=&#34;https://freedns.afraid.org&#34;&gt;FreeDNS&lt;/a&gt; in the event that my home IP changes. At some point I guess it&amp;rsquo;ll happen, and the server will be offline until I figure it out.&lt;/p&gt;&#xA;&lt;p&gt;Or I&amp;rsquo;ll just sit down some time before then and work out the script &amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google Cloud nuked the web server on my VM</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/google-cloud-nuked-the-web-server-on-my-vm/</link>
      <pubDate>Mon, 05 Aug 2019 09:07:01 -0700</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/google-cloud-nuked-the-web-server-on-my-vm/</guid>
      <description>&lt;p&gt;I wasn&amp;rsquo;t paying for my Google Cloud VM, and it turns out the price was right.&lt;/p&gt;&#xA;&lt;p&gt;Since I started working on my own server in the coat closet, I haven&amp;rsquo;t been using my free Google VM.&lt;/p&gt;&#xA;&lt;p&gt;I got an email today saying that it&amp;rsquo;s been 120 days since I&amp;rsquo;ve opened Google Cloud Shell. If I didn&amp;rsquo;t log in, &amp;ldquo;in 7 days, your Cloud Shell home directory will be automatically scheduled for deletion.&amp;rdquo;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Permissions are hard</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/permissions-are-hard/</link>
      <pubDate>Sun, 14 Jul 2019 19:56:40 -0700</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/permissions-are-hard/</guid>
      <description>&lt;p&gt;Figuring out file and directory permissions on a server is hard.&lt;/p&gt;&#xA;&lt;p&gt;You have to balance security with functionality. What are the most restrictive permissions you can set and still have everything work?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Shared hosting does take care of a lot for you</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/shared-hosting-does-take-care-of-a-lot-for-you/</link>
      <pubDate>Sun, 14 Jul 2019 19:00:23 -0700</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/shared-hosting-does-take-care-of-a-lot-for-you/</guid>
      <description>&lt;p&gt;As I build my own server — and this would be the same for a cloud VPS or a local computer, there is a lot to set up and configure.&lt;/p&gt;&#xA;&lt;p&gt;Shared hosts like &lt;a href=&#34;http://NearlyFreeSpeech.net&#34;&gt;NearlyFreeSpeech.net&lt;/a&gt; (which I will be using more soon) and &lt;a href=&#34;http://hostgator.com&#34;&gt;Hostgator&lt;/a&gt; (which I&amp;rsquo;ve used for years and will probably be using less) take care of many things in a safe and secure way.&lt;/p&gt;&#xA;&lt;p&gt;Setting up your own server is very much like reinventing the wheel. It&amp;rsquo;s better if you like making wheels, have used a lot of wheels, fixed broken ones and rebuilt old ones.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up FTP on my Raspberry Pi</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/setting-up-ftp-on-my-raspberry-pi/</link>
      <pubDate>Sun, 14 Jul 2019 18:05:22 -0700</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/setting-up-ftp-on-my-raspberry-pi/</guid>
      <description>&lt;p&gt;Running your own servers — be they VPSes on Google, AWS or Digital Ocean, or Raspberry Pis in the closet — is a learning experience. You have to put on your sysadmin hat and get to work.&lt;/p&gt;&#xA;&lt;p&gt;Today I&amp;rsquo;m trying to figure out the ftp server. I&amp;rsquo;ve used a hundred of them but never installed and configured one. The hardest part to figure out is the SSL encryption.&lt;/p&gt;&#xA;&lt;p&gt;If you see this file, it means I&amp;rsquo;ve made some progress.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Set umask in vsftpd so incoming files have 644 permissions</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/set-umask-in-vsftpd-so-incoming-files-have-644-permissions/</link>
      <pubDate>Sun, 14 Jul 2019 13:09:18 -0700</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/set-umask-in-vsftpd-so-incoming-files-have-644-permissions/</guid>
      <description>&lt;p&gt;If you are setting up an FTP server (I&amp;rsquo;m using &lt;em&gt;vsftpd&lt;/em&gt; in Debian Buster), setting the umask is the way you get incoming files to &amp;ldquo;take&amp;rdquo; the right permissions.&lt;/p&gt;&#xA;&lt;p&gt;For text files, I like the permissions to be &lt;code&gt;644&lt;/code&gt;, which is &lt;code&gt;rw-r--r--&lt;/code&gt; (read-write for user, read for group, read for the world).&lt;/p&gt;&#xA;&lt;p&gt;To get this in vsftpd, uncomment this line:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;local_umask=022&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
    <item>
      <title>File permissions and ownership that make Ode&#39;s Indexette work on a Debian Buster server</title>
      <link>https://relvokcor.xyz/~passthejoe/hugo/file-permissions-and-ownership-that-make-odes-indexette-work-on-a-debian-buster-server/</link>
      <pubDate>Sun, 14 Jul 2019 13:00:40 -0700</pubDate>
      <guid>https://relvokcor.xyz/~passthejoe/hugo/file-permissions-and-ownership-that-make-odes-indexette-work-on-a-debian-buster-server/</guid>
      <description>&lt;p&gt;This was easier on Hostgator, where everything is &amp;ldquo;owned&amp;rdquo; by my user account and everything works.&lt;/p&gt;&#xA;&lt;p&gt;To get Ode addins to work, the &lt;code&gt;/data&lt;/code&gt; directory is owned by my user and is in the &lt;code&gt;www-data&lt;/code&gt; group.&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;/data/addins/state&lt;/code&gt; directory has the same ownership and permissions (&lt;code&gt;755&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;The &lt;code&gt;/data/addins/state/Indexette&lt;/code&gt; directory is owned by &lt;code&gt;www-data&lt;/code&gt; and is in the &lt;code&gt;www-data&lt;/code&gt; group and has permissions &lt;code&gt;755&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The files created by Indexette in &lt;code&gt;/data/addins/state/Indexette&lt;/code&gt; are &lt;code&gt;aux_index_file&lt;/code&gt; and &lt;code&gt;primary_index_file&lt;/code&gt;. They are owned by &lt;code&gt;www-data&lt;/code&gt; and are in the &lt;code&gt;www-data&lt;/code&gt; group. Their permissions are &lt;code&gt;644&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
