- Create a Droplet on e.g. DigitalOcean.
- Make sure it has at least 1 vCPU and 1 GB of memory.
- Mine has: 1 vCPU, 1 GB, 35 GB NVMe SSD, Premium Intel CPU, Ubuntu 24.04 LTS for $8/month on Digital Ocean
- Choose SSH KEY AUTHENTICATION and create a new SSH key.
- Remember the server's IPv4 address.
- Sign up for a Container Registry e.g. on Digital Ocean for $5/mo (the 500MB free plan won't cut it)
- Remember your username on the registry
- Create an API Token at https://cloud.digitalocean.com/account/api/tokens for pushing images to the registry.
- It needs to have these scopes:
registry (4): delete, update, read, create
- It needs to have these scopes:
- Install Kamal with
gem install kamal
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const R = require('ramda'); | |
const aws = require("aws-sdk"); | |
const { GraphQLClient } = require("graphql-request"); | |
aws.config.update({ | |
region: process.env.REGION | |
}); | |
const cognitoidentityserviceprovider = new aws.CognitoIdentityServiceProvider({ | |
apiVersion: "2016-04-18" | |
}); |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function cssLoaded(href) { | |
var cssFound = false; | |
for (var i = 0; i < document.styleSheets.length; i++) { | |
sheet = document.styleSheets[i]; | |
if (sheet['href'].indexOf(href) >= 0 && sheet['cssRules'].length > 0) { | |
cssFound = true; | |
} | |
}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Centered Vertical line with CSS Gradient | |
*/ | |
div { | |
background: #fff; | |
background: linear-gradient(180deg, transparent, #353535, transparent); | |
background-position: 50%; | |
background-repeat: repeat-y; | |
background-size: 1px auto; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a template .gitignore file for git-managed Prestashop projects. Inspired by micahwalter wordpress gitignore | |
#Ignore ds_store | |
*.DS_Store | |
# Ignore everything in the root except modules, themes and override. | |
/* | |
!modules/ | |
!themes/ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a template .gitignore file for git-managed WordPress projects. | |
# | |
# Fact: you don't want WordPress core files, or your server-specific | |
# configuration files etc., in your project's repository. You just don't. | |
# | |
# Solution: stick this file up your repository root (which it assumes is | |
# also the WordPress root directory) and add exceptions for any plugins, | |
# themes, and other directories that should be under version control. | |
# | |
# See the comments below for more info on how to add exceptions for your |