Skip to content

Instantly share code, notes, and snippets.

View li0nel's full-sized avatar

Lionel Martin li0nel

View GitHub Profile
@li0nel
li0nel / ssl_certificates.sh
Created March 6, 2018 11:36
Let's Encrypt certificates
# Create a script that will use the AWS Route53 CLI to insert DNS TXT records for Let's Encrypt DNS validation
echo 'aws route53 wait resource-record-sets-changed --id \
$(aws route53 change-resource-record-sets --hosted-zone-id \
"$(aws route53 list-hosted-zones-by-name --dns-name $2.
--query HostedZones[0].Id --output text)" \
--query ChangeInfo.Id
--output text \
--change-batch "{
\"Changes\": [{
\"Action\": \"$1\",
@li0nel
li0nel / nginx.conf
Created March 6, 2018 10:57
Nginx SSL conf
fastcgi_cache_path /dev/shm levels=1:2 keys_zone=laravel:100m;
fastcgi_cache_key "$scheme$request_method$host$request_uri$query_string";
server {
listen 80;
server_name laravelaws.com;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
@li0nel
li0nel / docker-compose.yml
Created March 5, 2018 20:01
Docker Compose logging
services:
app:
build:
context: .
dockerfile: Dockerfile
networks:
- network
links:
- postgres
- elasticsearch
@li0nel
li0nel / ec2-create-role.sh
Last active February 19, 2019 07:22
EC2 Create Role for Docker Compose
# Create an IAM role
aws iam create-role --role-name Laravel-EC2-Role \
--assume-role-policy-document '{"Version":"2012-10-17","Statement":[{"Sid":"","Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"},"Action":"sts:AssumeRole"}]}'
# Add an IAM policy granting access to CloudWatch
aws iam put-role-policy --role-name Laravel-EC2-Role --policy-name Laravel-CloudWatch-EC2-Permissions \
--policy-document '{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":["logs:CreateLogStream","cloudwatch:PutMetricData","ec2:DescribeTags","logs:DescribeLogStreams","logs:CreateLogGroup","logs:PutLogEvents","ssm:GetParameter"],"Resource":"*"}]}'
# Add an IAM policy granting access to your S3 bucket
aws iam put-role-policy --role-name Laravel-EC2-Role --policy-name Laravel-S3-EC2-Permissions \
@li0nel
li0nel / docker-compose.yml
Last active February 19, 2019 07:59
Laravel docker-compose
version: '2'
networks:
network:
driver: bridge
services:
app:
build:
context: .
@li0nel
li0nel / Dockerfile
Last active February 19, 2019 07:54
Laravel Dockerfile
FROM php:7.1-fpm
# Update packages and install composer and PHP dependencies.
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
postgresql-client \
libpq-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libmcrypt-dev \
@li0nel
li0nel / Dockerfile-nginx
Created March 5, 2018 14:50
Dockerfile for Nginx
FROM nginx
ADD deploy/nginx/nginx.conf /etc/nginx/
ADD deploy/nginx/default.conf /etc/nginx/conf.d/
ADD public /usr/share/nginx/html
WORKDIR /usr/share/nginx/html
@li0nel
li0nel / nginx.conf
Created March 5, 2018 14:49
Nginx config for Laravel
fastcgi_cache_path /dev/shm levels=1:2 keys_zone=laravel:100m;
fastcgi_cache_key "$scheme$request_method$host$request_uri$query_string";
server {
listen 80 default_server;
server_name laravel.info;
root /usr/share/nginx/html/;
index index.php index.html;
@li0nel
li0nel / docker-machine
Created March 5, 2018 09:15
Docker Machine
docker-machine create -d amazonec2 \
--amazonec2-access-key $AWS_ACCESS_KEY --amazonec2-secret-key $AWS_SECRET_KEY \
--amazonec2-instance-type t2.large --amazonec2-region us-east-1 laravel
@li0nel
li0nel / codepipeline.yml
Created February 5, 2018 14:27
CodePipeline
ArtifactBucket:
Type: AWS::S3::Bucket
DeletionPolicy: Retain
Pipeline:
Type: AWS::CodePipeline::Pipeline
Properties:
RoleArn: !GetAtt CodePipelineServiceRole.Arn
ArtifactStore:
Type: S3