{"id":13612427,"url":"https://github.com/JustinAiken/jekyll-gitlab-letsencrypt","last_synced_at":"2025-04-13T11:32:12.439Z","repository":{"id":54810545,"uuid":"81268617","full_name":"JustinAiken/jekyll-gitlab-letsencrypt","owner":"JustinAiken","description":"DEPRECATED: Automate letsencrypt renewals for gitlab pages","archived":false,"fork":false,"pushed_at":"2019-11-14T16:51:08.000Z","size":148,"stargazers_count":60,"open_issues_count":4,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-24T14:29:49.597Z","etag":null,"topics":["deprecated","gitlab","jekyll","jekyll-plugin","letsencrypt","ssl"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JustinAiken.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.markdown","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-08T00:13:57.000Z","updated_at":"2023-06-16T16:01:28.000Z","dependencies_parsed_at":"2022-08-14T03:31:19.478Z","dependency_job_id":null,"html_url":"https://github.com/JustinAiken/jekyll-gitlab-letsencrypt","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinAiken%2Fjekyll-gitlab-letsencrypt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinAiken%2Fjekyll-gitlab-letsencrypt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinAiken%2Fjekyll-gitlab-letsencrypt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JustinAiken%2Fjekyll-gitlab-letsencrypt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JustinAiken","download_url":"https://codeload.github.com/JustinAiken/jekyll-gitlab-letsencrypt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248705786,"owners_count":21148590,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deprecated","gitlab","jekyll","jekyll-plugin","letsencrypt","ssl"],"created_at":"2024-08-01T20:00:29.683Z","updated_at":"2025-04-13T11:32:07.430Z","avatar_url":"https://github.com/JustinAiken.png","language":"Ruby","funding_links":[],"categories":["Commands \u0026 Switches"],"sub_categories":[],"readme":"# Deprecated\n\n- This gem uses the letsencypt ACME v1 API, which is now deprecated.  A change to use the v2 API would be need to make it work. \n- It's probably not needed - gitlab now offers [automatic Letsencrypt integration](https://gitlab.com/help/user/project/pages/custom_domains_ssl_tls_certification/lets_encrypt_integration.md) \n  - I switched my own page to ^^ from this gem and it worked okay...\n \n[![Gem Version](http://img.shields.io/gem/v/jekyll-gitlab-letsencrypt.svg)](https://rubygems.org/gems/jekyll-gitlab-letsencrypt) [![Build Status](http://img.shields.io/travis/JustinAiken/jekyll-gitlab-letsencrypt/master.svg)](http://travis-ci.org/JustinAiken/jekyll-gitlab-letsencrypt) [![Coveralls branch](http://img.shields.io/coveralls/JustinAiken/jekyll-gitlab-letsencrypt/master.svg)](https://coveralls.io/r/JustinAiken/jjekyll-gitlab-letsencrypt?branch=master) [![Code Climate](http://img.shields.io/codeclimate/github/JustinAiken/jekyll-gitlab-letsencrypt.svg)](https://codeclimate.com/github/JustinAiken/jekyll-gitlab-letsencrypt)\n\n# jekyll-gitlab-letsencrypt\n\n![img](doc/image.png)\n\nThis plugin automagically does the entire the letsencrypt process for your gitlab-hosted jekyll blog!\n\n- *(automatic)* It registers your email to the letsencrypt server\n- *(automatic)* It generates a challenge file, and commits it directly via the gitlab API\n- *(automatic)* It sleeps until the challenge file is live on the internet\n- *(automatic)* It asks letsencrypt to verify it\n- *(automatic)* It spits out the certificate chain and private key\n- *(automatic)* It updates the gitlab pages domain settings to use the certificate\n\n## Usage\n\n### Prerequisites\n\nYou must have:\n- A jekyll blog\n  - Hosted on gitlab pages\n  - With a domain name set up and working\n- Gitlab CI setup such that when you push to `master` (or your preferred branch), your changes are deployed live\n\nVersions supported:\n- Jekyll 3+\n  - 3.3.x - 3.8.x is tested against\n- Ruby 2.1+\n  - Although 2.2+ recommend, as Jekyll itself doesn't support 2.1\n\n### Installation\n\n- Add to your Gemfile:\n\n```ruby\n  group :jekyll_plugins do\n    gem 'jekyll-emojis'\n    gem 'jekyll-more-emojis'\n++  gem 'jekyll-gitlab-letsencrypt'\n  end\n```\n\nand run `bundle install`\n\n## First-time Configuration\n\n- Get a personal access token: https://gitlab.com/profile/personal_access_tokens\n\nAdd a `gitlab-letsencrypt` to your `_config.yml`:\n\n```yaml\ngitlab-letsencrypt:\n  # Gitlab settings:\n  personal_access_token: 'MUCH SECRET'             # Gotten from the step above ^^\n  gitlab_repo:           'gitlab_user/gitlab_repo' # Namespaced repository identifier\n\n  # Domain settings:\n  email:                 'example@example.com'     # Let's Encrypt email address\n  domain:                'example.com'             # Domain that the cert will be issued for\n\n  # Jekyll settings:\n  base_path:  './'               # Where you want the file to go\n  pretty_url: false              # Add a \"/\" on the end of the URL... set to `true` if you use permalink_style: pretty\n  append_str: ''                 # Append this string to the end of the challenge URL\n  filename:   'letsencrypt.html' # What to call the generated challenge file\n\n  # Delay settings:\n  initial_delay: 120 # How long to wait for Gitlab CI to push your changes before it starts checking\n  delay_time:     15 # How long to wait between each check once it starts looking for the file\n\n  # Optional settings you probably don't need:\n  gitlab_url:     'https://someurl'           # Set if you need to use a self-hosted GitLab instance\n  endpoint:       'https://somewhere'         # if you're doing the ACME thing outside of letsencrypt\n  branch:         'master'                    # Defaults to master, but you can use a different branch\n  layout:         'null'                      # Layout to use for challenge file - defaults to null, but you can change if needed\n  scheme:         'https'                     # Scheme to use for challenge request; default http\n  commit_message: 'Renew certificate [ROBOT]' # Commit message to use; defaults to \"Automated Let's Encrypt renewal\"\n```\n\n### Running\n\n- Just type `jekyll letsencrypt`\n\n```shell\n$ jekyll letsencrypt\nRegistering example@example.com to https://acme-v01.api.letsencrypt.org/...\nPushing file to Gitlab\nCommiting challenge file as lets.html\nDone Commiting! Check https://gitlab.com/gitlab_user/gitlab_repo/commits/master\nGoing to check http://example.com/.well-known/acme-challenge/lots_of_numbers/ for the challenge to be present...\nWaiting 120 seconds before we start checking for challenge..\nGot response code 404, waiting 15 seconds...\nGot response code 404, waiting 15 seconds...\nGot response code 200, file is present!\nRequesting verification...\nChallenge status = valid\nChallenge is valid!\nCertificate retrieved!\nUpdating domain example.com pages setting with new certificates..\nSuccess!\n```\n\n### Alternative token usage\n\nIf you don't want to put your secret gitlab token in your `_config.yml`, you can pass it as an ENV var when you run the command:\n\n```bash\nGITLAB_TOKEN=\"VERY_SECRET_NOT_IN_GIT_PLEASE\" jekyll letsencrypt\n```\n\n# License\n\nMIT\n\n# Credits/thanks\n\n- :heart: Gitlab for free page hosting, free repos, and free CI!\n- :heart: the Jekyll team for the easy-to-use blogging engine!\n- Inspired by the excellent [gitlab-letsencrypt](https://github.com/rolodato/gitlab-letsencrypt) npm package.\n- Thanks to contributors:\n  - @ethernet-zero\n  - @daehlith\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJustinAiken%2Fjekyll-gitlab-letsencrypt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FJustinAiken%2Fjekyll-gitlab-letsencrypt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FJustinAiken%2Fjekyll-gitlab-letsencrypt/lists"}