Skip to content

Instantly share code, notes, and snippets.

View chorrell's full-sized avatar

Christopher Horrell chorrell

View GitHub Profile
@chorrell
chorrell / download-images.sh
Created October 24, 2016 18:53
Example of how to download images files from https://images.joyent.com
# Get the manifest
curl https://images.joyent.com/images/70e3ae72-96b6-11e6-9056-9737fd4d0764 -o base-64-16.3.1.json
# Get the image file
curl https://images.joyent.com/images/70e3ae72-96b6-11e6-9056-9737fd4d0764/file -o base-64-16.3.1.zfs.gz
@chorrell
chorrell / ghost.xml
Last active December 28, 2015 22:49
SMF manifest for Ghost. Assumes you are installing in /home/ghost and run as the ghost user (and group). Also sets NODE_ENV to "production"
<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type="manifest" name="ghost">
<service name="site/ghost" type="service" version="1">
<create_default_instance enabled="true"/>
<single_instance/>
@chorrell
chorrell / gist:6688898
Last active December 23, 2015 20:19
user-script example for the joyent api. In this example, provision a base 13.1.0 image (f669428c-a939-11e2-a485-b790efc0f0c1) using package g3-g3-standard-0.625-smartos (6a6c0056-38b9-4982-90ad-682d63970b4) called base-13.1.0-with-git" with git installed
The script (/Users/christopher/script.sh):
/opt/local/bin/pkgin -y install scmgit
The api command:
Create a machine and pass the absolute path of the script to --script:
sdc-createmachine --dataset f669428c-a939-11e2-a485-b790efc0f0c1 --package 6a6c0056-38b9-4982-90ad-682d63970b4c --name base-13.1.0-with-git --script /Users/christopher/script.sh
@chorrell
chorrell / backup-keys.sh
Last active December 17, 2015 22:59
Backup ssh keys from your Joyent account to /root/.ssh/authorized_keys. Don't forget to change ACCOUNT, DC, and AUTHORIZED_KEYS. Schedule this via cron to always ensure you have a recent backup NOTE: this assumes you have smartdc (the latest 7.0 version) and jsontool installed (via npm): 'npm install smartdc -g; npm install jsontool -g`
#!/bin/bash
PKGSRCPATH=/opt/local
ACCOUNT=YOUR-USER-NAME
FINGERPRINT=`ssh-keygen -l -f ~/.ssh/id_rsa.pub | awk '{print $2}' | tr -d '\n'`
URL=https://DC.api.joyentcloud.com
AUTHORIZED_KEYS=/root/.ssh/authorized_keys
${PKGSRCPATH}/bin/sdc-listkeys --account ${ACCOUNT} --keyId ${FINGERPRINT} --url ${URL} | ${PKGSRCPATH}/bin/json -a key > ${AUTHORIZED_KEYS}
@chorrell
chorrell / gist:3295245
Created August 8, 2012 14:01
add ffmpeg-php to a smartosplus64 3.1.0 SmartMachine
# Install ffmpeg and autoconf from the pkgsrc repos
pkgin update
pkgin -y install ffmpeg autoconf gcc-compiler
mkdir src
cd src
# Download ffmpeg-php
curl -L -O http://sourceforge.net/projects/ffmpeg-php/files/ffmpeg-php/0.6.0/ffmpeg-php-0.6.0.tbz2
@chorrell
chorrell / gist:3182892
Created July 26, 2012 15:57
Install gearmand-0.33 on smartos64 1.6.3 SmartMachine
curl -OLk https://launchpad.net/gearmand/trunk/0.33/+download/gearmand-0.33.tar.gz
tar xvf gearmand-0.33.tar.gz
cd gearmand-0.33
pkgin -y install libevent boost-headers boost-libs gcc-compiler gmake curl
export CFLAGS='-m64 -I/opt/local/include'
export CPPFLAGS='-I/opt/local/include -D_REENTRANT -I/usr/include'
export CXXFLAGS='-m64 -L/opt/local/lib/amd64'
export LDFLAGS='-m64 -I/opt/local/include -L/opt/local/lib -L/opt/local/lib/amd64'
@chorrell
chorrell / gist:3180044
Created July 26, 2012 03:18
Install taglib-ruby gem on a 64 bit SmartMachine
# Download the required TagLib lib
mkdir src
cd src
curl -OL https://github.com/downloads/taglib/taglib/taglib-1.7.2.tar.gz
tar xvf taglib-1.7.2.tar.gz
cd taglib-1.7.2
# Make sure cmake and gcc are installed
pkgin -y install cmake
@chorrell
chorrell / install.sh
Created June 29, 2012 23:16
Installing Ruby through rvm and Passenger for Nginx on a SmartMachine
#!/bin/bash
export PS4='${BASH_SOURCE}:${LINENO}: ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
# enable xtrace for debugging
#set -o xtrace
echo " "
echo "Setting up the deploy user"
echo "------------------------------------------------------"
groupadd -g 1008 deploy
@chorrell
chorrell / gist:2969266
Created June 21, 2012 23:35
output of ./configure --prefix=/opt/local for id3lib-3.8.3]
[root@smartos64-1-6-3 ~/src/id3lib-3.8.3]# ./configure --prefix=/opt/local
checking for a BSD-compatible install... /opt/local/bin/ginstall -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets ${MAKE}... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
@chorrell
chorrell / add-node.sh
Created May 29, 2012 14:02
Add new version of nodejs to a nodejs or no.de SmartMachine
#!/usr/bin/env bash
#
# Add new version of nodejs to a nodejs or no.de SmartMachine
#
# Check to see if script is being run as the root user
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root. Aborting..." 1>&2
exit 1