GithubHelp home page GithubHelp logo

apache / apisix-website Goto Github PK

View Code? Open in Web Editor NEW
126.0 26.0 172.0 84.29 MB

Apache APISIX Website

Home Page: https://apisix.apache.org/

License: Apache License 2.0

CSS 2.90% JavaScript 23.39% Dockerfile 1.09% SCSS 20.73% TypeScript 50.06% GLSL 1.27% Shell 0.55%
apisix website kubernetes docker serverless microservice api-management luajit cloud-native nginx service-mesh

apisix-website's Introduction


Apache APISIX® Website

The website of Apache APISIX®

A cloud-native microservices API Gateway


Getting Started

If you want to write a blog or fix some blog-related issues, please read Apache APISIX Blog Contributing Guide first.

Pre-requisites

First, you need to install Git.

Then you should fork this repo, and clone your fork:

# clone your fork repo
git clone [email protected]:${your GitHub name}/apisix-website.git

# add this repo as upstream
git remote add upstream https://github.com/apache/apisix-website.git

# default dir should be apisix-website
cd apisix-website

Getting started in a Dev Container

If you are using VS Code, Docker, and Remote - Containers plugin, you can use this to get started quickly.

No, but want to try this way? Please read Developing inside a Container#Installation.

Then, start VS Code, run the Remote-Containers: Open Folder in Container... command.

Tip: For details on how to do this, see the documentation Developing inside a Container#Quick Start.

After the initialization, you can skip the preparation part of the commands below and read the rest directly.

Getting started in the conventional way

First, you need to install Node.js, Yarn.

Tip: Since the installation method may change, we recommend that you check the installation method on the corresponding official website. If you encounter any problems, please feel free to create an issue.

Then you can read the commands below.

Commands

When you find that some commands do not run, or cannot be found, look at the package.json file.

This may be because the project is being updated quickly, but the corresponding developer did not find the time to update the corresponding documentation.

Preparation

Except for the following commands that you need to run after downloading the project for the first time, you can try running them again when you encounter any problems.

# 1. Install deps
yarn

# 2. Prepare necessary data
yarn prepare-data

# Tip.
# The `yarn prepare-data` command contains the following three commands
# If necessary, you can run any of the following commands individually
yarn sync-doc # Sync all project documents
yarn generate-repos-info # Generate repository information for each project
yarn generate-picked-posts # Generate frontmatter information for featured blogs

If you get a 403 error Rate Limit Exceeded from GitHub, that means you have hit the GitHub API rate limit. the project needs your personal access token to unlimit it.

If you don't already have one, create one, and run below command in your terminal (no scope to your personal data is needed)

export GITHUB_TOKEN=${your token}

Previewing documents, Developing

When you modify a document, blog, or page code, the preview in development mode is the fastest.

# Start docs part
yarn start:doc

# Tip.
# in dev, only English docs will be built
# it's a feature of docusaurus
# if you want to specify the locale,
# for example, Chinese, your should run
yarn start:doc --locale zh

# Start English Blog
yarn start:blog:en

# Start Chinese Blog
yarn start:blog:zh

# Start general docs, other pages part
yarn start:website

Building

When you want to build or preview a site that looks the same as it does online, run the following commands.

# Since the local environment is slightly different from the online one,
# you must add the environment variable `preview`
preview=true yarn build
# or
yarn build:preview

# The above commands only build the site,
# to preview it locally you need the following commands
yarn serve

# You can also build and preview each part individually,
# just like in development mode
preview=true yarn build:doc && yarn serve:doc
preview=true yarn build:blog:en && yarn serve:blog:en
preview=true yarn build:blog:zh && yarn serve:blog:zh
preview=true yarn build:website && yarn serve:website

Next, you can modify the documentation or code, commit it and push it to GitHub when you're done. If you're not familiar with this, you can read GitHub flow first.

Advance Guide

If you only want to modify the *.md files, the above guide may be sufficient.

But if you need to develop, please read the guide below.

Project Structure

Omitted some documents that may not be important.

apisix-website
├── .github
│   └── workflows # for GitHub CI, with steps to actually build the site
├── .husky # git hooks, currently only pre-commit is used
├── scripts # scripts to help build the site
├── blog
│   ├── en
│   └── zh
├── config
├── doc
└── website
    ├── articles
    ├── docs
    │   └── general # https://apisix.apache.org/docs/general/join
    ├── i18n
    │   └── zh # chinese content
    │       ├── docusaurus-plugin-content-blog # blog
    │       ├── docusaurus-plugin-content-docs # general
    │       └── docusaurus-theme-classic # translations of navbar and footer
    ├── src
    │   ├── clientModules # docusaurus feature
    │   ├── hooks # react hooks
    │   ├── pages
    │   ├── shaders
    │   └── theme # swizzled any Docs/Blog component
    ├── static
    └── docusaurus.config.js

Acknowledge

Special thanks to Docusaurus.

License

Apache License 2.0

apisix-website's People

Contributors

1502shivam-singh avatar baoyuantop avatar bhavyat-135 avatar boburmirzo avatar bzp2010 avatar dependabot[bot] avatar guitu168 avatar guoqqqi avatar gxthrj avatar iamayushdas avatar jbampton avatar juzhiyuan avatar jyan00 avatar kayx23 avatar kid-g avatar kishanikandasamy avatar lijing-21 avatar litesun avatar moonming avatar nfrankel avatar nic-chen avatar pottekkat avatar qier222 avatar qizeng-api7 avatar serendipity96 avatar skyeyoung avatar spacewander avatar sylviababy avatar yilialinn avatar yzeng25 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

apisix-website's Issues

Update Release Guide

Hi @juzhiyuan

Please help to add the following information to the content/contribute/release/index.zh.md and content/contribute/release/index.en.md file.

Thanks.

统计投票结果

点击此处查看参考邮件 发起投票邮件后需要等待72小时,然后统计投票结果并发送一封 result 邮件到 [email protected]

再次发起投票邮件

点击此处查看参考邮件[email protected] 发起投票邮件,同时需要将在 [email protected] 邮件列表中的统计结果附加到此封邮件,主要参考内容:邮件发送人(apache 邮箱)、邮件标题、邮件正文(主要是修改版本号和链接地址)。

再次统计投票结果

点击此处查看参考邮件 发起投票邮件后需要等待72小时,然后统计投票结果并发送一封 result 邮件到 [email protected]

发 announce 邮件

点击此处查看参考邮件[email protected][email protected] 两个邮件列表发起 announce 邮件

移动安装包到 release 目录下

将RC版本的安装包修改为正式版以后移动到 此地址

更新下载信息

更新 此地址 的下载信息, 源码在 https://github.com/apache/incubator-apisix-website

doc: how to release a new version for PPMC

主要步骤:

  1. 生成 gpg key
  2. 将公钥同步到服务器
  3. 登录 id.apache.org 填写 key fingerprint
  4. Apache svn 中添加自己的 gpg 公钥
  5. 制作安装包并上传到 Apache svn
  6. 发投票邮件

生成 gpg key

必须使用 apache 官方邮箱账号生成的 gpg key。

安装GPG

GnuPG 官网下载安装包。 GnuPG 的 1.x 版本和 2.x 版本的命令有细微差别,下列说明以 GnuPG-2.1.23 版本为例。

安装完成后,执行以下命令查看版本号。

gpg --version

创建 key

安装完成后,执行以下命令创建 key

GnuPG-2.x 可使用:

gpg --full-gen-key

GnuPG-1.x 可使用:

gpg --gen-key

根据提示完成 key

注意:请使用 Apache mail 生成 GPG 的 Key。

gpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Please select what kind of key you want:
  (1) RSA and RSA (default)
  (2) DSA and Elgamal
  (3) DSA (sign only)
  (4) RSA (sign only)
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
        0 = key does not expire
     <n>  = key expires in n days
     <n>w = key expires in n weeks
     <n>m = key expires in n months
     <n>y = key expires in n years
Key is valid for? (0) 
Key does not expire at all
Is this correct? (y/N) y

GnuPG needs to construct a user ID to identify your key.

Real name: ${输入用户名}
Email address: ${输入邮件地址}
Comment: ${输入注释}
You selected this USER-ID:
   "${输入的用户名} (${输入的注释}) <${输入的邮件地址}>"

Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
You need a Passphrase to protect your secret key. # 输入密码

查看生成的key

# gpg --list-keys
pub   4096R/30B5FD72 2020-01-02  
uid                  ${用户名} (${注释}) <{邮件地址}>
sub   4096R/3D2F913D 2020-01-02

比如笔者本地获取的信息:

$ gpg --list-keys
/home/resty/.gnupg/pubring.gpg
------------------------------
pub   4096R/30B5FD72 2020-01-02      
uid                  Yuansheng Wang <[email protected]>
sub   4096R/3D2F913D 2020-01-02
其中 30B5FD72 为公钥 ID。

将公钥同步到服务器

# 最后参数是上面生成的公钥 ID。
$ gpg --keyserver hkp://pool.sks-keyservers.net --send-key 30B5FD72
gpg: sending key 30B5FD72 to hkp server pool.sks-keyservers.net

pool.sks-keyservers.net 为随意挑选的公钥服务器,每个服务器之间是自动同步的,选任意一个即可。

id.apache.org 中录入 key fingerprint

获取 key fingerprint

# 注意下方 Key fingerprint 部分
$ gpg --list-keys --fingerprint
/home/resty/.gnupg/pubring.gpg
------------------------------
pub   4096R/30B5FD72 2020-01-02
      Key fingerprint = 0F91 BE0A 55A7 B22F DE1A  CEEC 3352 48FD 30B5 FD72
uid                  Yuansheng Wang <[email protected]>
sub   4096R/3D2F913D 2020-01-02

登录 id.apache.org 填写 key fingerprint

点击左下角的 Submit changes... 按钮提交保存。

Apache svn 中添加自己的 gpg 公钥

下载 svn 目录

$ svn --username=${Apache 用户名} co https://dist.apache.org/repos/dist/dev/incubator/apisix

进入 apisix 目录并查看其中文件:

$ cd apisix 
$ ls
KEYS

导出公钥到追加到 KEYS 文件:

$ gpg -a --export ${GPG用户名}  >> KEYS

提交修改后的 KEYS 文件,把公钥信息保存到 svn 服务器:

$ svn --username=${Apache 用户名} commit -m "added ${Apache 邮箱} gpg pub key"
Authentication realm: <https://dist.apache.org:443> ASF Committers
Password for 'membphis': # 输入密码

Store password unencrypted (yes/no)? yes
Sending        KEYS
Transmitting file data .
Committed revision 37434.

制作安装包并上传到 Apache svn

每个安装包都有版本,这里以准备 1.0-rc1 版本为例。
在制作安装包之前,先确保在 github 上已经准备好分支 v1.0

# 进入 Apache svn 的 apisix 目录,应只有一个 KEYS 文件
$ ls
KEYS

# 新建版本号目录并进入,比如:1.0-rc1
$ mkdir 1.0-rc1 && cd 1.0-rc1 

# 下载安装包
git clone -b v1.0 [email protected]:apache/incubator-apisix.git apache-apisix-1.0-incubating

# 检查版本号
$ cd apache-apisix-1.0-incubating && ./utils/check-version.sh 1.0 && cd ..

# 删除 .git 文件夹
$ rm -rf apache-apisix-1.0-incubating/.git

# 制作压缩包
$ tar zcvf apache-apisix-1.0-rc1-incubating-src.tar.gz apache-apisix-1.0-incubating

# 制作签名(这步会弹出对话框,提示你输入生成 gpg 时录入的密码)
$ gpg --armor --detach-sign apache-apisix-1.0-rc1-incubating-src.tar.gz

# 生成 sha512 校验文件
$ shasum -a512 apache-apisix-1.0-rc1-incubating-src.tar.gz > apache-apisix-1.0-rc1-incubating-src.tar.gz.sha512

# 删除 apache-apisix-1.0-rc1-incubating
$ rm -rf apache-apisix-1.0-incubating

# 后退到 Apache svn 的 apisix 根目录,并确认文件目录
$ cd .. && tree
.
├── 1.0-rc1
│   ├── apache-apisix-1.0-rc1-incubating-src.tar.gz
│   ├── apache-apisix-1.0-rc1-incubating-src.tar.gz.asc
│   └── apache-apisix-1.0-rc1-incubating-src.tar.gz.sha512
└── KEYS

1 directory, 4 files

# 添加新文件到 svn
$ svn add *
A         1.0-rc1
A  (bin)  1.0-rc1/apache-apisix-1.0-rc1-incubating-src.tar.gz.asc
A  (bin)  1.0-rc1/apache-apisix-1.0-rc1-incubating-src.tar.gz
A         1.0-rc1/apache-apisix-1.0-rc1-incubating-src.tar.gz.sha512
svn: warning: W150002: '/home/resty/git/apache_svn/apisix/KEYS' is already under version control
svn: E200009: Could not add all targets because some targets are already versioned
svn: E200009: Illegal target for the requested operation

# 提交修改到 Apache svn 服务器
$ svn --username=${Apache 用户名} commit -m "release 1.0-rc1"
Adding         1.0-rc1
Adding  (bin)  1.0-rc1/apache-apisix-1.0-rc1-incubating-src.tar.gz
Adding  (bin)  1.0-rc1/apache-apisix-1.0-rc1-incubating-src.tar.gz.asc
Adding         1.0-rc1/apache-apisix-1.0-rc1-incubating-src.tar.gz.sha512
Transmitting file data ...
Committed revision 37435.

发投票邮件

参考邮件:
https://lists.apache.org/thread.html/4d45dcbeecd0bb70f8010db3d075a5624817a5783beee66f392ae5e0%40%3Cdev.apisix.apache.org%3E

主要参考内容:邮件发送人(apache 邮箱)、邮件标题、邮件正文(主要是修改版本号和链接地址)。

Update downloads page

Download links for Source file should use mirror system, e.g https://mirrors.tuna.tsinghua.edu.cn/apache/apisix/dashboard-1.5/

We need modify the download page’s source codes, changing all src’s links to mirror site.

Those files should be modified:

  1. https://github.com/apache/apisix-website/blob/master/content/downloads/index.zh.md
  2. https://github.com/apache/apisix-website/blob/master/content/downloads/index.en.md

Example:

<a href="https://downloads.apache.org/apisix/apisix/0.9/">源码</a>

To

<a href="https://mirrors.tuna.tsinghua.edu.cn/apache/apisix/apisix/0.9/">源码</a>

Apache APISIX's official webpage is at risk of hijacking

Apache APISIX's official webpage is at risk of hijacking

Phenomena.

  1. search the Apache APISIX website through Baidu or Google, the default is to use the HTTP protocol to access.
    image

Solution.

  1. if it's an http request, reply to the 302 bounce response to jump to the https page
  2. add response header for all http responses: Strict-Transport-Security: max-age=172800 to ensure that subsequent users accessing the apisix website will use the https protocol by default.

add apisix/doc to website for better view

In apache/apisix#1724, sshniro use docsify to build a website for the doc, but I think we didn't actually present that link to users and he hasn't maintained that repo anymore.

I think maybe we could directly add the doc here. I just don't know how to sync apisix/doc here.

add ASF links

refer: https://incubator.apache.org/clutch/apisix.html

Errata

Please investigate the following potential issues

Has not provided an issue tracker link

Has not provided a wiki link

ASF Events link is missing from website

Apache License link is missing from website

Apache Thanks link is missing from website

Apache Sponsorship link is missing from website

Disclaimer is missing from website

Release distribution area is not setup

Add 1.2 release

Hi @juzhiyuan

Please add the following information to the content/downloads/index.en.md and content/downloads/index.zh.md file.

Thanks.

    <div class="flex-table row" role="rowgroup">
        <div class="flex-row first" role="cell"><span class="flag-icon flag-icon-gb"></span>1.2</div>
        <div class="flex-row" role="cell">2020 April 20</div>
        <div class="flex-row" role="cell">
          <a href="https://downloads.apache.org/incubator/apisix/1.2/">source</a>
          (
          <a href="https://downloads.apache.org/incubator/apisix/1.2/apache-apisix-1.2-incubating-src.tar.gz.asc">asc</a>
          <a
            href="https://downloads.apache.org/incubator/apisix/1.2/apache-apisix-1.2-incubating-src.tar.gz.sha512">sha512</a>
          )
        </div>
    </div>

Integrate APISIX autogenerated docs with the website

The docs currently support docsify. Therefore in order to showcase docs, I assume the following steps should be completed.

  1. Create a Tab in website for docs
  2. Update the Github action to trigger on tag realease
  3. Package the HTML content inside the website (make it compatible with Hugo)

Update download page

  • reorder the link items;
  • use auto-detect CDN;
  • update source link to the target file, not its parent directory.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.