MENU

reMarkable 折腾篇:用rmfakecloud替换云服务

May 2, 2021 • Read: 2319 • 技术

本篇内容为带领各位浅谈如何使用 rmfakecloud 替换 reMarkable 自带的云服务以在大陆获得较为不错的云服务体验、利用 rmapi 进行云文件的管理,以及带大家避开在此过程中遇到的坑。

恰个饭

站主已与淘宝店铺合作,欢迎选购!同时这里也有自建云服务成品可供购买。

首先,这个项目为 ddvk 所作,再次感谢。


假定系统环境为 Ubuntu 20.04 ,使用 Bash 为默认 Shell 。

rmfakecloud

Part.A 服务器配置

安装、配置与编译

  1. 将 rmfakecloud 克隆下来并进入文件夹。

    git clone https://github.com/ddvk/rmfakecloud && cd rmfakecloud
  2. 安装编译环境(需要 go 以及 yarn 等)

    # 用 Snap 安装 go 编译环境
    apt install snapd -y
    sudo snap install go --classic
    # 安装 Yarn
    curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
    echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
    sudo apt update && sudo apt install yarn -y
    # 安装常见编译软件必须包
    sudo apt install build-essential -y
  3. 编译软件

    make
  4. 等待编译完成,回调信息应当为

    Done in 2.34s.
    GOOS=linux go build -ldflags "-s -w -X main.version=v0.0.3-137-gc366427" -o dist/rmfakecloud-x64 ./cmd/rmfakecloud
  5. 将编译后程序复制到安装目录并赋予运行权限。

    sudo cp dist/rmfakecloud-x64 /usr/bin/rmfakecloud && sudo chmod +x /usr/bin/rmfakecloud

环境变量配置

  1. 配置基础环境变量
    JWT_SECRET_KEY理解为服务器密钥,别设置太简单PORT端口(默认为 3000)
    DATADIR用以存储 rmfakecloud 数据的文件目录。默认为当前运行目录。建议手动配置路径
    STORAGE_URL理解为最终链接,假设你没有设置反代则链接为 ‘http://IP:端口’,假设你用 Nginx 设置了反代则链接为‘https://你的网站’
    LOGLEVEL 日志级别,默认为 info ,可选 / warn / error / debug )

    # 自行替换以下的变量
    echo '' >> ~/.bashrc
    echo '# rmfakecloud Basic Env Configuration' >> ~/.bashrc
    echo 'export JWT_SECRET_KEY=[密钥]' >> ~/.bashrc
    echo 'export PORT=[端口]' >> ~/.bashrc
    echo 'export DATADIR=[目录]' >> ~/.bashrc
    echo 'export STORAGE_URL=[链接]' >> ~/.bashrc
    echo 'export LOGLEVEL=[等级]' >> ~/.bashrc
    source ~/.bashrc
  2. 配置进阶环境变量

    1. 配置手写识别环境变量

      • 前往 myScript Developer 注册账号。
      • 注册完毕后,邮箱内将会收到一封含有 Cloud API 信息的邮件。
      • Cloud API
      • 配置环境变量
      echo '' >> ~/.bashrc
      echo '# rmfakecloud Handwriting Recognition Env Configuration' >> ~/.bashrc
      echo 'export RMAPI_HWR_APPLICATIONKEY=[填入信息]' >> ~/.bashrc
      echo 'export RMAPI_HWR_HMAC=[填入信息]' >> ~/.bashrc
      source ~/.bashrc
    2. 配置 SMTP 邮件发件服务器环境变量

      • 因 SMTP 服务器配置过程极为繁琐,此章节跳过部署教程。
      • 配置环境变量
      echo '' >> ~/.bashrc
      echo '# rmfakecloud SMTP Env Configuration' >> ~/.bashrc
      echo 'export RM_SMTP_SERVER=[SMTP发件服务器]:[端口]' >> ~/.bashrc
      echo 'export RM_SMTP_USERNAME=[SMTP用户名]' >> ~/.bashrc
      echo 'export RM_SMTP_PASSWORD=[SMTP密码]' >> ~/.bashrc
      # 以下为可选内容:自定义FROM header。
      echo 'export RM_SMTP_FROM='"ReMarkable self-hosted" <user@domain.com>'' >> ~/.bashrc
      source ~/.bashrc

运行

使用指令 rmfakecloud 来运行。

若服务器运行正常,则输出应该如下:

root in Nzbcorz in ~
❯ rmfakecloud 
run with -h for all available env variables
Log level: info
INFO[0000] Version:  v0.0.3-137-gc366427                
INFO[0000] Documents will be saved in: [你的运行目录]
INFO[0000] Url the device should use: [你设置的URL]
INFO[0000] Listening on port: [端口]

此时打开你所设定的 URL(IP:端口/URL)即可使用。

第一次登录实则为注册账号,请输入您的账号凭据(自行设定),此后将被用作管理员账号。

Nginx 反向代理并启用 https / ws 。

Nginx 的话,爱用啥用啥,用 lnmp 也行,用宝塔也行。此处以宝塔为例。不赘述如何安装宝塔以及添加网站了,这教程网上一抓一大把。

在网站的 配置 部分中,添加如下字样

  1. 设置最大上传文件大小
server_name your.website;
root /path/to/your.website;
# 在这里添加
client_max_body_size 512M;
  1. 配置反向代理(不要用宝塔自带的反代)
location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;

      proxy_pass http://127.0.0.1:[端口];

      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
    }
  1. 设置 ws 后端
# 在配置文件末尾新开一行添加
upstream ws-backend {
    # enable sticky session based on IP
    ip_hash;

    server 127.0.0.1:[端口];
}
  1. 去 SSL 那部分随便配置一个证书,你要 Let's Encrypt 也行,自己上传证书也行。不要启用 强制 HTTPS

Part.B 客户端配置

以下方法二选一即可,不要重复配置,会出问题。我建议使用魔法。

使用魔法

  1. SSH 连接上你的设备并保证你的设备有网络连接。
  2. 在终端中输入

    sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)"
  3. 根据指引输入你的 rmfakecloud 网站链接即可完成配置。
  4. 关于脚本的使用
# 安装 rmfakecloud proxy
./installer.sh install
# 卸载 rmfakecloud proxy
./installer.sh uninstall
# 更改 rmfakecloud proxy 的服务器地址
./installer.sh setproxy [链接]

手动配置

哈哈 我懒得打字了。自己看原文
有好用的魔法还要手动折腾怕不是闲的蛋疼。

检验连接

  1. 在设备的终端中输入 wget -qO- https://local.appspot.com 应该会得到一长串东西。如果没有或者是其他错误说明你没配置好。
  2. 在设备的终端中输入
echo Q | openssl s_client -connect localhost:443  -verify_hostname local.appspot.com -CAfile /etc/ssl/certs/ca-certificates.crt 2>&1 | grep Verify

应该会得到Verify return code: 0 (ok)。如果不是这个回调说明配置错误。

  1. 在设备的终端中输入 systemctl status proxy 应该会得到
[日期] reMarkable systemd[1]: Started reverse proxy.
[日期] reMarkable rmfake-proxy[3875]: [日期] cert-file=/home/root/rmfakecloud/
proxy.crt key-file=/home/root/rmfakecloud/proxy.key listen-addr=:443 upstream-url=[服务器URL]

就没有了。如果有"warn""error"等字样很有可能是配置错误。

rmapi

咕咕咕

rmapi 鸽一会儿。码字太累了。

Archives Tip
QR Code for this page
Tipping QR Code
Leave a Comment

15 Comments
  1. muujuk

  2. jimlai jimlai

    配置 SMTP 邮件发件服务器环境变量,可以出一个教程吗?谢谢,弄了好几天也没弄清楚

    1. @jimlai说真的 这个比较复杂 建议自己参考各种教程,或者直接购买成品,因为这种部署 SMTP 发件服务器的教程很多,想要整有很多可以参考的。

    2. jimlai jimlai

      @南栀北辰Orz.echo '# rmfakecloud SMTP Env Configuration' >> ~/.bashrc
      echo 'export RM_SMTP_SERVER=[SMTP发件服务器]:[端口]' >> ~/.bashrc
      echo 'export RM_SMTP_USERNAME=[SMTP用户名]' >> ~/.bashrc

      echo 'export RM_SMTP_PASSWORD=[SMTP密码]' >> ~/.bashrc

      我配置到docker环境中根本无法发送成功

    3. @jimlai你的表述不是很清楚。你是在docker环境下直接运行这段代码的吗?

    4. jimlai jimlai

      @南栀北辰Orz.docker中运行rmfakecloud,export RM_SMTP_SERVER=[SMTP 发件服务器]:[端口]' >。。。。。直接在docker环境中配置的这些参数,但是发送邮件不成功

    5. @jimlai试试在运行docker的时候用 -e 添加环境变量?还有需要注意服务器是否支持587/465端口。

    6. jimlai jimlai

      @南栀北辰Orz.501 mail from address must be same as authorization user

    7. @jimlai看来(我猜)是 rmfakecloud 的问题。去他的Github下面开一个新的issue吧,我也无能为力,抱歉😂

  3. Fish Fish

    make 后显示

    Done in 31.28s.
    go generate ./...
    make: go: Command not found
    make: * [Makefile:43: internal/webassets/assets_vfsdata.go] Error 127

    怎么解决呢?

    1. @Fish抱歉恢复晚了。
      看起来你没有安装 go 环境。
      运行 wget -q -O - https://git.io/vQhTU | bash 试试

    2. Fish Fish

      @南栀北辰Orz.非常感谢,已解决。但出现了新的问题,在更新系统后显示同步出现了问题,这个要怎么解决呢?

    3. @Fish重新在设备端配置云服务。

    4. Fish Fish

      @南栀北辰Orz.请教一下从0.0.4升级到0.0.5该怎么操作呢?需要从头安装一次吗?

    5. @Fish删除 git clone 下来的文件夹,重新 clone 并且 make 一份。