Featured image of post 一个人和一台服务器

一个人和一台服务器

最近看到了一个叫 Memos 的开源自托管笔记工具,非常惊喜,奈何这东西需要服务器部署。那没办法了,一咬牙一闭眼,斥巨资购买了一台阿里云香港的 VPS。

但毕竟服务器资源闲置也是闲置,我自然是顺手又给它叠了几个同样有趣的项目。

“万恶之源” Memos

不多说了,服务器就是为它买的。

这是 Memos 的界面:

Memos

而这个,是 Flomo 的界面:

Flomo

可以看出,它俩还是非常相似的。我认为 Memos 可以作为 Flomo 的开源替代去用,就像 AppFlowy 或 Affine 对于 Notion 的替代一样(就这俩目前的功能而言,替代 Notion 都不太现实,而碰巧我很不喜欢 Notion 哈哈)。

搭建非常轻松,没有什么踩坑的点,我是直接按照官方的 docker-compose 文件搭的,这款应用的网页端可用度非常高,所以我目前桌面端就是将其作为应用安装在桌面使用的(感谢 Gnome 家美妙的浏览器 Epiphany),至于移动端,我推荐的选择是第三方的MoeMemos,拥有对于 Android 和 IOS 的完整支持,唯一稍显不足的是似乎不支持折叠 Memo,对图片的上传也有些问题。但是这并不重要~

MoeMemos

不想学 Nginx 的懒人福音 Nginx Proxy Manager

我记得这东西有段时间在网上很火的啊,搜反向代理排名前几的都是推荐 NPM 的,不知道为啥现在好像看不太见了。

部署也非常简单,但是资源消耗有点大······

没办法,用它部署反向代理实在是太方便了,点几下就把从反代到 Let’s Encrypt 申请证书都解决了,没法不用啊。

NPM

来都来了 x1 FreshRSS

我个人其实并不算是一个在线 RSS 阅读器的重度用户,我更喜欢在一个叫做 ReadYou 的移动端阅读器中读,而该阅读器是本地存储 Feeds 列表的。然而,每当我更换桌面端的 RSS 阅读器,或是有一些同步订阅源的需求,我就需要一遍一遍导入和导出 OPML,这实在太麻烦,于是所幸就自己搭建了一个 FreshRSS 实例。

FreshRSS 总体来说还是比较轻量化的,不过我选择的配套数据库是 PortgreSQL,并不算一个太轻量的数据库。

搭建方面我参考了ChrAlpha 的文章,写得非常详细了,安装完之后记得要在用户设置->管理->认证 中勾选允许 API 访问,然后返回账户->用户账户 填写一个 API 密码,才能让你的 RSS 阅读器通过该密码登入你的服务。

使用方面挺中规中矩,没有值得大书特书的亮点,但是并不难用。界面虽不惊艳,却也算简约现代。

不错的应用。

FreshRSS

来都来了 x2 Wallabag

我以前还在用 Firefox 的时候,也算是一个 Pocket 的中度用户了,看到什么好的文章就会存到 Pocket 里。但既然有了开源的解决方案,肯定是要支持的。

不过 wallabag 的搭建就比较难受了,我选择的依旧是 docker-compose,但是其配置文件经过了我几次修改,现给出一个应该能用的版本:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
version: '3'
services:
  wallabag:
    image: wallabag/wallabag
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
      - SYMFONY__ENV__DATABASE_DRIVER=pdo_mysql
      - SYMFONY__ENV__DATABASE_HOST=db
      - SYMFONY__ENV__DATABASE_PORT=3306
      - SYMFONY__ENV__DATABASE_NAME=wallabag
      - SYMFONY__ENV__DATABASE_USER=wallabag
      - SYMFONY__ENV__DATABASE_PASSWORD=wallapass
      - SYMFONY__ENV__DATABASE_CHARSET=utf8mb4
      - SYMFONY__ENV__MAILER_HOST=127.0.0.1
      - SYMFONY__ENV__MAILER_USER=~
      - SYMFONY__ENV__MAILER_PASSWORD=~
      - SYMFONY__ENV__FROM_EMAIL=你的邮箱地址   # 修改成你自己的邮箱
      - SYMFONY__ENV__DOMAIN_NAME=https://doma.in/  # 修改成稍后要反向代理的域名
      - SYMFONY__ENV__SERVER_NAME="My Wallabag"
    ports:
      - 7007:80   # 7007 可以修改成其他的自己想用的端口
    volumes:
      - ./images:/var/www/wallabag/web/assets/images  # 将图片映射挂载到本地
    healthcheck:
      test: ["CMD", "wget" ,"--no-verbose", "--tries=1", "--spider", "http://localhost"]
      interval: 1m
      timeout: 3s
    depends_on:
      - db
      - redis
  db:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=wallaroot
    volumes:
      - ./data:/var/lib/mysql  # 将数据映射挂载到本地
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      interval: 20s
      timeout: 3s
  redis:
    image: redis:alpine
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 20s

演示图就不放了,我应该不太会去用它的网页版,桌面端可以使用Read It Later,至于移动端,可选项就不少了,我选择的是FeedMe

来都来了 x3 GoToSocial

不知道各位小伙伴听过 Mastodon 没有,最近它又因为马斯克老师而火了一把。

我最早应该是 21 年上半年开始用 Mastodon,当时在几个中文实例间辗转。后来在小森林定居。但近期因为一些原因,小森林的访问变得有些困难,于是所幸自己搭了一个实例。

但是,在面对 Mastodon 这种笨重的庞然大物时,我那 2C1G 的服务器开始止不住地颤抖起来,难道就没有更轻量级,但又能和 Mastodon 几乎完美兼容的应用吗?

GoToSocial就这样来到了我面前。

这是一个使用 Go 编写的,兼容 Mastodon API 的服务端应用,可以与各种支持 Fediverse 的应用互通。这意味着,你可以使用大部分现成的 Mastodon 客户端登录并使用 GoToSocial,且大部分功能正常使用。而 GoToSocial 对服务器的内存花销是——50~100Mb。

绝了!

GoToSocial 的部署出奇简单。通过 docker-compose,仅需要几行命令便可部署一个可用的实例。但有一个点我目前没太弄明白,就是用户的删除,我至今还无法删除我创建的测试账号,只能当小号用。

另外需要注意的一点是,使用 GoToSocial 关注的用户,只向你展示你关注他之后他发布的内容,且他的关注与粉丝也都只会显示你。这样做可能也是为了安全性考虑吧。

那么,多关注些人,耐心等个几天,你的时间线会再次热闹起来的。

对了,我的 Mastodon 账号是 @[email protected],欢迎来找我玩!

收工

以上便是我目前在服务器上搭建的所有服务,迫于服务器资源限制,有些我很眼馋的项目却没有机会搭,不得不说是件憾事。

要不…V 我 50 让我再买台服务器?