{"id":19039888,"url":"https://github.com/cert-manager/website","last_synced_at":"2025-05-15T15:07:12.602Z","repository":{"id":37444429,"uuid":"194756741","full_name":"cert-manager/website","owner":"cert-manager","description":"Source code for the cert-manager.io website, including project documentation","archived":false,"fork":false,"pushed_at":"2025-05-13T07:06:54.000Z","size":16504,"stargazers_count":55,"open_issues_count":106,"forks_count":358,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-13T08:23:03.839Z","etag":null,"topics":["cert-manager","hacktoberfest"],"latest_commit_sha":null,"homepage":"https://cert-manager.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cert-manager.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-07-01T23:42:32.000Z","updated_at":"2025-05-13T07:05:58.000Z","dependencies_parsed_at":"2023-12-26T12:09:16.712Z","dependency_job_id":"5b5b82a7-be76-43db-b2c4-f1dd58174690","html_url":"https://github.com/cert-manager/website","commit_stats":{"total_commits":2586,"total_committers":275,"mean_commits":9.403636363636364,"dds":0.8163186388244392,"last_synced_commit":"28737d70ec416fd668300b50f5f3bceb9302ec28"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cert-manager%2Fwebsite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cert-manager%2Fwebsite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cert-manager%2Fwebsite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cert-manager%2Fwebsite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cert-manager","download_url":"https://codeload.github.com/cert-manager/website/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254032115,"owners_count":22002881,"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":["cert-manager","hacktoberfest"],"created_at":"2024-11-08T22:19:23.961Z","updated_at":"2025-05-15T15:07:07.594Z","avatar_url":"https://github.com/cert-manager.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/cert-manager/cert-manager/d53c0b9270f8cd90d908460d69502694e1838f5f/logo/logo-small.png\" height=\"256\" width=\"256\" alt=\"cert-manager project logo\" /\u003e\n\u003c/p\u003e\n\n# cert-manager Website\n\nSource code for the [cert-manager.io](https://cert-manager.io) website, which includes\ndocumentation for each version of cert-manager as well as supported version information,\ninstallation instructions, tutorials, guides, FAQs and information for contributors.\n\nThe site uses [next.js](https://nextjs.org/) as a framework, and all documentation is written\nin [MDX](https://github.com/mdx-js/mdx) (Markdown).\n\n## Development Requirements\n\nAt the very least, you'll need to install a couple of tools to be able to build and run\nthe site locally and to test your changes.\n\nThe following tool(s) must be installed on your system prior to developing the website:\n\n* cURL\n* NodeJS, version 16+\n* Golang, version 1.17+\n\nWe also assume you've got GNU coreutils installed, which is usually the case by default on Linux\nand should be installable via Homebrew on macOS.\n\n## Website Development Guides\n\n### Which branch should I use?\n\nThere are two relevant branches used for website development: `master` and `release-next`.\n\nChanges to `master` will be reflected on the live website shortly after they're merged. If your change is relevant\nto any version of cert-manager which has already been released, your change likely needs to be made against master.\n\n`release-next` is used for features which haven't been released in a stable version of cert-manager yet. Changes\nwill be reflected on a preview deployment for the release-next branch which is linked to from the main site.\n\n### Where's the documentation content?\n\nFirst, docs go under `content/`; you shouldn't normally need to change files outside of `content/` when\nmaking any documentation change.\n\nThere are several folders in `content/` and which one you need depends on what you're changing:\n\n- Something which applies to the current version of cert-manager? \u003cbr /\u003e\n  Add it to `docs/` and possibly to the specific version of cert-manager that's latest (e.g. `v1.8-docs/`)\n- Something which only applies to the next major version of cert-manager? \u003cbr /\u003e\n  Add it to `docs/` but branch from the [`release-next` branch](https://github.com/cert-manager/website/tree/release-next) and merge the PR into that branch. See above.\n- Something which isn't \"versioned\", e.g. a page under \"contributing\", release notes or our supported-releases page? \u003cbr /\u003e\n  Add it to `docs/`, which is the only place such pages should appear\n- Something which applies only to versions of cert-manager which have already been released? \u003cbr /\u003e\n  Change specific version docs (e.g. `v1.8-docs/`)\n\nIf you're not sure, _ask_! Reach out to us on [slack](https://cert-manager.io/docs/contributing/#slack) and\nwe'll point you in the right direction!\n\n### Task: Linking to other documentation pages\n\nWhen working on documentation, all links to other documentation pages should be _relative_ to the\ndocument you're working on and should point at a named markdown file.\n\nFor example, take [this snapshot](https://raw.githubusercontent.com/cert-manager/website/d398905baef9841590fab6c2b854b74f0eecb006/content/docs/concepts/certificate.md)\nof the \"Certificate Concepts\" page.\n\nThere's an external link to an RFC which is fully specified as expected:\n\n\u003e `see [RFC 5246 section 7.4.2](https://datatracker.ietf.org/doc/html/rfc5246#section-7.4.2)`\n\nBut towards the end of the page we link to the \"Certificate Usage\" page:\n\n\u003e `[here](../usage/certificate.md).`\n\nIf we're browsing the repository on the GitHub website (i.e. on [this page](https://github.com/cert-manager/website/blob/d398905baef9841590fab6c2b854b74f0eecb006/content/docs/concepts/certificate.md)), that relative link will work. In addition,\nthe next.js framework will ensure that the link is correct by stripping the `.md`, so the final rendered link\nwill be to `https://cert-manager.io/docs/usage/certificate` as we expect.\n\n✨ When linking to an \"Introduction\" page, link to the README.md file directly. The framework will remove the whole\nfilename, so e.g. `[example link](../usage/README.md)` will link to `https://cert-manager.io/docs/usage/`.\n\n### Task: Adding new pages\n\nDocumentation files aren't automatically picked up or added to the navigation on the site when created.\n\nIf you want a file to appear, you need to add it to the `manifest.json` file for the given version of the\nsite you're working on.\n\nFor example, the [manifest for the docs section](https://github.com/cert-manager/website/blob/master/content/docs/manifest.json)\ncontains the expected path for every file.\n\nIf you're adding a top-level page which should only appear in the `docs/` section (such as the existing \"contributing\" section)\nthen add `\"x-only-docs\": true` underneath the title in `manifest.json`. This will cause that section to be removed when a new versioned docs section.\n\nLikewise, if a folder shouldn't be copied from `docs/` to a versioned section, add a file called `.x-only-docs` to that folder, and it will be removed from any newly created versioned documentation.\n\n### Task: Changing OpenGraph / social sharing tags\n\nThese tags are defined in Next.js code and config.\n\nFor docs pages, OpenGraph titles and descriptions are based on the titles and descriptions in the docs themselves, which\nis configured in the frontmatter for each docs page. The magic happens in in `pages/[...docs].jsx`.\n\nFor pages _except_ docs and for some other tags, look at changing [`next-seo.config.js`](./next-seo.config.js).\n\n### Task: Adding a Comment in Documentation\n\nSometimes you'll want to add a comment which is only for documentation maintainers.\n\nUse `{/* my comment */}` rather than the HTML-style comments you'd normally use for Markdown files. Other comment types will cause errors.\n\n### Task: Merging `master` into `release-next`\n\nIn rare occasions, when writing documentation for an unreleased feature, you may\nnotice that some recent changes in `master` aren't present in `release-next`. If\nthat is a problem, you will want to update `release-next` branch with the latest\nchanges from `master`. To update `release-next` with the changes made to\n`master`, follow these steps:\n\n1. Create a PR to merge `master` into `release-next` using [this magic\n   link][ff-release-next].\n2. If you see the label `dco-signoff: no`, add a comment on the PR with:\n\n   ```text\n    /override dco\n    ```\n\n   It is necessary because some the merge commits have been written by the bot\n   and do not have a DCO signoff.\n\n[ff-release-next]: https://github.com/cert-manager/website/compare/release-next...master?quick_pull=1\u0026title=%5Brelease-next%5D+Merge+master+into+release-next\u0026body=%3C%21--%0A%0AThe+command+%22%2Foverride+dco%22+is+necessary+because+some+the+merge+commits%0Ahave+been+written+by+the+bot+and+do+not+have+a+DCO+signoff.%0A%0A--%3E%0A%0A%2Foverride+dco\n\n## Website Development Tooling\n\nFirst [install nodejs (and package manager called `npm`)](https://nodejs.org/en/).\nThen install all the tools and packages required to build the website as follows:\n\n```bash\nnpm ci\n```\n\nThis command is similar to `npm install` but it ensures that you will have a clean install of all the dependencies.\n\n### Development Server\n\nThe best development environment uses the Netlify CLI to serve the site locally. The Netlify CLI server\nclosely matches the environment in which the website is deployed, and will enable local debugging of redirects and\nenvironment variables.\n\nTo run this server, install the [Netlify CLI](https://docs.netlify.com/cli/get-started/) as follows:\n\n```bash\nnpm install -g netlify-cli\n```\n\nThen run the server:\n\n```bash\n./scripts/server\n```\n\nNote that the server will also be accessible locally at port 3000, but that on this port there'll be no\nsupport for debugging redirects or environment variables. Use port 8888.\n\nInitial builds of a page on the development server can be quite slow - a few seconds - but\nafter the initial build changes should be picked up quickly and the development server\nshould be snappy to use.\n\n### Running Verification Scripts\n\nAfter you have made changes to the website, you should run the `verify` script\nto ensure things like spelling are valid.\nTo run all verification checks:\n\n```bash\n./scripts/verify\n```\n\nThis will automatically run a number of checks against your local environment, including:\n\n* Lint checks on the nextjs code using [next lint](https://nextjs.org/docs/basic-features/eslint).\n* Link checks on all pages using [markdown-link-check](https://github.com/tcort/markdown-link-check).\n* Spelling in all pages using [mdspell](https://github.com/lukeapage/node-markdown-spellcheck).\n* Formatting of the markdown in all pages using [remark](https://github.com/remarkjs/remark).\n\n\u003e ℹ️ All these checks are also run automatically for pull requests.\n\u003e The results will be reported in the [checks summary](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks) at the bottom of your GitHub PR.\n\u003e Read the [cert-manager-website-presubmits.yaml prow configuration file](https://github.com/cert-manager/testing/blob/master/config/jobs/cert-manager/website/cert-manager-website-presubmits.yaml) and the [check.yaml workflow file](.github/workflows/check.yaml) for more details.\n\n### Building for a Release\n\nOn release, all output is placed into the `out/` directory.\nThe full release process can be run through one script:\n\n```bash\n./scripts/build-release\n```\n\n### API / CLI Documentation Generation\n\nTo update the [API documentation](https://cert-manager.io/docs/reference/api-docs/) and [CLI documentation](https://cert-manager.io/docs/cli/), run:\n\n```bash\n./scripts/gendocs/generate\n```\n\nThis should be done before every cert-manager release (if the API or CLI flags have changed)\nand any time the API or CLI of the [satellite projects](https://cert-manager.io/docs/contributing/projects/) changes,\nand the changes should be committed.\n\nSince there are many old versions of cert-manager, none of which change regularly (or at all),\nthe website build process does not re-generate documentation for older versions, on the assumption\nthat doing so would be a waste of effort.\n\nThe solution for achieving this is simple; the generation scripts for older cert-manager versions\nare commented out. To rebuild, uncomment them and then re-comment after.\n\nFor versions of cert-manager older than v1.8, API doc generation used the old cert-manager import\npath and for this reason there's a different script - `scripts/gendocs/generate-old-import-path-docs`.\nIf you want to rebuild reference docs for versions older than 1.8, you'll also need to uncomment\n`generate-old-import-path-docs` in `scripts/gendocs/generate`.\n\n### Signing Keys\n\nPublic keys used for verifying signatures are served on the website statically, and are located\nin `public/public-keys` directory.\n\nSee the [docs on signing keys](./content/docs/contributing/signing-keys.md) for more information\nabout how and why these keys are generated and provided here.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcert-manager%2Fwebsite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcert-manager%2Fwebsite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcert-manager%2Fwebsite/lists"}