{"id":44539271,"url":"https://github.com/simplyblock/documentation","last_synced_at":"2026-02-13T18:55:17.321Z","repository":{"id":280611859,"uuid":"942527155","full_name":"simplyblock/documentation","owner":"simplyblock","description":"Simplyblock Documentation Repository","archived":false,"fork":false,"pushed_at":"2026-01-27T17:29:18.000Z","size":13206,"stargazers_count":6,"open_issues_count":6,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-28T03:56:02.029Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://docs.simplyblock.io","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simplyblock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-03-04T08:42:06.000Z","updated_at":"2026-01-27T17:36:00.000Z","dependencies_parsed_at":"2025-03-04T11:26:08.245Z","dependency_job_id":"ff3ffbec-2a1a-4201-bcc9-7aa645fe12b8","html_url":"https://github.com/simplyblock/documentation","commit_stats":null,"previous_names":["simplyblock-io/documentation-mkdocs","simplyblock-io/documentation","simplyblock/documentation"],"tags_count":11,"template":false,"template_full_name":null,"purl":"pkg:github/simplyblock/documentation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyblock%2Fdocumentation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyblock%2Fdocumentation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyblock%2Fdocumentation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyblock%2Fdocumentation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simplyblock","download_url":"https://codeload.github.com/simplyblock/documentation/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simplyblock%2Fdocumentation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29414285,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T06:24:03.484Z","status":"ssl_error","status_checked_at":"2026-02-13T06:23:12.830Z","response_time":78,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-02-13T18:55:16.906Z","updated_at":"2026-02-13T18:55:17.306Z","avatar_url":"https://github.com/simplyblock.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simplyblock Documentation\n\nSimplyblock is a high-performance, ultra-low-latency storage solution. It enables enterprise-grade, NVMe/TCP-powered block\nstorage directly inside Proxmox, offering high performance, scalability, and resilience without the need for specialized\nhardware or vendor lock-in.\n\nWith simplyblock, you can seamlessly integrate **software-defined storage (SDS)** into your Proxmox environment, enabling support for advanced features like:\n\n- ⚡ **Ultra-low latency**: Unlock performance with NVMe-over-TCP\n- 🧩 **Native Proxmox integration**: Manage volumes directly in Proxmox\n- 🛡️ **Enterprise data services**: Snapshots, clones, erasure coding, multi-tenancy\n- 🔒 **Secure \u0026 robust**: Cluster authentication and Quality of Service (QoS)\n- ☁️ **Cloud \u0026 on-prem flexibility**: Deploy anywhere Proxmox runs\n\n👉 The deployed documentation is available at [https://docs.simplyblock.io](https://docs.simplyblock.io/latest/).\n\n![](assets/simplyblock-logo.svg)\n\n## How To Extend The Documentation\n\nThis repository contains the [simplyblock documentation](https://docs.simpylblock.io). It is built using\n[mkdocs](https://www.mkdocs.org/) and uses a provided shell script `doc-builder` to ease the process of working with it.\n\n- [Simplyblock Documentation](#simplyblock-documentation)\n    * [How To Extends The Documentation](#how-to-extend-the-documentation)\n    * [Docs Builder](#%EF%B8%8F-docs-builder)\n        + [Serving Content Locally](#serving-content-locally)\n        + [Building a Static Version of the Documentation](#building-a-static-version-of-the-documentation)\n        + [Preparing the Deployment of a New Version](#preparing-the-deployment-of-a-new-version)\n    * [Structure of the Documentation](#-structure-of-the-documentation)\n        + [Folder Structure](#folder-structure)\n        + [Writing a Documentation Page](#writing-a-documentation-page)\n        + [Documentation Features](#documentation-features)\n            - [Links](#links)\n            - [Admonitions](#admonitions)\n                * [Notes](#notes)\n                * [Recommendations](#recommendations)\n                * [Infos](#infos)\n                * [Warnings](#warnings)\n                * [Dangers](#dangers)\n            - [Code Blocks](#code-blocks)\n            - [Content Tabs](#content-tabs)\n            - [Tables](#tables)\n            - [Diagrams](#diagrams)\n            - [Footnotes](#footnotes)\n            - [Icons and Emojis](#icons-and-emojis)\n  * [Contributing](#-contributing)\n  * [Release Process](#%EF%B8%8F-release-process)\n\n## 🛠️ Docs Builder\n\nThe `doc-builder` tool uses Docker and a customized mkdocs Docker image to serve and build the documentation. The\nimage contains all required plugins.\n\nWhen using `doc-builder` for the first time (and ideally after an update of the Git repository), the Docker image\nneeds to be built using:\n\n```bash\n./doc-builder build-image\n```\n\nIn addition, external repositories have to be checked out, to generate the necessary documentation pages. The\n`doc-builder` simplifies this process with a specific command which either creates an initial checkout or updates the\nrepositories to the latest commit.\n\n```bash\n./doc-builder update-repositories\n```\n\nThe command can be run at any time to update the external repositories to the latest commit.\n\n### Serving Content Locally\n\nWhen building or updating the documentation, it is useful to have a local builder with live updating. Mkdocs supports\nthis, as does the `doc-builder`. To simplify the process of working with mkdocs, there is a command to start the\nlocal builder:\n\n```bash\n./doc-builder serve\n```\n\n### Building a Static Version of the Documentation\n\nTo test a fully built, static version of the current documentation, the docs can be built into the `./site` directory.\nThis version can be used independently and deployed by dropping it into any webserver that is able to serve static\ncontent.\n\nTo build the static version, use the following command:\n\n```bash\n./doc-builder build\n```\n\n### Preparing the Deployment of a New Version\n\nSince the documentation system supports the deployment and management of multiple versions, previous and current\nversions are collected in the `./deployment/` folder. The symlinks are automatically updated according to the newest\nversion, as is the `versions.json` file.\n\nTo simplify the process of a new version deployment of the documentation, the `doc-builder` provides the necessary\ncommand.\n\n```bash\n./doc-builder deploy {version-name}\n```\n\nThe given _version-name_ will be used as a directory name and name of the version in the dropdown selector. Hence, it\nis recommended that it only contains lowercase letters, numbers, and underscores or dashes.\n\n## 📚 Structure of the Documentation\n\nThe simplyblock documentation uses [mkdocs](https://www.mkdocs.org/) as the underlying framework. As the theme, the\nsimplyblock documentation uses [mkdocs-material](https://squidfunk.github.io/mkdocs-material/).\n\n### Folder Structure\n\nThe simplyblock documentation uses the following basic folder structure:\n\n```plain\n documentation root\n ├─ deployment/                            (1)\n |  ├─ .htaccess                           (2)\n |  ├─ versions.json (symlink)             (3)\n |  ├─ latest/ (symlink)                   (4)\n |  ├─ ... version folders/                (5)\n ├─ docs/                                  (6)\n |  ├─ index.md                            (7)\n |  ├─ assets/                             (8)\n |  |  ├─ javascripts/                     (9)\n |  |  |  └─ ... .js files                 (10)\n |  |  ├─ stylesheets/                     (11)\n |  |  |  └─ extra.css                     (12)\n |  |  └─ ... .svg / .png / .jpg files     (13)\n |  ├─ ... folders/                        (14)\n |  |  ├─ index.md                         (15)\n |  |  └─ ... .md files                    (16)\n ├─ snippets/                              (17)\n |  └─ ... .md files                       (18)\n ├─ templates/                             (19)\n ├─ doc-builder                            (20)\n ├─ Dockerfile                             (21)\n ├─ mkdocs.yml                             (22)\n └─ README.md                              (23)\n```\n\n1. The `deployment` folder contains all currently built and deployed versions of the documentation.\n2. The `.htaccess` file contains the necessary redirect rules to automatically redirect to the latest version.\n3. The `versions.json` symlink links to `latest/versions.json`.\n4. The `latest` symlink links to the latest deployed version of the documentation.\n5. The versions folders are subfolders representing the different versions of the documentation.\n6. The `docs` folder contains the documentation source files.\n7. The `index.md` contains the initial index page of the documentation.\n8. The `assets` folder contains additional assets such as images, stylesheets, and javascript files.\n9. The `javascripts` folder contains additional javascript files.\n10. The additional javascript files.\n11. The `stylesheets` folder contains the extra.css file which defines additional stylesheets.\n12. The `extra.css` file defines additional stylesheets.\n13. The additional image files.\n14. The folders contain the substructure of the documentation. A folder represents a subsection of the documentation.\n15. The `index.md` file is the index page of the subsection.\n16. The other markdown files add additional pages to the subsection.\n17. The `snippets` folder contains reusable and injectable documentation snippets.\n18. The markdown files contain snippets to be injected.\n19. The `templates` folder contains template overrides and adjustments.\n20. The `doc-builder` file is the helper script to test and build the documentation.\n21. The `Dockerfile` file contains the necessary build instructions for the Docker container used by `doc-builder`.\n22. The `mkdocs.yml` file contains the mkdocs configuration.\n23. The `README.md` file is this file.\n\n### Writing a Documentation Page\n\nTo add a new documentation pages, a markdown file have to be created. This markdown file consists of two sections, a\nsection called front matter which is a YAML section defining the position of the new file in the subsections hierarchy\nand title, as well as the actual markdown part, representing the content of the file.\n\n```markdown\n---\ntitle: \"My Page Title\"  # Page Title\nweight: 123             # Page Position \n---\n\nIntroduction text\n\n## Markdown Header\n\nMarkdown content\n```\n\n- A markdown documentation page always starts with a short introduction text without its own heading.\n- Markdown headings in documentation pages only use H2 (##), H3 (###), H4 (####), and H5 (#####). H1 (#) is never used directly.\n- The documentation page title must not be longer than two lines in the documentation navigation. Keep it short and precise.\n- The weight should use larger steps in the tens or hundreds to ease injection of additional pages without changing all following weights. \n\n### Documentation Features\n\nThe documentation system supports a number of styling and admonitions.\n\n#### Links\n\nThe documentation uses standard markdown link syntax. However, links to external pages should be marked with an\nadditional marker to open those links in a new browser tab.\n\nIn addition, internal links must use relative paths to the linked content file. If the internal link links to a heading\non the same page, the hash sign (#) can be used directly. It is also possible to link to headings in other pages by\nfollowing up the relative link the hash sign (#) and the heading id.\n\n```markdown\n[Internal Link](../internal/url.md)\n[Internal Link To Heading](../internal/url.md#heading-id)\n[Heading Link](#heading-id)\n\n[External Link](https://some-external.url){:target=\"_blank\" rel=\"noopener\"}\n```\n\nThe required heading ids are automatically generated as a full lowercase version of the heading with whitespaces and\nspecial characters transformed into dashes (-).\n\n#### Admonitions\n\nAdmonitions have specific meanings and should be used to emphasize certain parts of the documentation, warn users about\ndangerous options, and send people to additional information.\n\nAdmonitions are normally started with three exclamation marks (!!!). In this case the admonition is fully visible at all\ntimes. If started with three question marks (???) instead, the admonition is collapsed by default and can be manually\nopened by the interested user with clicking the title. In this case, it is important to provide a title with the\nadmonition definition.\n\n```markdown\n??? note \"This is the admonition title\"\n    The text goes here\n```\n\n##### Notes\n\nNotes include additional information which may be interesting but not crucial.\n\n```markdown\n!!! note\n    The text goes here\n```\n\n##### Recommendations\n\nRecommendations include best practices and recommendations.\n\n```markdown\n!!! recommendation\n    The text goes here\n```\n\n##### Infos\n\nInformation boxes include background and links to additional information.\n\n```markdown\n!!! info\n    The text goes here\n```\n\n##### Warnings\n\nWarnings contain crucial information that contain crucial information be considered before proceeding.\n\n```markdown\n!!! warning\n    The text goes here\n```\n\n##### Dangers\n\nDangers contain crucial information that can lead to harmful consequences, such as data loss and irreversible damage.\n\n```markdown\n!!! danger\n    The text goes here\n```\n\n#### Code Blocks\n\nThe documentation heavily uses code blocks for command description and example output. Code blocks should always use\nthe additional title attribute.\n\n````markdown\n```bash title=\"Some example title\"\n... code goes here\n```\n````\n\n#### Content Tabs\n\nContent tabs can be used to provide the same content (such as API call) in multiple programming languages. Content tabs\nuse three equal signs to define the different tabs and four spaces of indentation to define the tabs content.\n\n```markdown\n=== \"curl\"\n    ```plain\n    curl -L ...\n    ```\n    \n=== \"PHP\"\n    ```php\n    $foo = file_get_contents(...);\n    ```\n```\n\n#### Tables\n\nThe documentation uses \"standard\" extended markdown tables.\n\n```markdown\n| Title first Column  | Title second Column  | ... |\n| ------------------- | -------------------- | --- |\n| Content first row   | Content first row    | ... |\n| Content second row  | Content second row   | ... |\n| ...                 | ...                  | ... |\n```\n| Title first Column  | Title second Column  | ... |\n| ------------------- | -------------------- | --- |\n| Content first row   | Content first row    | ... |\n| Content second row  | Content second row   | ... |\n| ...                 | ...                  | ... |\n\n\nTo force left or right alignment of columns, colons (:) can be used.\n\n```markdown\n| Title first Column  | Title second Column  | ... |\n| :------------------ | -------------------: | --- |\n| Content first row   | Content first row    | ... |\n| Content second row  | Content second row   | ... |\n| ...                 | ...                  | ... |\n```\n| Title first Column  | Title second Column  | ... |\n| :------------------ | -------------------: | --- |\n| Content first row   | Content first row    | ... |\n| Content second row  | Content second row   | ... |\n| ...                 | ...                  | ... |\n\n#### Diagrams\n\nThe documentation supports diagrams using mermaid. Please see the\n[mkdocs-material documentation](https://squidfunk.github.io/mkdocs-material/reference/diagrams/) for more information.\n\n````markdown\n``` mermaid\ngraph LR\n  A[Start] --\u003e B{Error?};\n  B --\u003e|Yes| C[Hmm...];\n  C --\u003e D[Debug];\n  D --\u003e B;\n  B ----\u003e|No| E[Yay!];\n```````\n\n#### Footnotes\n\nFootnotes can be used to add links to additional documentation.\n\n```markdown\nHere goes the text[^1] which uses the inline footnote identifier.\n\n[^1]: The footnote which will be added to the end of the page.\n```\n\n#### Icons and Emojis\n\nThe documentation system provides three sets of icons and emojis which can be used throughout the documentation. Icons\nare inserted using a colon (:) at the start and end of the icon name. The latter is a combination of collection name,\nthe name of the icon, and potentially additional parameters, such as the icon size.\n\n```markdown\n:fontawesome-brands-youtube:\n:octicons-heart-fill-24:\n:material-book-open-page-variant:\n```\n\nThe icon names can be looked up in the corresponding collection's search feature:\n\n- Fontawesome: [https://fontawesome.com/search](https://fontawesome.com/search)\n- Octicons: [https://primer.style/foundations/icons](https://primer.style/foundations/icons)\n- Material: [https://pictogrammers.com/library/mdi/](https://pictogrammers.com/library/mdi/)\n\nBe aware that some of the collections have premium icons which are not included with the documentation builder. Only\nfree icons are available.\n\n## 🤝 Contributing\n\nIf you find issues, typos, or have an enhancement request, please file and\n[issue](https://github.com/simplyblock/documentation/issues) or create a\n[pull request](https://github.com/simplyblock/documentation/pulls).\n\nPull requests are automatically built to check that there is no issues in the documentation changes, such as broken\nlinks. After the pull request is successfully built, it will be reviewed and feedback provided or merged.\n\nAny help with the documentation is highly appreciated!\n\n## ⚙️ Release Process\n\nThe `main` branch is rebuild on any push and automatically deployed to the live documentation as the\n[_development_ branch](https://docstest.simplyblock.io/dev/).\n\nTo create a new full version of the documentation, create a new branch from `main` or a previously tagged version (like\n25.5.1) and the naming pattern `release/{version-number}`. The _version-number_ will be used as the folder name and title of\nthe version and as the tag name to lock the `sbcli` repository against. It is required to only use lowercase letters,\nnumber, underscores, and dashes.\n\nIf your `sbcli` tag is named as `25.5.1`, the branch name MUST be named `release/25.5.1`.\n\nIn the branch, the following changes have to be performed:\n\n- `docs/release-notes`\n  - Create a new release notes file (best to duplicate the previous one).\n  - Update the release version number in the frontmatter and the introduction sentence.\n  - Decrement the weight in the frontmatter.\n- Commit the changes to the release branch.\n- Push the release branch and ensure the name is according to the pattern: `release/{version-number}` (e.g., `release/25.5.1`).\n\nAfter pushing the new release branch, the GitHub action builder kicks in, builds the version, deploys it to the live\nwebsite and updates the latest symlink, creates the necessary tag for history reasons, and merges the built\ndocumentation back into the `main` branch (folder `deployment`) using an auto-generated and auto-merged pull request. \n\nNo further action is required.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplyblock%2Fdocumentation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimplyblock%2Fdocumentation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimplyblock%2Fdocumentation/lists"}