蓝易云能干什么

本文主要为记录、复习、参加《蓝易云》教程征集活动撰写,刚好也在研究一个新的文档工具,所以就搞一下。

初始化

每个人都有自己的玩机初始化流程,我的就比较简单(我接触的比较少)。

swap

云服务器或者VPS的内存都比较少,所以虚拟内存是必须开启的。因为我试过k3s不开虚拟内存的情况,真的会连命令都输入不进去,后来只能重启机器。

  1. 确定当前没有开启 Swap

    在终端使用命令 free -m 查看输出结果

    total used free shared buff/cache available Mem: 1997 189 263 20 1544 1604 Swap: 2047 3 2044

    如果看到最后一行是0 0 0,则表示当前没有开启。

  2. 创建 Swap 文件

    使用下面命令创建交换文件。因为要分配硬盘空间,所以有可能比较慢,等待一会

    dd if=/dev/zero of=/swapfile count=2048 bs=1M

    count=2048 表示创建 2G 的虚拟内存,一般我习惯多大的实际内存设置多大的虚拟内存,但是貌似设置超过的也不影响。

    可以使用 ls / | grep swapfile 命令查看一下,确保交换文件存在,创建成功。

    root@tsy5595:~# ls / | grep swapfile swapfile
  3. 激活 Swap 文件
    依次执行下面的命令

    chmod 600 /swapfile mkswap /swapfile

    依次运行上面两个命令后,如果成功,将会看到类似下面的输出

    Setting up swapspace version 1, size = 2097148 KiB no label, UUID=ff3fc469-9c4b-4913-b653-ec53d6460d0e
  4. 开启 Swap

    执行swapon /swapfile,到这里,Swap 已经开启成功。我们再次使用 free -m 命令查看一下,你将看到上面不再是 0 0 0 的输出。

  5. 设置系统启动时自动开启 Swap

    使用编辑器编辑 /etc/fstab 文件,添加 Swap 自动开启的配置,这里使用 Vim进行编辑,也可以使用其他文本编辑工具,例如 nano

    vim /etc/fstab

    在 fstab 文件最后一行添加下面的内容

    /swapfile none swap sw 0 0

然后Ctrl+XY保存,退出。现在 Swap 已经配置完,并且可以在系统启动时自动开启。

docker

我是比较习惯使用封装好的安装脚本,可以直接安装dockerdocker compose,如果是中国大陆使用还可以直接换源

bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/DockerInstallation.sh)

Caddy

Golang编写的服务器,虽然速度不如nginx,但是方便配置。安装也很方便,因为是香港服务器,所以直接使用官方命令梭哈。

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy

使用systemctl status caddy可以看到caddy已经在运行了,或者直接访问IP也可以看到Caddy默认的网页文件。

root@tsy5595:~# systemctl status caddy ● caddy.service - Caddy Loaded: loaded (/lib/systemd/system/caddy.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2023-03-12 18:24:26 CST; 6min ago Docs: https://caddyserver.com/docs/ Main PID: 20526 (caddy) Tasks: 9 (limit: 2376) Memory: 15.3M CGroup: /system.slice/caddy.service

使用journalctl --no-pager -u caddy可以看到日志信息。
配置文件地址:cat /etc/caddy/Caddyfile
可以看到默认的html地址是/usr/share/caddy

添加dnspod插件

# 直接添加 如果卡住说明官网可能不稳定 caddy add-package github.com/caddy-dns/dnspod # 直接源码编译安装 需要golang环境 编译完之后需要替换原先的caddy go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest xcaddy build --with github.com/caddy-dns/dnspod

添加泛域名证书

*.example.com { tls { dns dnspod your-id,your-secret } ## 预留给子域名做配置 #@foo host foo.example.com #handle @foo { # respond "Foo!" #} handle { respond "running." } }

应用

工欲善其事,必先利其器。利用开源的工具不仅能让我们的数据安全得到相对的保证,还能提高不少的效率。

halo博客

作为开源Java博客中的领头羊,halo的易用性和美观度是毋庸置疑的,一样命令跑下去,仅需填写基础的初始化信息,就可以开始自己的文章创作。对于会一些编程的人来说,halo还提供了 API接口,提供了无限可能。

version: "3" services: halo: image: halohub/halo:latest container_name: halo restart: unless-stopped volumes: - ./data:/root/.halo - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "8090:8090" environment: - SERVER_PORT=8090 - SPRING_DATASOURCE_DRIVER_CLASS_NAME=org.h2.Driver - SPRING_DATASOURCE_URL=jdbc:h2:file:~/.halo/db/halo - SPRING_DATASOURCE_USERNAME=username - SPRING_DATASOURCE_PASSWORD=password - HALO_ADMIN_PATH=admin - HALO_CACHE=memory

将文章内容保存为docker-compose.yml,并使用docker-compose up -d运行,然后修改caddyfile中的内容,即可通过blog.example.com/admin来访问后台。

*.example.com { tls { dns dnspod your-id,your-secret } ## 预留给子域名做配置 @blog host blog.example.com handle @blog { reverse_proxy localhost:8090 } handle { respond "running." } }

因为是Java程序所以内容占用比较多,大概500M。

MinDoc

文档管理工具,可供多人使用,东西多了难免记不住。而这时,这款开源项目就可以用来记录你的笔记,等维护的时候也可以快速找到当时的情况。

dbgate

许多开源程序需要用到数据库,而数据库需要管理工具,有一个网页的管理工具,占用小,功能齐全,放着也可以备用。

postgres

gitea

作为程序员必备的工具,git工具是必不可少的。但由于github和gitee的审核机制,所以自建一个git也是个不错的选择,而gitea的占用小占用,功能全是个不错的选择。

# 暂时跳过

outline

# 还在研究

最后说两句

如果你是一个隐私注重者,可以尝试一下这些的开源项目,还是蛮有趣的。

相关链接

  • https://zhuanlan.zhihu.com/p/106327686

  • https://github.com/SuperManito/LinuxMirrors

  • https://www.sszsj.cc/articles/2023/03/07/1678159118000.html

  • https://docs.gitea.io/zh-tw/oauth2-provider/

  • https://wiki.generaloutline.com/s/hosting/doc/oidc-8CPBm6uC0I

  • https://github.com/outline/outline/issues/4774

  • https://gitea.com/.well-known/openid-configuration

  • https://blog.csdn.net/wbsu2004/article/details/123416421

  • https://wiki.generaloutline.com/s/hosting/doc/docker-7pfeLP5a8t

  • https://github.com/dbgate/dbgate