{"id":28445114,"url":"https://github.com/wechaty/js.org","last_synced_at":"2025-10-27T22:13:39.786Z","repository":{"id":46215169,"uuid":"475934953","full_name":"wechaty/js.org","owner":"wechaty","description":"Wechaty Official Website for News, Blogs, Contributor Profiles, and Documentations.","archived":false,"fork":false,"pushed_at":"2024-04-02T07:55:37.000Z","size":252,"stargazers_count":1,"open_issues_count":1,"forks_count":16,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-29T20:39:11.606Z","etag":null,"topics":["docker","docker-compose","nginx","proxy","website","wechaty"],"latest_commit_sha":null,"homepage":"https://wechaty.js.org","language":null,"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/wechaty.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":"2022-03-30T15:14:16.000Z","updated_at":"2024-01-24T03:31:47.000Z","dependencies_parsed_at":"2025-06-29T20:33:02.033Z","dependency_job_id":"534a4664-4bf6-4107-9520-039f91843230","html_url":"https://github.com/wechaty/js.org","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wechaty/js.org","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fjs.org","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fjs.org/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fjs.org/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fjs.org/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wechaty","download_url":"https://codeload.github.com/wechaty/js.org/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wechaty%2Fjs.org/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264400328,"owners_count":23602238,"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":["docker","docker-compose","nginx","proxy","website","wechaty"],"created_at":"2025-06-06T10:11:21.795Z","updated_at":"2025-10-27T22:13:39.707Z","avatar_url":"https://github.com/wechaty.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://wechaty.js.org\"\u003e\n  \u003cimg src=\"https://github.com/wechaty/wechaty.js.org/blob/main/docs/images/wechaty-website.png\" alt=\"wechaty official website\" height =\"auto\" width=\"800\" /\u003e\n\u003c/a\u003e\n\u003cbr /\u003e\n\u003ch1\u003eWechaty Organization Website\u003c/h1\u003e\n\u003cp\u003e\nRepository for the Wechaty Organization Website, a resource for the Wechaty Organization. It is the official Wechaty website for publishing latest news, blog posts, contributor profiles, and documentation from our open source community.\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://github.com/wechaty/js.org\" alt=\"GitHub contributors\"\u003e\n\u003cimg src=\"https://img.shields.io/github/contributors/wechaty/js.org.svg\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/wechaty/js.org\" alt=\"GitHub issues by-label\"\u003e\n\u003cimg src=\"https://img.shields.io/github/issues/wechaty/js.org\" /\u003e\u003c/a\u003e\n\u003ca href=\"https://gitter.im/wechaty/wechaty\" alt=\"Gitter\"\u003e\n\u003cimg src=\"https://img.shields.io/badge/Gitter-@layer5.svg?logo=slack\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n[![Docusaurus](https://github.com/wechaty/docusaurus/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/wechaty/docusaurus/actions/workflows/gh-pages.yml)\n[![Jekyll](https://github.com/wechaty/jekyll/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/wechaty/jekyll/actions/workflows/gh-pages.yml)\n\n\u003c/div\u003e\n\n## 1. News, Blog, Contributor Profiles\n\n[![Wechaty Jekyll](https://github.com/wechaty/jekyll/blob/main/docs/images/wechaty-jekyll.png)](https://github.com/wechaty/jekyll)\n\nGoto Jekyll Repo: \u003chttps://github.com/wechaty/jekyll\u003e\n\n## 2. Documentation\n\n[![Wechaty Docusaurus](https://github.com/wechaty/docusaurus/blob/main/docs/images/wechaty-docusaurus.png)](https://github.com/wechaty/docusaurus)\n\nGoto Docusaurus Repo: \u003chttps://github.com/wechaty/docusaurus\u003e\n\n# Wechaty Official Website Transparent Proxy\n\nThis repo is the configuration for transparent proxy GitHub Pages of Jekyll and Docusaurus for merging them into our \u003chttps://wechaty.js.org\u003e home page.\n\nIf you want to create blog post, or contribute to documentation, please visit the above repos ([Jekyll](https://github.com/wechaty/jekyll) \u0026 [Docusaurus](https://github.com/wechaty/docusaurus)).\n\n## Usage\n\n```sh\ndocker-compose up\n```\n\nYou are all set.\n\n## Architecture\n\nWe are using Nginx as the front end proxy for serving the website traffic, from the below two locations:\n\n1. Docusaurus Documentation \u003chttps://wechaty.github.io/docusaurus/\u003e\n1. Jekyll Posts \u003chttps://wechaty.github.io/jekyll/\u003e\n\n```mermaid\nsequenceDiagram\n    participant Visitor\n    participant wechaty.js.org\n    participant Nginx Transparent Proxy\n    participant wechaty.github.io/docusaurus\n    participant wechaty.github.io/jekyll\n\n    Visitor-\u003e\u003ewechaty.js.org: HTTPS\n    wechaty.js.org-\u003e\u003eNginx Transparent Proxy: HTTP\n    Note right of Nginx Transparent Proxy: Request files from GitHub Pages\n    Nginx Transparent Proxy-\u003e\u003ewechaty.github.io/docusaurus: HTTPS /docs\n    wechaty.github.io/docusaurus--\u003e\u003eNginx Transparent Proxy: HTTPS /docs\n    Nginx Transparent Proxy-\u003e\u003ewechaty.github.io/jekyll: HTTPS /{news,blog,contributors}\n    wechaty.github.io/jekyll--\u003e\u003eNginx Transparent Proxy: HTTPS /{news,blog,contributors}\n    Nginx Transparent Proxy--\u003e\u003ewechaty.js.org: HTTP\n    wechaty.js.org--\u003e\u003eVisitor: HTTPS\n```\n\nThis repo is maintaining the [docker-compose.yml](docker-compose.yml) for the **Nginx Transparent Proxy** layer (in the center of the above diagram) of the website.\n\n## Nginx Transparent Proxy Configuration\n\n1. for `/docs` locations, proxy pass to \u003chttps://wechaty.github.io/\u003e with a prefix `docusaurus` added to the path.\n1. for `/{news,blogs,contributors,\\d\\d\\d\\d}` locations, proxy pass to \u003chttps://wechaty.github.io/\u003e with a prefix `jekyll` added to the path.\n\nLearn more from [nginx.conf](nginx.conf) and [docker-compose.yml](docker-compose.yml) files.\n\nThat's all.\n\n## Nginx Ingress Proxy Configuration\n\nWe are using [Automated nginx proxy for Docker containers using docker-gen](https://github.com/nginx-proxy/nginx-proxy) to set up a container running nginx and docker-gen. docker-gen generates reverse proxy configs for nginx and reloads nginx when containers are started and stopped.\n\nSee [Automated Nginx Reverse Proxy for Docker, Jason Wilder, Mar 25, 2014](http://jasonwilder.com/blog/2014/03/25/automated-nginx-reverse-proxy-for-docker/) for why we are using this.\n\nHere's an example `docker-compose.yml` configuration for the **Nginx Ingress Proxy** layer:\n\n```yaml\nversion: '3.8'\nservices:\n\n  nginx-proxy:\n    image: nginxproxy/nginx-proxy\n    container_name: nginx-proxy\n    network_mode: bridge\n    ports:\n      - 80:80\n      - 443:443\n    volumes:\n      - conf:/etc/nginx/conf.d\n      - vhost:/etc/nginx/vhost.d\n      - html:/usr/share/nginx/html\n      - dhparam:/etc/nginx/dhparam\n      - certs:/etc/nginx/certs:ro\n      - /var/run/docker.sock:/tmp/docker.sock:ro\n    healthcheck:\n      test: [\"CMD\", \"true\"]\n      interval: 1m30s\n      timeout: 10s\n      retries: 3\n      start_period: 40s\n\n  letsencrypt:\n    image: jrcs/letsencrypt-nginx-proxy-companion\n    container_name: nginx-proxy-le\n    network_mode: bridge\n    environment:\n      - NGINX_PROXY_CONTAINER=nginx-proxy\n      - DEFAULT_EMAIL=wechaty@chatie.io\n    volumes:\n      - conf:/etc/nginx/conf.d\n      - vhost:/etc/nginx/vhost.d\n      - html:/usr/share/nginx/html\n      - dhparam:/etc/nginx/dhparam\n      - certs:/etc/nginx/certs:rw\n      - /var/run/docker.sock:/var/run/docker.sock:ro\n\nvolumes:\n  conf:\n  vhost:\n  html:\n  dhparam:\n  certs:\n```\n\n## TLS Certificate Authorization (CA) Configuration\n\nWe are using [Automated ACME SSL certificate generation for nginx-proxy](https://github.com/nginx-proxy/acme-companion) lightweight companion container for nginx-proxy.\n\nIt handles the automated creation, renewal and use of SSL certificates for proxied Docker containers through the ACME protocol.\n\n## Resource\n\n- [Host Multiple Websites On One VPS With Docker And Nginx (with TLS), Joel Hans, Apr 17, 2019](https://blog.ssdnodes.com/blog/host-multiple-websites-docker-nginx/)\n\n## History\n\n### main (Mar 31, 2022)\n\nSplit the repo into two: Jekyll \u0026 Docusaurus ([Issue #1](https://github.com/wechaty/wechaty.js.org/issues/1))\n\n## Author\n\n[Huan LI](http://linkedin.com/in/zixia) is a serial entrepreneur, active angel investor with strong technology background.\nHuan is a widely recognized technical leader on conversational AI and open source cloud architectures.\nHe co-authored guide books \"Chatbot 0 to 1\" and \"Concise Handbook of TensorFlow 2\"\nand has been recognized both by Microsoft and Google as MVP/GDE.\nHuan is a Chatbot Architect and speaks regularly at technical conferences around the world.\nFind out more about his work at \u003chttps://github.com/huan\u003e\n\n## Copyright \u0026 License\n\n- Docs released under Creative Commons\n- Code released under the Apache-2.0 License\n- Code \u0026 Docs © 2021 Huan LI \\\u003czixia@zixia.net\\\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechaty%2Fjs.org","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwechaty%2Fjs.org","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwechaty%2Fjs.org/lists"}