Directories on host machine:
-
/data/certbot/letsencrypt -
/data/certbot/www -
Nginx server in docker container
docker run -d --name nginx \
Directories on host machine:
/data/certbot/letsencrypt
/data/certbot/www
Nginx server in docker container
docker run -d --name nginx \
Steps to deploy a Node.js app to DigitalOcean using PM2, NGINX as a reverse proxy and an SSL from LetsEncrypt
If you use the referal link below, you get $10 free (1 or 2 months) https://m.do.co/c/5424d440c63a
I will be using the root user, but would suggest creating a new user
| import json | |
| print('Loading function') | |
| def lambda_handler(event, context): | |
| print('------------------------') | |
| print(event) | |
| #1. Iterate over each record | |
| try: | |
| for record in event['Records']: |
| """ | |
| Given a dictionary, transform it to a string. Then byte encode that string. Then base64 encode it and since this will go | |
| on a url, use the urlsafe version. Then decode the byte string so that it can be else where. | |
| """ | |
| data = base64.urlsafe_b64encode(json.dumps({'a': 123}).encode()).decode() | |
| # And the decode is just as simple... | |
| data = json.loads(base64.urlsafe_b64decode(query_param.encode()).decode()) | |
| # Byte encode the string, base64 decode that, then byte decode, finally transform it to a dictionary |
| Aerobase | Keycloak | WSO2 Identity Server | Gluu | CAS | OpenAM | Shibboleth IdP | |
|---|---|---|---|---|---|---|---|
| OpenID Connect/OAuth support | yes | yes | yes | yes | yes | yes | third-party |
| Multi-factor authentication | yes | yes | yes | yes | yes | yes | yes |
| Admin UI | yes | yes | yes | yes | yes | yes | no |
| OpenJDK support | yes | yes | yes | yes | no | ||
| Identity brokering | yes | yes | yes | ||||
| Middleware | NGINX, Wildfly | Wildfly, JBOSS | WSO2 Carbon | Jetty, Apache HTTPD | any Java app server | any Java app server | Jetty, Tomc |
| curl "https://api.GitHub.com/repos/<GitHubUserName>/<REPO_NAME>/statuses/$GIT_COMMIT?access_token=<YOUR_GITHUB_TOKEN>" \ | |
| -H "Content-Type: application/json" \ | |
| -X POST \ | |
| -d "{\"state\": \"failure\",\"context\": \"continuous-integration/jenkins\", \"description\": \"Jenkins\", \"target_url\": \"<YOUR_JENKINS_URL>/job/<JenkinsProjectName>/$BUILD_NUMBER/console\"}" |
This was created years ago; at the time I'd been a Shibboleth admin for nearly a decade but we needed something that could handle OIDC/OAuth and that explicitly supported OpenJDK. After a lot of investigation, I really liked Keycloak/Red Hat Single Sign-On. More details here: Gluu vs keycloack vs wso2 identity management
(Items in bold indicate possible concerns)
| /* | |
| 1) Depending on your experience, this is all you might need to do to hook up your workflow | |
| 2) Remember, not to copy and paste. My idea is to show you how things fit it to you can tailor it to your application | |
| GRACIAS 💪 | |
| */ |
| Some Jenkinsfile examples |