<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: hosting</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/hosting.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2026-01-22T23:57:50+00:00</updated><author><name>Simon Willison</name></author><entry><title>SSH has no Host header</title><link href="https://simonwillison.net/2026/Jan/22/ssh-has-no-host-header/#atom-tag" rel="alternate"/><published>2026-01-22T23:57:50+00:00</published><updated>2026-01-22T23:57:50+00:00</updated><id>https://simonwillison.net/2026/Jan/22/ssh-has-no-host-header/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.exe.dev/ssh-host-header"&gt;SSH has no Host header&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;a href="https://exe.dev/"&gt;exe.dev&lt;/a&gt; is a new hosting service that, for $20/month, gives you up to 25 VMs "that share 2 CPUs and 8GB RAM". Everything happens over SSH, including creating new VMs. Once configured you can sign into your exe.dev VMs like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh simon.exe.dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Here's the clever bit: when you run the above command &lt;code&gt;exe.dev&lt;/code&gt; signs you into your VM of that name... but they don't assign every VM its own IP address and SSH has no equivalent of the Host header, so how does their load balancer know &lt;em&gt;which&lt;/em&gt; of your VMs to forward you on to?&lt;/p&gt;
&lt;p&gt;The answer is that while they don't assign a unique IP to every VM they &lt;em&gt;do&lt;/em&gt; have enough IPs that they can ensure each of your VMs has an IP that is unique to your account.&lt;/p&gt;
&lt;p&gt;If I create two VMs they will each resolve to a separate IP address, each of which is shared with many other users. The underlying infrastructure then identifies my user account from my SSH public key and can determine which underlying VM to forward my SSH traffic to.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://lobste.rs/s/7oqiqi/ssh_has_no_host_header"&gt;lobste.rs&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dns"&gt;dns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ssh"&gt;ssh&lt;/a&gt;&lt;/p&gt;



</summary><category term="dns"/><category term="hosting"/><category term="ssh"/></entry><entry><title>Where is all of the fediverse?</title><link href="https://simonwillison.net/2024/Jan/12/where-is-all-of-the-fediverse/#atom-tag" rel="alternate"/><published>2024-01-12T18:54:15+00:00</published><updated>2024-01-12T18:54:15+00:00</updated><id>https://simonwillison.net/2024/Jan/12/where-is-all-of-the-fediverse/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.benjojo.co.uk/post/who-hosts-the-fediverse-instances"&gt;Where is all of the fediverse?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Neat piece of independent research by Ben Cox, who used the /api/v1/instance/peers Mastodon API endpoint to get a list of “peers” (instances his instance knows about), then used their DNS records to figure out which hosting provider they were running on.&lt;/p&gt;

&lt;p&gt;Next Ben combined that with active users from the /nodeinfo/2.0 API on each instance to figure out the number of users on each of those major hosting providers.&lt;/p&gt;

&lt;p&gt;Cloudflare and Fastly were heavily represented, but it turns out you can unveil the underlying IP for most instances by triggering an HTTP Signature exchange with them and logging the result.&lt;/p&gt;

&lt;p&gt;Ben’s conclusion: Hertzner and OVH are responsible for hosting a sizable portion of the fediverse as it exists today.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://lobste.rs/s/kzl90v/where_is_all_fediverse"&gt;lobste.rs&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dns"&gt;dns&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mastodon"&gt;mastodon&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fediverse"&gt;fediverse&lt;/a&gt;&lt;/p&gt;



</summary><category term="dns"/><category term="hosting"/><category term="mastodon"/><category term="fediverse"/></entry><entry><title>Stringing together several free tiers to host an application with zero cost using fly.io, Litestream and Cloudflare</title><link href="https://simonwillison.net/2022/Oct/7/fly-cloudflare/#atom-tag" rel="alternate"/><published>2022-10-07T17:47:34+00:00</published><updated>2022-10-07T17:47:34+00:00</updated><id>https://simonwillison.net/2022/Oct/7/fly-cloudflare/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://blog.dahl.dev/posts/stringing-together-several-free-tiers-to-host-an-application-with-zero-cost/"&gt;Stringing together several free tiers to host an application with zero cost using fly.io, Litestream and Cloudflare&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Alexander Dahl provides a detailed description (and code) for his current preferred free hosting solution for small sites: SQLite (and a Go application) running on Fly’s free tier, with the database replicated up to Cloudflare’s R2 object storage (again on a free tier) by Litestream.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sqlite"&gt;sqlite&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/cloudflare"&gt;cloudflare&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fly"&gt;fly&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/litestream"&gt;litestream&lt;/a&gt;&lt;/p&gt;



</summary><category term="hosting"/><category term="sqlite"/><category term="cloudflare"/><category term="fly"/><category term="litestream"/></entry><entry><title>Zeit Now v1 to sunset soon: no new deployments from 1st May, total shutdown 7th August</title><link href="https://simonwillison.net/2020/Apr/4/zeit-now-v1-sunset-soon-no-new-deployments-1st-may-total-shutdow/#atom-tag" rel="alternate"/><published>2020-04-04T05:32:02+00:00</published><updated>2020-04-04T05:32:02+00:00</updated><id>https://simonwillison.net/2020/Apr/4/zeit-now-v1-sunset-soon-no-new-deployments-1st-may-total-shutdow/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://twitter.com/simonw/status/1246300304917680128"&gt;Zeit Now v1 to sunset soon: no new deployments from 1st May, total shutdown 7th August&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
I posted a thread on Twitter with some thoughts. Zeit Now v1 remains the best hosting platform I’ve ever used given my particular tastes. They’ve handled the shutdown very responsibly, but I’m sad to see it go.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/zeit-now"&gt;zeit-now&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;&lt;/p&gt;



</summary><category term="hosting"/><category term="zeit-now"/><category term="datasette"/></entry><entry><title>datasette-publish-fly</title><link href="https://simonwillison.net/2020/Mar/19/datasette-publish-fly/#atom-tag" rel="alternate"/><published>2020-03-19T03:40:17+00:00</published><updated>2020-03-19T03:40:17+00:00</updated><id>https://simonwillison.net/2020/Mar/19/datasette-publish-fly/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/simonw/datasette-publish-fly"&gt;datasette-publish-fly&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Fly is a neat new Docker hosting provider with a very tempting pricing model: Just $2.67/month for their smallest always-on instance, and they give each user $10/month in free credit. datasette-publish-fly is the first plugin I’ve written using the publish_subcommand plugin hook, which allows extra hosting providers to be added as publish targets. Install the plugin and you can run “datasette publish fly data.db” to deploy SQLite databases to your Fly account.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="https://twitter.com/simonw/status/1240481110649221122"&gt;@simonw&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/projects"&gt;projects&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/docker"&gt;docker&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fly"&gt;fly&lt;/a&gt;&lt;/p&gt;



</summary><category term="hosting"/><category term="projects"/><category term="docker"/><category term="datasette"/><category term="fly"/></entry><entry><title>Running Datasette on Glitch</title><link href="https://simonwillison.net/2019/Apr/23/datasette-glitch/#atom-tag" rel="alternate"/><published>2019-04-23T04:08:53+00:00</published><updated>2019-04-23T04:08:53+00:00</updated><id>https://simonwillison.net/2019/Apr/23/datasette-glitch/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;&lt;strong&gt;Update 28th May 2025&lt;/strong&gt;: Sadly Glitch &lt;a href="https://blog.glitch.com/post/changes-are-coming-to-glitch/"&gt;is shutting down user project hosting&lt;/a&gt;, so this tutorial is no longer relevant&lt;/em&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;The worst part of any software project is setting up a development environment. It’s by far the biggest barrier for anyone trying to get started learning to code. I’ve been a developer for more than twenty years and I still feel the pain any time I want to do something new.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://glitch.com/"&gt;Glitch&lt;/a&gt; is the most promising attempt I’ve ever seen at tackling this problem. It provides an entirely browser-based development environment that allows you to edit code, see the results instantly and view and remix the source code of other people’s projects.&lt;/p&gt;
&lt;p&gt;It’s developed into a really fun, super-creative community and a fantastic resource for people looking to get started in the ever-evolving world of software development.&lt;/p&gt;
&lt;p&gt;This evening I decided to get &lt;a href="https://datasette.readthedocs.io/"&gt;Datasette&lt;/a&gt; running on it. I’m really impressed with how well it works, and I think Glitch provides an excellent environment for experimenting with Datasette and &lt;a href="https://datasette.readthedocs.io/en/stable/ecosystem.html"&gt;related tools&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;TLDR version: visit &lt;a href="https://glitch.com/edit/#!/remix/datasette-csvs"&gt;https://glitch.com/edit/#!/remix/datasette-csvs&lt;/a&gt; right now, drag-and-drop in a CSV file and watch it get served by Datasette on Glitch just a few seconds later.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Running_Python_on_Glitch_12"&gt;&lt;/a&gt;Running Python on Glitch&lt;/h3&gt;
&lt;p&gt;The Glitch documentation is all about Node.js and JavaScript, but they actually have very solid Python support as well.&lt;/p&gt;
&lt;p&gt;Every Glitch project runs in a container that includes Python 2.7.12 and Python 3.5.2, and you can use &lt;code&gt;pip install --user&lt;/code&gt; or &lt;code&gt;pip3 install --user&lt;/code&gt; to install Python dependencies.&lt;/p&gt;
&lt;p&gt;The key to running non-JavaScript projects on Glitch is the &lt;code&gt;glitch.json&lt;/code&gt; file format. You can use this to specify an &lt;code&gt;install&lt;/code&gt; script, which sets up your container, and a &lt;code&gt;start&lt;/code&gt; script, which starts your application running. Glitch will route HTTP traffic to port 3000, so your application server needs to listen on that port.&lt;/p&gt;
&lt;p&gt;This means the most basic Glitch project to run Datasette looks like this:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://datasette-basic.glitch.me/"&gt;https://datasette-basic.glitch.me/&lt;/a&gt; (&lt;a href="https://glitch.com/edit/#!/datasette-basic"&gt;view source&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;It contains a single &lt;code&gt;glitch.json&lt;/code&gt; file:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &amp;quot;install&amp;quot;: &amp;quot;pip3 install --user datasette&amp;quot;,
    &amp;quot;start&amp;quot;: &amp;quot;datasette -p 3000&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This installs Datasette using &lt;code&gt;pip3&lt;/code&gt;, then runs it on port 3000.&lt;/p&gt;
&lt;p&gt;Since there’s no actual data to serve, this is a pretty boring demo. The most interesting page is this one, which shows the installed versions of the software:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://datasette-basic.glitch.me/-/versions"&gt;https://datasette-basic.glitch.me/-/versions&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a id="Something_more_interesting_datasettecsvs_37"&gt;&lt;/a&gt;Something more interesting: datasette-csvs&lt;/h3&gt;
&lt;p&gt;Let’s build one with some actual data.&lt;/p&gt;
&lt;p&gt;My &lt;a href="https://github.com/simonw/csvs-to-sqlite"&gt;csvs-to-sqlite&lt;/a&gt; tool converts CSV files into a SQLite database. Since it’s also written in Python we can run it against CSV files as part of the Glitch install script.&lt;/p&gt;
&lt;p&gt;Glitch provides a special directory called &lt;code&gt;.data/&lt;/code&gt; which can be used as a persistent file storage space that won’t be cleared in between restarts. The following &lt;code&gt;&amp;quot;install&amp;quot;&lt;/code&gt; script installs &lt;code&gt;datasette&lt;/code&gt; and &lt;code&gt;csvs-to-sqlite&lt;/code&gt;, then runs the latter to create a SQLite database from all available CSV files:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
    &amp;quot;install&amp;quot;:  &amp;quot;pip3 install --user datasette csvs-to-sqlite &amp;amp;&amp;amp; csvs-to-sqlite *.csv .data/csv-data.db&amp;quot;,
    &amp;quot;start&amp;quot;: &amp;quot;datasette .data/csv-data.db -p 3000&amp;quot;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now we can simply drag and drop CSV files into the root of the Glitch project and they will be automatically converted into a SQLite database and served using Datasette!&lt;/p&gt;
&lt;p&gt;We need a couple of extra details. Firstly, we want Datasette to automatically re-build the database file any time a new CSV file is added or an existing CSV file is changed. We can do that by adding a &lt;code&gt;&amp;quot;watch&amp;quot;&lt;/code&gt; block to &lt;code&gt;glitch.json&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;quot;watch&amp;quot;: {
    &amp;quot;install&amp;quot;: {
        &amp;quot;include&amp;quot;: [
            &amp;quot;\\.csv$&amp;quot;
        ]
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This ensures that our &lt;code&gt;&amp;quot;install&amp;quot;&lt;/code&gt; script will run again any time a CSV file changes.&lt;/p&gt;
&lt;p&gt;Let’s tone down the rate at which the scripts execute, by using &lt;code&gt;throttle&lt;/code&gt; to set the polling interval to once a second:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;quot;throttle&amp;quot;: 1000
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The above almost worked, but I started seeing errors if I changed the number of columns in a CSV file, since doing so clashed with the schema that had already been created in the database.&lt;/p&gt;
&lt;p&gt;My solution was to add code to the install script that would delete the SQLite database file before attempting to recreate it - using the &lt;code&gt;rm ... || true&lt;/code&gt; idiom to prevent Glitch from failing the installation if the file it attempted to remove did not already exist.&lt;/p&gt;
&lt;p&gt;My final &lt;code&gt;glitch.json&lt;/code&gt; file looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &amp;quot;install&amp;quot;: &amp;quot;pip3 install --user datasette csvs-to-sqlite &amp;amp;&amp;amp; rm .data/csv-data.db || true &amp;amp;&amp;amp; csvs-to-sqlite *.csv .data/csv-data.db&amp;quot;,
  &amp;quot;start&amp;quot;: &amp;quot;datasette .data/csv-data.db -p 3000 -m metadata.json&amp;quot;,
  &amp;quot;watch&amp;quot;: {
    &amp;quot;install&amp;quot;: {
      &amp;quot;include&amp;quot;: [
        &amp;quot;\\.csv$&amp;quot;
      ]
    },
    &amp;quot;restart&amp;quot;: {
      &amp;quot;include&amp;quot;: [
        &amp;quot;^metadata.json$&amp;quot;
      ]
    },
    &amp;quot;throttle&amp;quot;: 1000
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I also set it up to use &lt;a href="https://datasette.readthedocs.io/en/stable/metadata.html"&gt;Datasette’s metadata.json format&lt;/a&gt;, and automatically restart the server any time the contents of that file changes.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://datasette-csvs.glitch.me/"&gt;https://datasette-csvs.glitch.me/&lt;/a&gt;  (&lt;a href="https://glitch.com/edit/#!/datasette-csvs"&gt;view source&lt;/a&gt;) shows the results, running against a simple &lt;code&gt;example.csv&lt;/code&gt; file I created.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Remixing_98"&gt;&lt;/a&gt;Remixing!&lt;/h3&gt;
&lt;p&gt;Here’s where things get really fun: Glitch projects support “remixing”, whereby anyone can click a link to create their own editable copy of a project.&lt;/p&gt;
&lt;p&gt;Remixing works even if you aren’t logged in to Glitch! Anonymous projects expire after five days, so be sure to sign in with GitHub or Facebook if you want to keep yours around.&lt;/p&gt;
&lt;p&gt;Try it out now: Visit &lt;a href="https://glitch.com/edit/#!/remix/datasette-csvs"&gt;https://glitch.com/edit/#!/remix/datasette-csvs&lt;/a&gt; to create your own remix of my project. Then drag a new CSV file directly into the editor and within a few seconds Datasette on Glitch will be up and running against a converted copy of your file!&lt;/p&gt;
&lt;h3&gt;&lt;a id="Limitations_106"&gt;&lt;/a&gt;Limitations&lt;/h3&gt;
&lt;p&gt;The Glitch help center article &lt;a href="https://glitch.com/help/restrictions/"&gt;What technical restrictions are in place?&lt;/a&gt; describes their limits. Most importantly, projects are limited to 4,000 requests an hour - and there’s currently no way to increase that limit. They also limit projects to 200MB of disk space - easily enough to get started exploring some interesting CSV files with Datasette.&lt;/p&gt;
&lt;h3&gt;&lt;a id="Next_steps_110"&gt;&lt;/a&gt;Next steps&lt;/h3&gt;
&lt;p&gt;I’m delighted at how easy this was to setup, and how much power the ability to remix these Datasette demos provides. I’m tempted to start creating remixable Glitch demos that illustrate other aspects of Datasette’s functionality such as &lt;a href="https://datasette.readthedocs.io/en/stable/plugins.html"&gt;plugins&lt;/a&gt; or &lt;a href="https://datasette.readthedocs.io/en/stable/full_text_search.html"&gt;full-text search&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Glitch is an exceptionally cool piece of software. I look forward to seeing their Python support continue to evolve.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/glitch"&gt;glitch&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/projects"&gt;projects&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/datasette"&gt;datasette&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="glitch"/><category term="hosting"/><category term="projects"/><category term="datasette"/></entry><entry><title>What's the cheapest or free stack solution to deploy and experiment with a realtime application in 2016?</title><link href="https://simonwillison.net/2016/Aug/16/whats-the-cheapest-or/#atom-tag" rel="alternate"/><published>2016-08-16T09:02:00+00:00</published><updated>2016-08-16T09:02:00+00:00</updated><id>https://simonwillison.net/2016/Aug/16/whats-the-cheapest-or/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/Whats-the-cheapest-or-free-stack-solution-to-deploy-and-experiment-with-a-realtime-application-in-2016/answer/Simon-Willison"&gt;What&amp;#39;s the cheapest or free stack solution to deploy and experiment with a realtime application in 2016?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Heroku have a good free tier, and comprehensive support for deploying both Python and Node.js. If you are mainly interested in realtime I would suggest starting out with Node.js on Heroku. Depending on the complexity of your project you might even be able to use raw Node.js without adding something like Express.&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;a href="https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction"&gt;Getting Started on Heroku with Node.js&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/programming"&gt;programming&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webapps"&gt;webapps&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/websockets"&gt;websockets&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/heroku"&gt;heroku&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="hosting"/><category term="programming"/><category term="webapps"/><category term="web-development"/><category term="websockets"/><category term="quora"/><category term="heroku"/></entry><entry><title>What is the best service for web hosting and buying a domain? Is it better to have both under one provider?</title><link href="https://simonwillison.net/2013/Sep/22/what-is-the-best/#atom-tag" rel="alternate"/><published>2013-09-22T15:12:00+00:00</published><updated>2013-09-22T15:12:00+00:00</updated><id>https://simonwillison.net/2013/Sep/22/what-is-the-best/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-is-the-best-service-for-web-hosting-and-buying-a-domain-Is-it-better-to-have-both-under-one-provider/answer/Simon-Willison"&gt;What is the best service for web hosting and buying a domain? Is it better to have both under one provider?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;No, it's not better to have both under the same provider. Good web hosts do not necessarily make good DNS hosts and vice versa.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/domains"&gt;domains&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="domains"/><category term="hosting"/><category term="web-development"/><category term="quora"/></entry><entry><title>What is the difference between Windows and Linux for web hosting, in other words, what are the pros and cons of each, each’s limitations, performance development environment and deployment between Windows and Linux?</title><link href="https://simonwillison.net/2013/Aug/5/what-is-the-difference/#atom-tag" rel="alternate"/><published>2013-08-05T12:24:00+00:00</published><updated>2013-08-05T12:24:00+00:00</updated><id>https://simonwillison.net/2013/Aug/5/what-is-the-difference/#atom-tag</id><summary type="html">
    &lt;p&gt;&lt;em&gt;My answer to &lt;a href="https://www.quora.com/What-is-the-difference-between-Windows-and-Linux-for-web-hosting-in-other-words-what-are-the-pros-and-cons-of-each-each’s-limitations-performance-development-environment-and-deployment-between-Windows-and-Linux/answer/Simon-Willison"&gt;What is the difference between Windows and Linux for web hosting, in other words, what are the pros and cons of each, each’s limitations, performance development environment and deployment between Windows and Linux?&lt;/a&gt; on Quora&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Any and every operation you perform on a Linux server can be trivially automated by copying the commands you ran in to a text file. I haven't managed a Windows server in years and I hear PowerShell is pretty great these days but an OS based around a GUI is always going to be harder to automate than one based around a command line.&lt;/p&gt;

&lt;p&gt;Linux has a much stronger complement of high quality open source software - and new open source server software (stuff like node.js) usually becomes available for Linux first.&lt;/p&gt;

&lt;p&gt;If you don't know anything about Linux but are comfortable with Windows, you'll find it easier to manage a Windows server in the short term.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/linux"&gt;linux&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/web-development"&gt;web-development&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/windows"&gt;windows&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/quora"&gt;quora&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ecommerce"&gt;ecommerce&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="hosting"/><category term="linux"/><category term="web-development"/><category term="windows"/><category term="quora"/><category term="ecommerce"/></entry><entry><title>The First Few Weeks - ep.io</title><link href="https://simonwillison.net/2011/Jan/13/epio/#atom-tag" rel="alternate"/><published>2011-01-13T04:25:00+00:00</published><updated>2011-01-13T04:25:00+00:00</updated><id>https://simonwillison.net/2011/Jan/13/epio/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.ep.io/blog/first-few-weeks/"&gt;The First Few Weeks - ep.io&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Another take on managed Python Django/WSGI hosting, from Andrew Godwin and Ben Firshman.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/andrew-godwin"&gt;andrew-godwin&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ben-firshman"&gt;ben-firshman&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wsgi"&gt;wsgi&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;&lt;/p&gt;



</summary><category term="andrew-godwin"/><category term="ben-firshman"/><category term="django"/><category term="hosting"/><category term="python"/><category term="wsgi"/><category term="recovered"/></entry><entry><title>Hello from Gondor</title><link href="https://simonwillison.net/2011/Jan/13/gondor/#atom-tag" rel="alternate"/><published>2011-01-13T04:24:00+00:00</published><updated>2011-01-13T04:24:00+00:00</updated><id>https://simonwillison.net/2011/Jan/13/gondor/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://gondor.io/blog/2011/01/03/hello-gondor/"&gt;Hello from Gondor&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
“Effortless production Django hosting” from the Eldarion team.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/recovered"&gt;recovered&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/eldarion"&gt;eldarion&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="hosting"/><category term="recovered"/><category term="eldarion"/></entry><entry><title>Quoting Jeffrey Zeldman</title><link href="https://simonwillison.net/2010/Jan/24/posthumous/#atom-tag" rel="alternate"/><published>2010-01-24T13:40:19+00:00</published><updated>2010-01-24T13:40:19+00:00</updated><id>https://simonwillison.net/2010/Jan/24/posthumous/#atom-tag</id><summary type="html">
    &lt;blockquote cite="http://www.zeldman.com/2010/01/21/posthumous-hosting-and-digital-culture/"&gt;&lt;p&gt;A suggestion for a business. Sooner or later, some hosting company is going to figure out that it can provide a service and make a killing (as it were) by offering ten-, twenty-, and hundred-year packets of posthumous hosting. A hundred years is not eternity, but you are not Shakespeare, and it’s a start.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p class="cite"&gt;&amp;mdash; &lt;a href="http://www.zeldman.com/2010/01/21/posthumous-hosting-and-digital-culture/"&gt;Jeffrey Zeldman&lt;/a&gt;&lt;/p&gt;

    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/death"&gt;death&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/jeffrey-zeldman"&gt;jeffrey-zeldman&lt;/a&gt;&lt;/p&gt;



</summary><category term="death"/><category term="hosting"/><category term="jeffrey-zeldman"/></entry><entry><title>Setup mod_wsgi for Django and Shared Hosting</title><link href="https://simonwillison.net/2008/Mar/26/setup/#atom-tag" rel="alternate"/><published>2008-03-26T14:42:02+00:00</published><updated>2008-03-26T14:42:02+00:00</updated><id>https://simonwillison.net/2008/Mar/26/setup/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.davidcramer.net/code/django/108/setup-mod_wsgi-for-django-and-shared-hosting.html"&gt;Setup mod_wsgi for Django and Shared Hosting&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Tutorial by David Cramer; attached are useful comments from mod_wsgi author Graham Dumpleton.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/david-cramer"&gt;david-cramer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/graham-dumpleton"&gt;graham-dumpleton&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/modwsgi"&gt;modwsgi&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wsgi"&gt;wsgi&lt;/a&gt;&lt;/p&gt;



</summary><category term="david-cramer"/><category term="django"/><category term="graham-dumpleton"/><category term="hosting"/><category term="modwsgi"/><category term="python"/><category term="wsgi"/></entry><entry><title>Djangofriendly</title><link href="https://simonwillison.net/2008/Mar/26/hosts/#atom-tag" rel="alternate"/><published>2008-03-26T08:47:13+00:00</published><updated>2008-03-26T08:47:13+00:00</updated><id>https://simonwillison.net/2008/Mar/26/hosts/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://djangofriendly.com/hosts/"&gt;Djangofriendly&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Ryan Berg’s attractive new site collecting ratings and reviews for web hosts that support Django. I’m still happily hosted on a bytemark VPS, which isn’t currently listed on the site.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://ryanberg.net/blog/2008/mar/26/introducing-django-friendly-hosts/"&gt;Ryan Berg&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/bytemark"&gt;bytemark&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/ryan-berg"&gt;ryan-berg&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/vps"&gt;vps&lt;/a&gt;&lt;/p&gt;



</summary><category term="bytemark"/><category term="django"/><category term="hosting"/><category term="python"/><category term="ryan-berg"/><category term="vps"/></entry><entry><title>Version 2.0 of mod_wsgi is now available</title><link href="https://simonwillison.net/2008/Mar/21/wsgi/#atom-tag" rel="alternate"/><published>2008-03-21T13:23:11+00:00</published><updated>2008-03-21T13:23:11+00:00</updated><id>https://simonwillison.net/2008/Mar/21/wsgi/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.dscpl.com.au/2008/03/version-20-of-modwsgi-is-now-available.html"&gt;Version 2.0 of mod_wsgi is now available&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Includes features that should make Python (and Django) on shared hosting much easier: a non-root user can touch their WSGI script file to restart just their application’s daemon processes when they make changes and Python virtual environments are supported to allow different versions of packages without interference.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/modwsgi"&gt;modwsgi&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/sharedhosting"&gt;sharedhosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wsgi"&gt;wsgi&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="hosting"/><category term="modwsgi"/><category term="python"/><category term="sharedhosting"/><category term="wsgi"/></entry><entry><title>Troubleshooting Memory Usage</title><link href="https://simonwillison.net/2008/Jan/23/troubleshooting/#atom-tag" rel="alternate"/><published>2008-01-23T18:52:37+00:00</published><updated>2008-01-23T18:52:37+00:00</updated><id>https://simonwillison.net/2008/Jan/23/troubleshooting/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://rimuhosting.com/howto/memory.jsp"&gt;Troubleshooting Memory Usage&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Useful for getting the most out of a VPS.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/memory"&gt;memory&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/vps"&gt;vps&lt;/a&gt;&lt;/p&gt;



</summary><category term="hosting"/><category term="memory"/><category term="vps"/></entry><entry><title>AppJet: Instant Web Programming</title><link href="https://simonwillison.net/2007/Dec/15/appjet/#atom-tag" rel="alternate"/><published>2007-12-15T15:37:46+00:00</published><updated>2007-12-15T15:37:46+00:00</updated><id>https://simonwillison.net/2007/Dec/15/appjet/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://appjet.com/"&gt;AppJet: Instant Web Programming&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Another attempt at simple server-side JavaScript application hosting. Worth checking out for the impressive syntax highlighting code editor, which even matches braces.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/appjet"&gt;appjet&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/javascript"&gt;javascript&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/syntaxhighlighting"&gt;syntaxhighlighting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/y-combinator"&gt;y-combinator&lt;/a&gt;&lt;/p&gt;



</summary><category term="appjet"/><category term="hosting"/><category term="javascript"/><category term="syntaxhighlighting"/><category term="y-combinator"/></entry><entry><title>Django GridContainer</title><link href="https://simonwillison.net/2007/Sep/22/mt/#atom-tag" rel="alternate"/><published>2007-09-22T12:01:40+00:00</published><updated>2007-09-22T12:01:40+00:00</updated><id>https://simonwillison.net/2007/Sep/22/mt/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.mediatemple.net/labs/grid/gc-django-prebeta.htm"&gt;Django GridContainer&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Media Temple’s virtualized Django hosting is now accepting applications for beta testers.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/gridcontainer"&gt;gridcontainer&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/mediatemple"&gt;mediatemple&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/virtualization"&gt;virtualization&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="gridcontainer"/><category term="hosting"/><category term="mediatemple"/><category term="virtualization"/></entry><entry><title>GoPHP5.org</title><link href="https://simonwillison.net/2007/Jul/8/gophporg/#atom-tag" rel="alternate"/><published>2007-07-08T10:08:50+00:00</published><updated>2007-07-08T10:08:50+00:00</updated><id>https://simonwillison.net/2007/Jul/8/gophporg/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://gophp5.org/"&gt;GoPHP5.org&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A campaign to encourage a mass switchover from PHP 4 to PHP 5 on February 8th 2008, by co-ordinating both hosting companies and PHP projects.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/php5"&gt;php5&lt;/a&gt;&lt;/p&gt;



</summary><category term="hosting"/><category term="php"/><category term="php5"/></entry><entry><title>Web hosting landscape and mod_wsgi</title><link href="https://simonwillison.net/2007/Jul/2/graham/#atom-tag" rel="alternate"/><published>2007-07-02T15:47:59+00:00</published><updated>2007-07-02T15:47:59+00:00</updated><id>https://simonwillison.net/2007/Jul/2/graham/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.dscpl.com.au/2007/07/web-hosting-landscape-and-modwsgi.html"&gt;Web hosting landscape and mod_wsgi&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Graham Dumpleton explains how mod_wsgi’s daemon mode should provide secure Python deployment for commodity hosting providers.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/graham-dumpleton"&gt;graham-dumpleton&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/modwsgi"&gt;modwsgi&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wsgi"&gt;wsgi&lt;/a&gt;&lt;/p&gt;



</summary><category term="graham-dumpleton"/><category term="hosting"/><category term="modwsgi"/><category term="python"/><category term="wsgi"/></entry><entry><title>Security Breach</title><link href="https://simonwillison.net/2007/Jun/8/dreamhost/#atom-tag" rel="alternate"/><published>2007-06-08T08:16:37+00:00</published><updated>2007-06-08T08:16:37+00:00</updated><id>https://simonwillison.net/2007/Jun/8/dreamhost/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.dreamhoststatus.com/2007/06/06/security-breach"&gt;Security Breach&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
A statement from Dreamhost.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dreamhost"&gt;dreamhost&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;&lt;/p&gt;



</summary><category term="dreamhost"/><category term="hosting"/><category term="security"/></entry><entry><title>Massive Dreamhost hack, WordPress not to blame</title><link href="https://simonwillison.net/2007/Jun/6/dreamhost/#atom-tag" rel="alternate"/><published>2007-06-06T09:38:00+00:00</published><updated>2007-06-06T09:38:00+00:00</updated><id>https://simonwillison.net/2007/Jun/6/dreamhost/#atom-tag</id><summary type="html">
    &lt;p&gt;On &lt;a href="http://mezzoblue.com/archives/2007/06/05/unsettling/"&gt;mezzoblue&lt;/a&gt;, Dave Shea reports that someone had modified every index.php and index.html file on his site to include spam links at the bottom of the page, hidden inside a &lt;code&gt;&amp;lt;u style="display: none;"&amp;gt;&lt;/code&gt;. Dozens of other people in his comments reported the same thing happening to their sites.&lt;/p&gt;

&lt;p&gt;At first, it looked like the common thread was WordPress hosted on Dreamhost. Initial commenters were all running WordPress (Dave has it installed for other domains on his hosting account even though he doesn't use it for mezzoblue itself) and there was &lt;a href="http://wordpress.org/development/2007/01/wordpress-207/"&gt;a vulnerability in WordPress 2.0.7&lt;/a&gt; which was fixed back in January but would still affect people who hadn't yet upgraded. I &lt;a href="http://simonwillison.net/2007/Jun/5/mezzoblue/#comments"&gt;posted a link&lt;/a&gt; suggesting that WordPress users in particular should check their sites.&lt;/p&gt;

&lt;p&gt;I apologise to the WordPress team for even suggesting that their product had something to do with this. Here's an e-mail Dreamhost sent out to some of their customers last night:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We have detected what appears to be the exploit of a number of
accounts belonging to DreamHost customers, and it appears that your
account was one of those affected.&lt;/p&gt;

&lt;p&gt;We're still working to determine how this occurred, but it appears
that a 3rd party found a way to obtain the password information
associated with approximately 3,500 separate FTP accounts and has
used that information to append data to the index files of customer
sites using automated scripts (primarily for search engine
optimization purposes).&lt;/p&gt;

&lt;p&gt;Our records indicate that only roughly 20% of the accounts accessed -
less than 0.15% of the total accounts that we host - actually had
any changes made to them. Most accounts were untouched.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Scary stuff.&lt;/p&gt;
    
        &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dreamhost"&gt;dreamhost&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wordpress"&gt;wordpress&lt;/a&gt;&lt;/p&gt;
    

</summary><category term="dreamhost"/><category term="hosting"/><category term="security"/><category term="wordpress"/></entry><entry><title>Unsettling</title><link href="https://simonwillison.net/2007/Jun/5/mezzoblue/#atom-tag" rel="alternate"/><published>2007-06-05T21:16:58+00:00</published><updated>2007-06-05T21:16:58+00:00</updated><id>https://simonwillison.net/2007/Jun/5/mezzoblue/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://mezzoblue.com/archives/2007/06/05/unsettling/"&gt;Unsettling&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Sounds like there might be a massive scripted hack going on against out of date WordPress installs on Dreamhost. Check your site. See also discussion in the comments attached to this post.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/dave-shea"&gt;dave-shea&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/dreamhost"&gt;dreamhost&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/php"&gt;php&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/security"&gt;security&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/spam"&gt;spam&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/wordpress"&gt;wordpress&lt;/a&gt;&lt;/p&gt;



</summary><category term="dave-shea"/><category term="dreamhost"/><category term="hosting"/><category term="php"/><category term="security"/><category term="spam"/><category term="wordpress"/></entry><entry><title>Nginx vs. Lighttpd for a small VPS</title><link href="https://simonwillison.net/2007/Jan/10/nginx/#atom-tag" rel="alternate"/><published>2007-01-10T11:31:22+00:00</published><updated>2007-01-10T11:31:22+00:00</updated><id>https://simonwillison.net/2007/Jan/10/nginx/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://hostingfu.com/article/nginx-vs-lighttpd-for-a-small-vps"&gt;Nginx vs. Lighttpd for a small VPS&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
My VPS is still running nginx with no problems at all.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/lighttpd"&gt;lighttpd&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/nginx"&gt;nginx&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/vps"&gt;vps&lt;/a&gt;&lt;/p&gt;



</summary><category term="hosting"/><category term="lighttpd"/><category term="nginx"/><category term="vps"/></entry><entry><title>WebFaction blog: BIG holiday present!</title><link href="https://simonwillison.net/2006/Dec/22/webfaction/#atom-tag" rel="alternate"/><published>2006-12-22T23:44:51+00:00</published><updated>2006-12-22T23:44:51+00:00</updated><id>https://simonwillison.net/2006/Dec/22/webfaction/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://blog.webfaction.com/big-holiday-present"&gt;WebFaction blog: BIG holiday present!&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
WebFaction offer Django/Rails/TurboGears hosting for $7.50/month, allowing one long-running process and 40MB of RAM for their basic plan.

    &lt;p&gt;&lt;small&gt;&lt;/small&gt;Via &lt;a href="http://blog.jonudell.net/2006/12/21/django-gymnastics/#comment-66"&gt;A comment on Jon Udell&amp;#x27;s &amp;quot;Django gymnastics&amp;quot;.&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/hosting"&gt;hosting&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/webfaction"&gt;webfaction&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="hosting"/><category term="webfaction"/></entry></feed>