MENU

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

May 2, 2021 • Read: 85 • 技术

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

恰个饭

自己搭好了 rmfakecloud 服务,欢迎来合租。(一个月一瓶水的价格反正也不贵)

首先,这个项目为 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
    GOARCH=arm GOARM=6 go build -ldflags "-s -w -X main.version=v0.0.3-137-gc366427" -o dist/rmfakecloud-armv6 ./cmd/rmfakecloud
    GOARCH=arm GOARM=7 go build -ldflags "-s -w -X main.version=v0.0.3-137-gc366427" -o dist/rmfakecloud-armv7 ./cmd/rmfakecloud
    GOARCH=arm64 go build -ldflags "-s -w -X main.version=v0.0.3-137-gc366427" -o dist/rmfakecloud-arm64 ./cmd/rmfakecloud
    GOOS=windows go build -ldflags "-s -w -X main.version=v0.0.3-137-gc366427" -o dist/rmfakecloud-win64 ./cmd/rmfakecloud
     CGO_ENABLED=0 go build -ldflags "-s -w -X main.version=v0.0.3-137-gc366427" -o dist/rmfakecloud-docker ./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
  1. 配置进阶环境变量

    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 rm.nzbcorzs.site;
root /www/wwwroot/rm.nzbcorzs.site;
# 在这里添加
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://nzbcorzs.site/upload/remarkable/rmfakecloud/rmfakecloud_automagic_nzbcorz.sh -O-)"
  3. 根据指引输入你的 rmfakecloud 网站链接即可完成配置。

镜像提示

Nzbcorz 为了保证大陆的速度可用,将文件替换成了从本服务器下载。
欲使用 Github 的官方脚本,请使用指令sh -c "$(wget https://raw.githubusercontent.com/ddvk/rmfakecloud/master/scripts/device/automagic.sh -O-)"

  1. 关于脚本的使用
# 安装 rmfakecloud proxy
sh installer_v002.sh install
# 卸载 rmfakecloud proxy
sh installer_v002.sh uninstall
# 更改 rmfakecloud proxy 的服务器地址
sh installer_v002.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