蓝易云能干什么

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

初始化

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

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

# 还在研究

最后说两句

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

相关链接