{"id":24915560,"url":"https://github.com/cmmvio/docs.cmmv.io","last_synced_at":"2026-02-19T13:03:02.685Z","repository":{"id":255542920,"uuid":"850595893","full_name":"cmmvio/docs.cmmv.io","owner":"cmmvio","description":"The official documentation https://cmmv.io/docs","archived":false,"fork":false,"pushed_at":"2025-04-19T00:50:24.000Z","size":8733,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-04T00:39:42.494Z","etag":null,"topics":["cmmv","documentation","nodejs","typescript"],"latest_commit_sha":null,"homepage":"https://cmmv.io/docs","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmmvio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-09-01T08:28:03.000Z","updated_at":"2025-04-19T00:50:27.000Z","dependencies_parsed_at":"2024-09-16T20:17:41.717Z","dependency_job_id":"ec18e4c1-dde4-45f8-ad3e-ba38cfef4d85","html_url":"https://github.com/cmmvio/docs.cmmv.io","commit_stats":null,"previous_names":["andrehrferreira/docs.cmmv.io","cmmvio/docs.cmmv.io"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cmmvio/docs.cmmv.io","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmmvio%2Fdocs.cmmv.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmmvio%2Fdocs.cmmv.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmmvio%2Fdocs.cmmv.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmmvio%2Fdocs.cmmv.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmmvio","download_url":"https://codeload.github.com/cmmvio/docs.cmmv.io/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmmvio%2Fdocs.cmmv.io/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272013576,"owners_count":24858475,"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","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cmmv","documentation","nodejs","typescript"],"created_at":"2025-02-02T07:18:08.982Z","updated_at":"2026-02-19T13:03:02.679Z","avatar_url":"https://github.com/cmmvio.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://cmmv.io/\" target=\"blank\"\u003e\u003cimg src=\"https://raw.githubusercontent.com/cmmvio/docs.cmmv.io/main/public/assets/logo_CMMV2_icon.png\" width=\"300\" alt=\"CMMV Logo\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003eContract-Model-Model-View (CMMV) \u003cbr/\u003e Building scalable and modular applications using contracts.\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://www.npmjs.com/package/@cmmv/core\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@cmmv/core.svg\" alt=\"NPM Version\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/cmmvio/cmmv/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/@cmmv/core.svg\" alt=\"Package License\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://cmmv.io\"\u003eDocumentation\u003c/a\u003e \u0026bull;\n  \u003ca href=\"https://github.com/cmmvio/cmmv/issues\"\u003eReport Issue\u003c/a\u003e\n\u003c/p\u003e\n\n## Description\n\nThis project is compile source documentation in markdown format into the published format. The Repository contains [cmmv.io](https://cmmv.io) source code, the official CMMV documentation.\n\n## Installing\n\nInstall project dependencies and start a local server with the following terminal commands:\n\n```bash\n$ pnpm install\n$ pnpm run dev\n```\n\nNavigate to [http://localhost:3000/](http://localhost:3000/).\n\nAll pages are written in [markdown](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) and located in the docs directory.\n\n## Build\n\nUse `pnpm run build` for a production build.\n\n## Submodule Setup\n\nThe translations are stored in submodules. To initialize and update them, use the following command:\n\n```bash\ngit submodule update --init --recursive\n```\n\nTo push updates for submodules after making commits within the main project, use the following command to ensure the submodules are updated to their remote repositories:\n\n```bash\ngit submodule foreach git push origin main\n```\n\nThis command will execute git push origin main for each configured submodule in the project. Make sure you have committed the necessary changes inside the submodules before running this command.\n\nIf you want to pull the latest updates for submodules and synchronize them with the main repository, use:\n\n```bash\ngit submodule foreach git pull origin main\n```\n\n## Start Processes\n\nAfter initializing the submodules, start the PM2 processes using the appropriate ecosystem file for each language. Below is an example configuration for PM2:\n\n```javascript\nmodule.exports = {\n    apps: [\n        {\n            name: \"docs-ptbr\",\n            script: \"pnpm run start\",\n            env: {\n                DOCS_LANG: \"ptbr\",\n                PORT: 3001\n            }\n        }\n    ]\n};\n```\n\nStart the PM2 process with the following command:\n\n```bash\npm2 start ecosystem-ptbr.config.js\n```\n\n## NGINX\n\nThe system is configured to handle languages using the `DOCS_LANG` environment variable. Each documentation process runs on an individual port and can be routed via subdomains using a load balancer like NGINX. Below is an example configuration:\n\n```nginx\nserver {\n    listen 80 default_server;\n    server_name _;\n\n    location / {\n        proxy_buffering off;\n        proxy_set_header Connection \"\";\n        proxy_http_version 1.1;\n        proxy_set_header Keep-Alive \"\";\n        proxy_set_header Proxy-Connection \"keep-alive\";\n        proxy_pass http://127.0.0.1:3000;\n    }\n}\n\nserver {\n    listen 80;\n    server_name pt.cmmv.io;\n\n    location / {\n        proxy_buffering off;\n        proxy_set_header Connection \"\";\n        proxy_http_version 1.1;\n        proxy_set_header Keep-Alive \"\";\n        proxy_set_header Proxy-Connection \"keep-alive\";\n        proxy_pass http://127.0.0.1:3001;\n    }\n}\n```\n\n### Kubernetes\n\nCreate a deployment and service for the English version:\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: docs-en\n  labels:\n    app: docs\n    lang: en\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: docs\n      lang: en\n  template:\n    metadata:\n      labels:\n        app: docs\n        lang: en\n    spec:\n      containers:\n        - name: docs-en\n          image: your-docker-image:latest\n          ports:\n            - containerPort: 3000\n          env:\n            - name: DOCS_LANG\n              value: \"en\"\n            - name: PORT\n              value: \"3000\"\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: docs-en\nspec:\n  selector:\n    app: docs\n    lang: en\n  ports:\n    - protocol: TCP\n      port: 80\n      targetPort: 3000\n  type: ClusterIP\n```\n\nCreate a deployment and service for the Portuguese version:\n\n```yaml\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: docs-ptbr\n  labels:\n    app: docs\n    lang: ptbr\nspec:\n  replicas: 2\n  selector:\n    matchLabels:\n      app: docs\n      lang: ptbr\n  template:\n    metadata:\n      labels:\n        app: docs\n        lang: ptbr\n    spec:\n      containers:\n        - name: docs-ptbr\n          image: your-docker-image:latest\n          ports:\n            - containerPort: 3001\n          env:\n            - name: DOCS_LANG\n              value: \"ptbr\"\n            - name: PORT\n              value: \"3001\"\n---\napiVersion: v1\nkind: Service\nmetadata:\n  name: docs-ptbr\nspec:\n  selector:\n    app: docs\n    lang: ptbr\n  ports:\n    - protocol: TCP\n      port: 80\n      targetPort: 3001\n  type: ClusterIP\n```\n\nWith this setup, the English documentation will be available at `http://cmmv.io` and the Portuguese documentation at `http://pt.cmmv.io`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmmvio%2Fdocs.cmmv.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmmvio%2Fdocs.cmmv.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmmvio%2Fdocs.cmmv.io/lists"}