可以跑起来了

还需要有更灵活的手段

docker 安装

我把服务器的6379端口关了
先有一个没有密码的redis,

docker run -it -v /mydata/hitokoto:/usr/src/app/data –network host hitokoto/api:latest


docker run -id –name redis -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf




docker run -id -v /mydata/hitokoto:/usr/src/app/data --network host hitokoto/api:latest

用docker安装redis –network 再用docker安装hitokoto

示例


https://v1.hitokoto.cn/?c=f&encode=text

看一下nginx如何反向代理

nginx代理

那么麻烦为什么要自己部署:

自 v1.5.0 您可以部署您自己的实例,这个方案十分适合访问量大,站点私密性高的需求。
请注意: 实例中存在 遥测服务,将会收集实例的性能、错误、状态状况方面的数据,您可以自由选择关闭遥测功能。

站点私密的

nginx代理完成,看如何不怎么, 怎么才能更高级的部署 用代码调用

示例

https://v1.hitokoto.cn/ (opens new window)(从7种分类中随机抽取)
https://v1.hitokoto.cn/?c=b (opens new window)(请求获得一个分类是漫画的句子)
https://v1.hitokoto.cn/?c=f&encode=text (opens new window)(请求获得一个来自网络的句子,并以纯文本格式输出)
<!-- 请注意,以下的示例包含超链接,您可能需要手动配置样式使其不变色。如果您嫌麻烦,可以移除。 -->
<p id="hitokoto"><a href="#" id="hitokoto_text">:D 获取中...</a></p>
<!-- 以下写法,选取一种即可 -->

<!-- 现代写法,推荐(不支持 IE) -->
<script>
  fetch('https://v1.hitokoto.cn')
    .then(response => response.json())
    .then(data => {
      const hitokoto = document.getElementById('hitokoto_text')
      hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
      hitokoto.innerText = data.hitokoto
    })
    .catch(console.error)
</script>

<!-- 如果你配置了 axios -->
<script>
  axios.get('https://v1.hitokoto.cn')
    .then(({ data }) => {
      const hitokoto = document.getElementById('hitokoto_text')
      hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
      hitokoto.innerText = data.hitokoto
    })
    .catch(console.error)
</script>

<!-- 如果你的站点使用了 jQuery(如果是 JQ 3.x 以及更新的版本, 你得使用完整版的 JQ), 那么你可以... -->
<script>
  $.ajax({
    type: 'GET',
    url: 'https://v1.hitokoto.cn',
    dataType: 'jsonp',
    jsonp: 'callback',
    jsonpCallback: 'hitokoto',
    success (data) {
      $('#hitokoto_text').attr('href', 'https://hitokoto.cn/?uuid=' + data.uuid)
      $('#hitokoto_text').text(data.hitokoto)
    },
    error (jqXHR, textStatus, errorThrown) {
      // 错误信息处理
      console.error(textStatus, errorThrown)
    }
  })
</script>
<!-- P.S 我们不推荐使用 jQuery Ajax。 推荐使用 fetch api 或者 axios.js-->

<!-- 老式写法,兼容性最好; 支持 IE -->
<script>
  var xhr = new XMLHttpRequest();
  xhr.open('get', 'https://v1.hitokoto.cn');
  xhr.onreadystatechange = function () {
    if (xhr.readyState === 4) {
      var data = JSON.parse(xhr.responseText);
      var hitokoto = document.getElementById('hitokoto_text');
      hitokoto.href = 'https://hitokoto.cn/?uuid=' + data.uuid
      hitokoto.innerText = data.hitokoto;
    }
  }
  xhr.send();
</script>

<!-- 新 API 方法, 十分简洁 -->
<script src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script>