Skip to content

Instantly share code, notes, and snippets.

View app.html.eex
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Hello Cotoami!</title>
<link rel="stylesheet" href="<%= static_path(@conn, "/css/app.css") %>">
@daisuke-morita
daisuke-morita / upgrade.sh
Created Feb 11, 2016
upgrade.sh - デプロイ処理の実際
View upgrade.sh
#!/bin/bash
export AWS_DEFAULT_REGION="ap-northeast-1"
APP="example_app"
APP_HOME="/opt/${APP}"
DEPLOY_TO="${APP_HOME}/releases"
S3_FOLDER="s3://example-app-packages"
# Get the specified or latest version number
@daisuke-morita
daisuke-morita / example_app.conf
Created Feb 7, 2016
Phoenixアプリ用のUpstart設定
View example_app.conf
description "Example App"
setuid ubuntu
setgid ubuntu
start on runlevel [2345]
stop on runlevel [016]
expect stop
respawn
@daisuke-morita
daisuke-morita / main.yml
Created Feb 7, 2016
Phoenixアプリサーバーのプロビジョニング - ansible/roles/app/tasks/main.yml
View main.yml
---
- name: Download package
command: aws s3 cp "{{ package_url }}" /tmp/app.tar.gz
environment:
AWS_ACCESS_KEY_ID: "{{ lookup('env','AWS_ACCESS_KEY_ID') }}"
AWS_SECRET_ACCESS_KEY: "{{ lookup('env','AWS_SECRET_ACCESS_KEY') }}"
- name: Make app directory
file: state=directory path={{ item }}
with_items:
@daisuke-morita
daisuke-morita / deploy.rb
Created Feb 7, 2016
Capistranoデプロイタスク
View deploy.rb
require 'aws-sdk'
lock '3.4.0'
set :application, 'example_app'
set :pty, true
set :user, "ubuntu"
set :use_sudo, true
set :ssh_key, "~/.ssh/example_app.pem"
@daisuke-morita
daisuke-morita / deploy-policies.json
Created Feb 7, 2016
デプロイ用の IAM User
View deploy-policies.json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::example-app-packages/*"
]
@daisuke-morita
daisuke-morita / deploy-to-staging.sh
Created Feb 7, 2016
deploy-to-staging.sh - リリースパッケージをアプリケーションサーバーにホットデプロイする
View deploy-to-staging.sh
#!/bin/bash
set -ex
export AWS_DEFAULT_REGION="ap-northeast-1"
SGID="sg-xxxxxxxx"
MYIP="`dig +short myip.opendns.com @resolver1.opendns.com`"
cd $(dirname $(readlink -f $0))
@daisuke-morita
daisuke-morita / build-release.sh
Created Feb 7, 2016
build-release.sh - リリースパッケージをビルドする
View build-release.sh
#!/bin/bash
set -ex
mix do deps.get, deps.compile, compile
node -v
npm install
export MIX_ENV="prod"
@daisuke-morita
daisuke-morita / get-prev-rel.sh
Created Feb 7, 2016
get-prev-rel.sh - 直前のバージョンを取得する
View get-prev-rel.sh
#!/bin/bash
export APP="example_app"
aws s3 cp s3://example-app-packages/latest.tar.gz /tmp/${APP}.tar.gz
mkdir -p rel/${APP} && rm -rf rel/${APP}/*
tar zxvf /tmp/${APP}.tar.gz -C rel/${APP}
@daisuke-morita
daisuke-morita / test.sh
Created Feb 7, 2016
Elixirのテスト実行
View test.sh
#!/bin/bash
export MIX_ENV="test"
mix do deps.get, deps.compile, compile, test