Running your own server

Fargo's CMS defines a very simple protocol to get the rendered content from your local machine to a place where it can be viewed on the web. We've developed software, in node.js, that implements the server. It's open source and you can run it yourself. It's fairly easy and inexpensive.

Preamble

  • This howto is very bare-bones. We don't know where the traps are. There may be steps omitted, or the instructions may be wrong. When you report problems on the Fargo2 list, be sure to provide screen shots and a good narrative of what you did, what you expected and what actually happened.

  • Even worse -- after writing this howto, the Nodejitsu connection to GitHub went down. They're working to fix it. As of this writing, 1/29/14, the connection is still down.

Requirements

  • An Amazon S3 bucket.

  • A CNAME for the bucket. (Your equiv of beta.fargo.io.)

  • A GitHub account.

  • A Nodejitsu account. (It's free for the first 30 days, $9 a month thereafter.)

  • A domain for your user's accounts. (Your equiv of smallpict.com.)

How to

  • Set up a bucket on Amazon S3 where you will store the rendered content and the user data.

  • Map the CNAME to the bucket.

  • On GitHub, fork the fargoPublisher repository.

  • Edit the package.json file, and change the subdomain value to something like bullpub3. This will determine the domain name that Nodejitsu gives to your app, something like bullpub3.jit.su.

  • On GitHub, in Settings, click on Service Hooks, scroll down to Nodejitsu, and enter your username and password. Also check the Active box. This will cause changes from the GitHub project to be automatically posted to your Nodejitsu account.

  • If all went well, when you go to Nodejitsu, you'll have an app called FargoPublisher. With any luck this link will take you to it.

Setting up your server

  • Nodejitsu will try to run your server, and will fail because the environment variables haven't been set.

  • Here's how I have my environment variables set on the server I'm running.

  • I've obscured the AWS account info (this is private), and I'm pretty sure you don't have to set the AWS region. (You should try it without setting it. Otherwise it's the region your bucket is stored in.)

  • Refer to the ReadMe for fargoPublisher for an explanation of what the other environment variables mean.

Set up DNS

  • One final step before restarting the server and going online -- you need to map the domain for your user's accounts to the Nodejitsu server. They have a howto for this on the Nodejitsu site. I've done it with smallpict.com and it appears to work.

Restart the server

  • Once you have all the variables set, click the Restart button on the Nodejitsu app page. If all goes well you should see a message like this in the log:

    • [out] Sat, 25 Jan 2014 16:13:06 GMT Fargo Publisher server v0.63

Configure Fargo

  • Now you have to tell Fargo to use your server instead of mine.

  • Choose Settings in the System menu in the upper right corner of the Fargo screen, and click on the CMS tab. In place of my server, pub.fargo.io -- enter the name of yours -- in the example above, bullpub3.jit.su (obviously yours will be different).

  • Try publishing something. If it worked, you should see a stream of messages fly by in the Logs section of your Nodejitsu app page. If you do, you're done -- it worked!

  • Either way, tell us about it on the list.

Remaining loose-ends

  • The "domain for your user's accounts" is confusing because at this time (Jan 25) it is not fully implemented in fargoPublisher. I have it jury-rigged so it works for smallpict.com. I want to get this up and running on a couple of users' systems first, so I can get a feel for how that works, before deciding how to implement this.

Last built: Sat, Sep 6, 2014 at 4:30 PM

By Dave Winer, Tuesday, November 26, 2013 at 10:33 AM. You should never argue with a crazy man.