曾梦想仗剑走天涯
EasyPanel:一款使用Docker部署的VPS面板

EasyPanel

官方网站 EasyPanel.io

EasyPanel是一款基于docker的可视化面板. 拥有付费免费两种模式

本文介绍以免费模式为主(主要是收费不菲)

从首页的介绍可以看到他的特色就是通过直观的界面部署应用,管理数据库以及签发SSL证书.

安装

  • 建议在纯净的linux系统下安装

通过命令行

1
curl -sSL https://get.easypanel.io | sh

即可完成安装,官方给出的配置要求内存大于2G,根据实测,1G的vps运行起来问题也不大.

由于是容器化的部署方式,各个应用之间独立运行.NICE.

使用

访问

安装之后通过

1
ip:3000

访问面板,初次访问会要求创建管理员账号和密码.

登录

进入面板会发现很简洁
进入面板

创建

创建项目点击Create Project填写项目名称,确定,进入该项目

模板

点击templates会发现这里有很多常用的应用模板,只要点击就可以部署.

譬如memos uptime wordpress Flarum GoToSocial Umami Vaultwarden 等上百款应用

服务

常见的模板应用大多都是全世界著名的应用.国内的某些应用,或者不是很常见的应用该如何部署

此处以gatus为例

点击APP,填写名称,确认

点击General
gatus的docker镜像为twinproduction/gatus:latest
Docker images中填入twinproduction/gatus:latest
SAVE保存.

点击Domain-ADD Domain-HOST填写域名

全部填写完成之后,点SAVE保存.

点击Advanced-Mounts-ADD VOLUME Mounts

Name为宿主机名称可以自己设置

Mount Path为Docker

挂载目录 /data

点击ADD File Mounts,其中 Mount Path为挂载路径,此处填写为/config/config.yaml

Content为yaml格式的配置文件 与 config.yaml内容对应

以下为示例内容可自行修改

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
storage:
type: sqlite
path: /data/data.db

ui:
buttons:
- name: "Home"
link: "https://www.imsun.org"

endpoints:
- name: bloghb
group: core
url: "https://blog.hb.cn"
interval: 3m
conditions:
- "[STATUS] == 200"

- name: blogcn
group: core
url: "https://blog.asbid.cn"
interval: 3m
conditions:
- "[STATUS] == 200"

- name: blogsd
group: core
url: "https://blog.sd.cn"
interval: 3m
conditions:
- "[STATUS] == 200"

点击SAVE保存

点击Deploy.

完成部署 别忘记在DNS处解析域名

gatus演示

https://status.0tz.top/

总结

优势:不用折腾反代,不用担心证书到期,常用应用傻瓜式部署

巨械师X99主板/E5 2680 V4/RX5600XT 6G/1TB SSD/BCM94360CS[OpenCore引导]

前言

年后配的黑苹果主机,主要是因为英特尔的12 13 14代CPU开始挤牙膏,且价格高居不下.
于是攒出这套配置,用于处理多核心任务.
总体价格2300左右,差不多一台M1 Macmini标配的价格.

配置

配件 名称
主板 巨械师X99M
CPU E5 2680 V4
内存 三星DDR4 64G ECC
硬盘 梵想1TB SSD
显卡 蓝宝石RX5600XT 6G
机箱 鱼巢S5
电源 长城额定700W金牌
网卡 BCM94360CS2
散热器

说明

BIOS 设置

需关闭

[ ] - CFG LOCK

[ ] - CSM 兼容

需打开

[x] - Above 4G Decoding

引导下载

EFI

https://pan.sgcd.net/189/%E5%B7%A8%E6%A2%B0%E5%B8%88X99EFI.zip

关于网络发展的随笔

短视频的兴起其实是有迹可循的.

至少从我这个资深网民的眼光来看,是这样的.

我觉得人类基本都是视觉生物,任何类型的刺激都不如视觉上带来的感官刺激更甚.

互联网毒药从古早的文字到图片,然后到多媒体,最后到短视频.这些都是基于视觉带来的刺激升级.

当然这跟互联网的技术发展也是有很大的关系.

早先的互联网主要以文字为主.主要是因为当时的上网方式以电话线拨号为主,费用及其昂贵,带宽也是有限,于是有了多图杀猫的说法.

待到互联网普及的阶段,有了宽带,此时图片这种比文字还要刺激感官的方式便开始流行,各种论坛贴吧都充斥着各种类型的图片.还有当时各种资源网站发布的压缩视频文档.这时是P2P发展的黄金时期.

等到版权意识增加,此类资源网站渐渐退出主流视野,此时各大视频网站开始兴起,各种自制的短剧也取得了不错的口碑也收视.

最早的视频博客,就是现在的youtuber和up主.

当时土豆网就是其中翘楚.
我记得当时有很多录播的当红的台剧偶像剧都在土豆网上可以看.都是由个人或者粉丝上传的.
也有很多优秀的自制的视频,大多是搞笑的段子和模仿,恶搞.
当时恶搞无极胡戈,一个馒头引发的血案.
后来还有结合实事的鸟笼山剿匪记.

叫兽易小星杨迪就是从这个时候横空出世的.

我记得当时过最屌的吐槽就是老湿的 评西游记,还有卢正雨嘻哈四重奏.

优酷和土豆合并之后,叫兽易小星老湿成立的万合天宜的自制短剧万万没想到.

待到了4G 5G的普及,移动互联网成了网络大军的主力.
手机这种更加便携更加简单的设备就成了人们网上冲浪的主要工具.

短视频的出现则利用了人们的碎片时间,加上更加成熟的大数据支持,更是让人愈发欲罢不能.

我有几个朋友以前是倾向于微博这种文字类社交媒体的.
最早我们认识也是在论坛上.
如今,都不怎么用微博了.常用的APP也变成了小红书抖音.

现在短视频平台上集合了各类内容,更容易获取到信息,也容易被各种真真假假的视频误导.

如今最让人离谱的就是各种带货直播以各种形式出现,有的就是演一出小短剧.

有的直播象棋,突然就给你整一出卖酒的操作来.

我有个老叔已经六十多了整天看人下棋直播,天天听人卖酒带货,把我整不会了.
图啥呢.明知道是假的,还整天看.

我外公八十多岁了,在抖音上到有老中医推荐什么偏方,他竟然用笔都抄下来了,然后当真去买了煮.
若不是没有什么副作用,我都不敢想象.

平台若是不监管,出了什么事情,平台是要承担主要责任的.
不能钱让平台赚了,出了事跟平台无关,这就说不过去了.

使用Docker快速部署mastodon实例

如何使用Docker快速部署mastodon实例

直接使用docker compose部署是不可行的,需要按照步骤进行

创建目录

1
mkdir -p /home/mastodon/mastodon

进入目录

1
cd /home/mastodon/mastodon

拉取镜像

1
docker pull ghcr.io/mastodon/mastodon

修改docker compose配置文件

1
wget https://raw.githubusercontent.com/mastodon/mastodon/main/docker-compose.yml

修改docker compose文件中的版本号

初始化PostgreSQL

  • 重要!!!!!
    1
    docker run --name postgres14 -v /home/mastodon/mastodon/postgres14:/var/lib/postgresql/data -e   POSTGRES_PASSWORD=设置数据库管理员密码 --rm -d postgres:14-alpine
    进入数据库
    1
    docker exec -it postgres14 psql -U postgres
    创建用户名mastodon的密码
    1
    CREATE USER mastodon WITH PASSWORD '数据库密码(最好和数据库管理员密码不一样)' CREATEDB;
    停止docker
    1
    docker stop postgres14

配置Mastodon

/home/mastodon/mastodon根文件夹中创建空白.env.production文件

1
2
cd /home/mastodon/mastodon
touch .env.production

运行引导

1
docker-compose run --rm web bundle exec rake mastodon:setup

按照提示进行操作
Below is your configuration, save it to an .env.production file outside Docker:之后会出现配置文件的数据,复制下来
写入.env.production

启动Mastodon

1
2
docker-compose down
docker-compose up -d

文件夹赋权

1
2
3
4
chown 991:991 -R ./public
chown -R 70:70 ./postgres14
docker-compose down
docker-compose up -d

创建管理员

1
docker exec mastodon-web-1 tootctl accounts create USERNAME --email EMAIL --confirmed --role Owner

至此完成

快速部署misskey实例

使用官方推荐一键脚本

使用纯净的Ubuntu系统安装,推荐配置双核心四线程.

更新软件

1
sudo apt update; sudo apt full-upgrade -y; sudo reboot

一键脚本

1
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh

按照提示输入内容

更新misskey脚本

更新 Misskey 的脚本不会升级运行环境。 对于脚本的更新内容,另请参阅 “更新日志”

1
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/update.ubuntu.sh -O update.sh
1
sudo bash update.sh
  • 使用 systemd 的小伙伴, 添加 -r 可以更新并重启系统。
  • 使用 docker 的小伙伴, 可以特定软件包版本 repository:tag 来更新。

使用docker compose部署

环境

  • git
  • docker
  • nginx

步骤

git克隆仓库

1
2
3
4
cd /opt
git clone -b master https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master

复制配置文件:

1
2
3
cp .config/example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp docker-compose.yml.example docker-compose.yml

编辑default.yml中

url设置为实例域名
db:host设置为db
redis:host设置为redis

构建镜像

1
2
docker compose build
docker compose run --rm web yarn run init

完成之后

启动容器

1
docker compose up -d

反向代理

参考以下

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
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}

proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;

server {
listen 80;
listen [::]:80;
server_name misskey.example.com;
client_max_body_size 0;

location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_redirect off;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;

proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;

proxy_cache cache1;
proxy_cache_lock on;
proxy_cache_use_stale updating;
add_header X-Cache $upstream_cache_status;
}
}
测试xiuno2Sforum中遇到的各种问题

想把xiunobbs数据转换成SForum,由于最新版本的SForum没有转换工具支持
于是采用Sforum v2.2.2测试

测试环境

  • Ubuntu 22.0.4
  • php8.0
  • mariadb10.6
  • composer
  • redis
  • nginx or apache

测试程序

sforum v2.2.2

xiuno2sforum v2.2.2

PHP

安装PPA 源

需要使用 PPA 源安装:

1
2
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

安装php8.0

1
apt install php8.0
1
apt install -y php8.0-dev

安装拓展

1
apt install php8.0-curl php8.0-xml php8.0-gd php8.0-mbstring php8.0-redis php8.0-swoole php8.0-bcmath

查看php版本

1
php -v

查看拓展

1
php -m

切换PHP版本

1
update-alternatives --config php

切换到

1
update-alternatives --set php /usr/bin/php8.0

PHP 扩展 ZipArchive

上传压缩包提示500错误,打开日志发现是缺少组件

服务器上存在多个php版本,手动指定php-config文件

1
./configure --with-php-config=/www/server/php/73/bin/php-config

安装ZipArchive扩展

编译ZipArchive
1
2
3
4
5
6
7
8
cd ~
wget http://pecl.php.net/get/zip
tar -zxvf zip
cd zip-x.x.x
phpize
./configure
make
make install

成功安装zip之后会返回一个路径:

类似

1
Installing shared extensions:     /www/server/php/8/lib/php/extensions/no-debug-non-zts-20180731/

加到php.ini中:

1
extension=/www/server/php/8/lib/php/extensions/no-debug-non-zts-20180731/zip.so


php.ini中添加

1
extension=zip.so

提示checking for libzip... not found

编译libzip
1
2
3
4
5
6
7
wget https://libzip.org/download/libzip-1.3.2.tar.gz
tar xvf libzip-1.3.2.tar.gz
cd libzip-1.3.2
./configure
make
make install
export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig/"

在使用插件转换数据中一直报错无法使用的class medoo

所以使用cpmposer安装

1
composer require catfan/Medoo

mariadb

创建数据库

Mariadb创建数据库、用户及授权

数据导入

导入sql备份文件

进入数据库

1
mysql -uroot -p

使用数据库bbs

1
use bbs

导入sql路径

1
source /root/bbs.sql;

安装 Redis

1
apt install redis-server

安装 Nginx

1
apt install nginx

安装composer

1
2
3
4
apt install git zip unzip
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

安装SForum v2.2.2

1
composer create-project zhuchunshu/sforum=v2.2.2 sforum

进入安装目录,

1
cd sforum

按照提示,连续执行命令即可完成安装(启动服务也是此命令):

1
php CodeFec CodeFec
Mariadb创建数据库、用户及授权

在测试SForum程序中使用到的部分关于数据库的操作

安装Mariadb服务器

1
apt install mariadb-server-10.6

初始化数据库

1
mysql_secure_installation

连接数据库

1
mysql -u root -p 

创建数据库

1
CREATE DATABASE bbs;

创建一个本地访问数据库的账户

创建用户

1
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

参数:

username:数据库访问的账户;localhost:数据库的访问方式,外网访问的时候用%替换localhost即可;password:数据库访问密码,此处输入密码明文;

给测试账户分配权限

分配所有权限

给用户分配所有的权限,并且通过localhost访问

1
2
GRANT ALL ON bbs.* to username@'localhost' IDENTIFIED BY 'password';
FLUSH privileges;

分配部分权限

给账户分配部分的权限,并且通过外网访问

1
2
GRANT insert,delete,select,update ON test.* to username@'%' IDENTIFIED BY 'password';
FLUSH privileges;

或则采用下面的代码,除了操作权限授权外,还赋予授权的权限。

1
2
GRANT ALL ON test.* to username@'%' IDENTIFIED BY 'passowrd' WITH GRANT OPTION;
FLUSH privileges;
centos在yum时出现Determining fastest mirrors

问题1

yum makecache时,停在Determining fastest mirrors,一直在判断最快镜像,由于已经指定了yum源,所以不需要些插件,可以用动禁用。

解决方法:

修改/etc/yum/pluginconf.d/fastestmirror.conf里面的enabled=0

修改/etc/yum.conf里面的plugins=0

问题解决。

问题2

Could not retrieve mirrorlist http://mirrors.elrepo.org/mirrors-elrepo.el7 error was
12: Timeout on http://mirrors.elrepo.org/mirrors-elrepo.el7: (28, ‘Connection timed out after 30001 milliseconds’)

镜像列表http://mirrors.elrepo.org/mirrors-elrepo.el7 的地址无法访问

解决方法

更新ELRepo 软件仓库镜像
首先按照官网的安装说明,配置 ELRepo:

1
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

按照你的系统版本,运行:

1
yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm

接下来是换源,建议先备份 /etc/yum.repos.d/elrepo.repo

1
cp /etc/yum.repos.d/elrepo.repo /etc/yum.repos.d/elrepo.repo.bak

然后编辑 /etc/yum.repos.d/elrepo.repo 文件,在 mirrorlist= 后的地址替换为

1
https://mirrors.tuna.tsinghua.edu.cn/elrepo

最后,更新软件包缓存

1
yum makecache
Docker部署Activity-Relay服务
  • 经过测试国内部署会有无法通讯的问题.

测试环境

centos7.9

准备工作

  • git
  • openssl
  • nginx
  • docker
  • docker-compose

从仓库Pull a repository

1
git clone https://github.com/yukimochi/Activity-Relay.git -b v2.0.0

复制编辑config.yml

进入Activity-Relay目录

1
2
cd Activity-Relay
cp config.yml.example config.yml

修改相关配置

1
vim config.yml

生成actor RSA 证书 ./actor.pem

ubuntu使用

1
openssl genrsa -traditional | tee actor.pem

centos使用

1
openssl genrsa -out actor.pem 1024 | tee actor.pem

赋予权限600

1
chmod 600 actor.pem

构建镜像与运行服务

1
2
docker-compose build
docker-compose up -d

查看容器运行状态

1
docker-compose ps

停止服务

1
docker-compose down

相关参考

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
version: "2.3"
services:
redis:
restart: always
image: redis:alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
volumes:
- "./redisdata:/data"

worker:
container_name: worker
build: .
image: yukimochi/activity-relay
working_dir: /var/lib/relay
restart: always
init: true
command: relay worker
volumes:
- "./actor.pem:/var/lib/relay/actor.pem"
- "./config.yml:/var/lib/relay/config.yml"
depends_on:
- redis

server:
container_name: relay
build: .
image: yukimochi/activity-relay
working_dir: /var/lib/relay
restart: always
init: true
ports:
- "8080:8080"
command: relay server
volumes:
- "./actor.pem:/var/lib/relay/actor.pem"
- "./config.yml:/var/lib/relay/config.yml"
depends_on:
- redis

Nginx设置

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
upstream relay {
server 127.0.0.1:8080;
}
server {
server_name relay.example.com;

location / {
root /var/lib/relay;
try_files $uri $uri/index.html =404;
}

location /inbox {
rewrite ^/inbox(.*) /$1 break;
proxy_pass http://relay/;
proxy_pass_request_headers on;
proxy_set_header Host $http_host;
}

location /actor {
rewrite ^/inbox(.*) /$1 break;
proxy_pass http://relay/;
proxy_pass_request_headers on;
proxy_set_header Host $http_host;
}

}

NEC M700黑苹果OC0.9.4引导

NEC M700黑苹果OC0.9.4引导

配置

CPU QHPW 2.2Ghz 四核心八线程I7es魔改
主板NEC
内存8GB DDR4 2666Mhz
硬盘512GB SSD
无线网卡BCM943224pcieBT拆机
有线网卡INTEL
声卡ALC235

准备工作

U盘 16G以上
解锁CFG LOCK工具
ami BIOS提取工具
opencore
OCAT

解锁CFG LOCK

在WINDOWS系统下通过工具提取出BIOS.
通过UEFI TOOL打开提取出的BIOS文件,查找cfg lock

© 2020 浪子
Powered by hexo | Theme is blank
Title - Artist
0:00