首页
留言
友链
关于
Search
1
思源笔记docker私有化部署及使用体验分享
2,421 阅读
2
windows11 远程提示:为安全考虑,已锁定该用户帐户,原因是登录尝试或密码更改尝试过多。
1,110 阅读
3
Pointer-Focus:一款功能强大的教学、录屏辅助软件
615 阅读
4
解决 nginxProxyManager 申请证书时的SSL失败问题
610 阅读
5
使用cspell对项目做拼写规范检查
581 阅读
Web前端
CSS
JavaScript
交互
Vue
小程序
后端
运维
项目
生活
其他
转载
软件
职场
登录
Search
标签搜索
docker
DevOps
magic-boot
Linux
酷壳
RabbitMQ
gitlab
Node
git
工具
MybatisPlus
clickhouse
Syncthing
规范
前端
产品
nginx
markdown
axios
H5
朱治龙
累计撰写
139
篇文章
累计收到
7
条评论
首页
栏目
Web前端
CSS
JavaScript
交互
Vue
小程序
后端
运维
项目
生活
其他
转载
软件
职场
页面
留言
友链
关于
搜索到
34
篇与
其他
的结果
2024-11-22
推荐一款好用的Linux Web 可视化管理工具——Cockpit
软件介绍Cockpit是一个易于使用、集成、易于浏览和开放的基于 Web 的服务器界面。支持多种linux发行版软件常用功能系统日志信息查看系统存储信息查看仪表盘系统配置与系统基本操作Docker容器监控系统网络监控Web命令行终端软件部署Cockpit 支持多种 Linux 发行版,各类型安装命令参见官网链接:https://cockpit-project.org/running.html。根据官网的安装说明,下面以 Ubuntu 为例进行简单讲解。安装命令如下:. /etc/os-release sudo apt install -t ${VERSION_CODENAME}-backports cockpit上面的命令执行效果如下:zhuzl@zhuzl-M9-PRO:~$ . /etc/os-release zhuzl@zhuzl-M9-PRO:~$ sudo apt install -t ${VERSION_CODENAME}-backports cockpit 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 将会同时安装下列软件: cockpit-bridge cockpit-networkmanager cockpit-packagekit cockpit-storaged cockpit-system cockpit-ws finalrd libblockdev-mdraid2 libbytesize-common libbytesize1 libpwquality-tools mdadm 建议安装: cockpit-doc cockpit-sosreport udisks2-btrfs udisks2-lvm2 sssd-dbus dracut-core 下列【新】软件包将被安装: cockpit cockpit-bridge cockpit-networkmanager cockpit-packagekit cockpit-storaged cockpit-system cockpit-ws finalrd libblockdev-mdraid2 libbytesize-common libbytesize1 libpwquality-tools mdadm 升级了 0 个软件包,新安装了 13 个软件包,要卸载 0 个软件包,有 122 个软件包未被升级。 需要下载 7,490 kB 的归档。 解压缩后会消耗 10.4 MB 的额外空间。 您希望继续执行吗? [Y/n] y 获取:1 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 cockpit-bridge amd64 324-1~bpo22.04.1 [393 kB] 获取:2 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 cockpit-ws amd64 324-1~bpo22.04.1 [882 kB] 获取:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 libpwquality-tools amd64 1.4.4-1build2 [9,752 B] 获取:4 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 cockpit-system all 324-1~bpo22.04.1 [3,204 kB] 获取:5 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 cockpit all 324-1~bpo22.04.1 [20.1 kB] 获取:6 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 cockpit-networkmanager all 324-1~bpo22.04.1 [846 kB] 获取:7 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 cockpit-packagekit all 324-1~bpo22.04.1 [844 kB] 获取:8 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 libbytesize-common all 2.6-1 [7,454 B] 获取:9 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 libbytesize1 amd64 2.6-1 [12.1 kB] 获取:10 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy-updates/main amd64 mdadm amd64 4.2-0ubuntu2 [464 kB] 获取:11 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 libblockdev-mdraid2 amd64 2.26-1 [11.8 kB] 获取:12 http://cn.archive.ubuntu.com/ubuntu jammy-backports/universe amd64 cockpit-storaged all 324-1~bpo22.04.1 [789 kB] 获取:13 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 finalrd all 9build1 [7,306 B] 已下载 7,490 kB,耗时 13秒 (577 kB/s) 正在预设定软件包 ... 正在选中未选择的软件包 cockpit-bridge。 (正在读取数据库 ... 系统当前共安装有 262830 个文件和目录。) 准备解压 .../00-cockpit-bridge_324-1~bpo22.04.1_amd64.deb ... 正在解压 cockpit-bridge (324-1~bpo22.04.1) ... 正在选中未选择的软件包 cockpit-ws。 准备解压 .../01-cockpit-ws_324-1~bpo22.04.1_amd64.deb ... 正在解压 cockpit-ws (324-1~bpo22.04.1) ... 正在选中未选择的软件包 libpwquality-tools。 准备解压 .../02-libpwquality-tools_1.4.4-1build2_amd64.deb ... 正在解压 libpwquality-tools (1.4.4-1build2) ... 正在选中未选择的软件包 cockpit-system。 准备解压 .../03-cockpit-system_324-1~bpo22.04.1_all.deb ... 正在解压 cockpit-system (324-1~bpo22.04.1) ... 正在选中未选择的软件包 cockpit。 准备解压 .../04-cockpit_324-1~bpo22.04.1_all.deb ... 正在解压 cockpit (324-1~bpo22.04.1) ... 正在选中未选择的软件包 cockpit-networkmanager。 准备解压 .../05-cockpit-networkmanager_324-1~bpo22.04.1_all.deb ... 正在解压 cockpit-networkmanager (324-1~bpo22.04.1) ... 正在选中未选择的软件包 cockpit-packagekit。 准备解压 .../06-cockpit-packagekit_324-1~bpo22.04.1_all.deb ... 正在解压 cockpit-packagekit (324-1~bpo22.04.1) ... 正在选中未选择的软件包 libbytesize-common。 准备解压 .../07-libbytesize-common_2.6-1_all.deb ... 正在解压 libbytesize-common (2.6-1) ... 正在选中未选择的软件包 libbytesize1:amd64。 准备解压 .../08-libbytesize1_2.6-1_amd64.deb ... 正在解压 libbytesize1:amd64 (2.6-1) ... 正在选中未选择的软件包 mdadm。 准备解压 .../09-mdadm_4.2-0ubuntu2_amd64.deb ... 正在解压 mdadm (4.2-0ubuntu2) ... 正在选中未选择的软件包 libblockdev-mdraid2:amd64。 准备解压 .../10-libblockdev-mdraid2_2.26-1_amd64.deb ... 正在解压 libblockdev-mdraid2:amd64 (2.26-1) ... 正在选中未选择的软件包 cockpit-storaged。 准备解压 .../11-cockpit-storaged_324-1~bpo22.04.1_all.deb ... 正在解压 cockpit-storaged (324-1~bpo22.04.1) ... 正在选中未选择的软件包 finalrd。 准备解压 .../12-finalrd_9build1_all.deb ... 正在解压 finalrd (9build1) ... 正在设置 libpwquality-tools (1.4.4-1build2) ... 正在设置 finalrd (9build1) ... Created symlink /etc/systemd/system/sysinit.target.wants/finalrd.service → /lib/systemd/system/finalrd.service. 正在设置 libbytesize-common (2.6-1) ... 正在设置 cockpit-bridge (324-1~bpo22.04.1) ... 正在设置 libbytesize1:amd64 (2.6-1) ... 正在设置 cockpit-ws (324-1~bpo22.04.1) ... Creating group cockpit-wsinstance with gid 998. Creating user cockpit-wsinstance (User for cockpit-ws instances) with uid 998 and gid 998. Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket → /lib/systemd/system/cockpit.socket. 正在设置 mdadm (4.2-0ubuntu2) ... Generating mdadm.conf... done. update-initramfs: deferring update (trigger activated) Sourcing file `/etc/default/grub' Sourcing file `/etc/default/grub.d/init-select.cfg' Generating grub configuration file ... File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007874: grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007874: grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007902: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007902: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007914: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007914: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007924: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007924: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007934: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007934: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007944: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1007944: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008001: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008001: /usr/sbin/grub-probe Found linux image: /boot/vmlinuz-6.8.0-49-generic Found initrd image: /boot/initrd.img-6.8.0-49-generic File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008083: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008083: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008094: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008094: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008104: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008104: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008114: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008114: /usr/sbin/grub-probe Found linux image: /boot/vmlinuz-6.8.0-40-generic Found initrd image: /boot/initrd.img-6.8.0-40-generic File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008391: /usr/sbin/grub-probe File descriptor 3 (pipe:[363435355]) leaked on vgs invocation. Parent PID 1008391: /usr/sbin/grub-probe Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting Warning: os-prober will not be executed to detect other bootable partitions. Systems on them will not be added to the GRUB boot configuration. Check GRUB_DISABLE_OS_PROBER documentation entry. Adding boot menu entry for UEFI Firmware Settings ... done Created symlink /etc/systemd/system/mdmonitor.service.wants/mdcheck_continue.timer → /lib/systemd/system/mdcheck_continue.timer. Created symlink /etc/systemd/system/mdmonitor.service.wants/mdcheck_start.timer → /lib/systemd/system/mdcheck_start.timer. Created symlink /etc/systemd/system/mdmonitor.service.wants/mdmonitor-oneshot.timer → /lib/systemd/system/mdmonitor-oneshot.timer. 正在设置 cockpit-system (324-1~bpo22.04.1) ... 正在设置 cockpit-networkmanager (324-1~bpo22.04.1) ... 正在设置 libblockdev-mdraid2:amd64 (2.26-1) ... 正在设置 cockpit-packagekit (324-1~bpo22.04.1) ... 正在设置 cockpit-storaged (324-1~bpo22.04.1) ... 正在设置 cockpit (324-1~bpo22.04.1) ... 正在处理用于 man-db (2.10.2-1) 的触发器 ... 正在处理用于 libc-bin (2.35-0ubuntu3.8) 的触发器 ... 正在处理用于 initramfs-tools (0.140ubuntu13.4) 的触发器 ... update-initramfs: Generating /boot/initrd.img-6.8.0-49-generic I: The initramfs will attempt to resume from /dev/dm-1 I: (/dev/mapper/vgubuntu-swap_1) I: Set the RESUME variable to override this.安装后通过端口检测服务是否正确:zhuzl@zhuzl-M9-PRO:~$ sudo lsof -i:9090 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 164u IPv6 363430477 0t0 TCP *:9090 (LISTEN) zhuzl@zhuzl-M9-PRO:~$从上面的命令结果可知,Cockpit 已成功安装并监听 9090 端口。此时我们可以在服务器的防火墙放行 9090 端口后直接通过9090端口访问,由于是web服务,我们也可以使用Nginx 代理对外提供服务,根据个人喜好来就好。初体验登录页从登录页我们可以看到,登录窗都做到了自动国际化,还是不错的。使用 Linux 系统的账号登录,显示如下失败页面:根据界面的报错提示,执行sudo journalctl -u cockpit命令查看日志,内容如下:zhuzl@zhuzl-M9-PRO:~$ sudo journalctl -u cockpit [sudo] zhuzl 的密码: 11月 22 16:07:20 zhuzl-M9-PRO systemd[1]: Starting Cockpit Web Service... 11月 22 16:07:20 zhuzl-M9-PRO cockpit-certificate-ensure[1048208]: /usr/lib/cockpit/cockpit-certificate-helper: line 25: sscg: command not found 11月 22 16:07:20 zhuzl-M9-PRO cockpit-certificate-ensure[1048209]: .+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.......+......+....+++++++++++++++++++++++++++++> 11月 22 16:07:20 zhuzl-M9-PRO cockpit-certificate-ensure[1048209]: .....+............+.............+..+....+...+.....+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++> 11月 22 16:07:20 zhuzl-M9-PRO cockpit-certificate-ensure[1048209]: ----- 11月 22 16:07:20 zhuzl-M9-PRO systemd[1]: Started Cockpit Web Service. 11月 22 16:10:02 zhuzl-M9-PRO systemd[1]: cockpit.service: Deactivated successfully.根据提示是找不到sscg命令,我们安装一下sudo apt install sscg该命令执行情况如下:zhuzl@zhuzl-M9-PRO:/home/zhuzl# sudo apt install sscg 正在读取软件包列表... 完成 正在分析软件包的依赖关系树... 完成 正在读取状态信息... 完成 将会同时安装下列软件: libpath-utils1 powertop 建议安装: cpufrequtils laptop-mode-tools 下列【新】软件包将被安装: libpath-utils1 powertop sscg 升级了 0 个软件包,新安装了 3 个软件包,要卸载 0 个软件包,有 88 个软件包未被升级。 需要下载 225 kB 的归档。 解压缩后会消耗 705 kB 的额外空间。 您希望继续执行吗? [Y/n] y 获取:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 libpath-utils1 amd64 0.6.2-1 [9,254 B] 获取:2 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 sscg amd64 3.0.2-1 [23.9 kB] 获取:3 http://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 powertop amd64 2.14-1build1 [191 kB] 已下载 225 kB,耗时 57秒 (3,917 B/s) 正在选中未选择的软件包 libpath-utils1:amd64。 (正在读取数据库 ... 系统当前共安装有 263679 个文件和目录。) 准备解压 .../libpath-utils1_0.6.2-1_amd64.deb ... 正在解压 libpath-utils1:amd64 (0.6.2-1) ... 正在选中未选择的软件包 sscg。 准备解压 .../sscg_3.0.2-1_amd64.deb ... 正在解压 sscg (3.0.2-1) ... 正在选中未选择的软件包 powertop。 准备解压 .../powertop_2.14-1build1_amd64.deb ... 正在解压 powertop (2.14-1build1) ... 正在设置 libpath-utils1:amd64 (0.6.2-1) ... 正在设置 powertop (2.14-1build1) ... 正在设置 sscg (3.0.2-1) ... 正在处理用于 man-db (2.10.2-1) 的触发器 ... 正在处理用于 libc-bin (2.35-0ubuntu3.8) 的触发器 ... zhuzl@zhuzl-M9-PRO:/home/zhuzl#主界面版本信息概览-指标和历史数据概览-硬件详细信息日志存储网络用户账户服务终端
2024年11月22日
2 阅读
0 评论
0 点赞
2024-09-10
一款超级好用的端口映射工具:rinetd
2014年的时候参与江西交通厅的项目,由于厅里只有一台跳板机可以访问省政府的在线办事内网服务,而内网机房也只有一台服务器能访问跳板机,而我们的项目又需要访问相关服务,然后就在内网的服务器上部署了个端口映射的软件,当时一直记得这款软件超级简单易用。近期一台开发服务器上的网络环境有同类的需求,但是时隔近10年,连名字都忘了,还好平常有记录工作日志的习惯,从10年前的工作日志里找到了当时的记录,就是它了: rinetd软件介绍rinetd 是一个简单易用的端口映射/转发/重定向工具。它通常用于将网络流量从一个端口转发到另一个端口,或者从一个IP地址转发到另一个IP地址。rinetd特别适用于那些需要将服务请求从一个网络地址或端口转发到另一个不同地址或端口的情况。rinetd的特点:简单性:配置简单,通过一个配置文件就可以完成设置。轻量级:rinetd自身占用的系统资源非常少。支持IPv4:它支持IPv4网络连接的重定向。安全性:可以设置允许哪些IP地址进行转发,从而提供一定程度的网络访问控制。软件使用安装rinetd:在大多数 Linux 发行版中,rinetd可以通过包管理器安装。例如,在基于Debian的系统(如Ubuntu)中,可以使用以下命令安装:sudo apt-get update sudo apt-get install rinetd以下是源码安装代码:windows: rinetd-win.ziplinux: rinetd.tar.gz配置rinetd:rinetd 的配置文件位于 /etc/rinetd.conf。以下是配置文件的一个基本示例:# # this is the configuration file for rinetd, the internet redirection server # # you may specify global allow and deny rules here # only ip addresses are matched, hostnames cannot be specified here # the wildcards you may use are * and ? # # allow 192.168.2.* # deny 192.168.2.1? # # forwarding rules come here # # you may specify allow and deny rules after a specific forwarding rule # to apply to only that forwarding rule # # bindadress bindport connectaddress connectport # for rocketMQ # 将所有发往本机18090端口的连接重定向到192.168.150.250的18080端口。 0.0.0.0 18090 192.168.150.250 18080 0.0.0.0 18091 192.168.150.250 18081 0.0.0.0 18092 192.168.150.250 18082 #0.0.0.0 18093 192.168.150.250 18083 0.0.0.0 18076 192.168.150.250 19876 # logging information logfile /var/log/rinetd.log # uncomment the following line if you want web-server style logfile format # logcommon日常运维命令# 启动服务 sudo systemctl restart rinetd # 重启服务 sudo systemctl restart rinetd # 查看运行状态 sudo systemctl status rinetd # 设为开机自启动 sudo systemctl enable rinetd特别说明:确保系统的防火墙规则允许 rinetd 进行必要的网络通信。
2024年09月10日
41 阅读
0 评论
0 点赞
2024-07-09
ChestnutCMS相关发布操作说明
本文档主要说明 ChestnutCMS 发布操作的相关逻辑,站点发布发布首页仅发布发布站点首页,生成站点首页静态文件发布全站发布全站需要选择发布指定状态的内容,此操作会发布站点下所有指定状态的内容,生成内容详情页静态文件;发布所有站点下栏目首页及列表页,生成栏目首页及列表页静态文件;发布站点首页,生成站点首页静态文件。发布栏目发布栏目在栏目编辑页面直接点击发布按钮,弹出栏目发布弹窗,可勾选是否发布栏目下所有子栏目,未勾选只发布当前栏目首页及列表页 + 站点首页,勾选则发布当前栏目及所有子栏目的首页及列表页 + 站点首页。单击后打开如下图所示的对话框:发布栏目及内容在栏目编辑页面鼠标移动到发布按钮,点击下拉框中发布指定状态内容选项,弹出栏目发布弹窗,可勾选是否发布栏目下所有子栏目,未勾选只发布当前栏目首页及列表页 + 当前栏目下的内容详情页 + 站点首页,勾选则发布当前栏目及所有子栏目的首页及列表页 + 当前栏目及所有子栏目下的内容详情页 + 站点首页。发布内容在内容列表或内容编辑页面点击发布按钮,发布指定内容详情页 + 内容所在栏目及所有祖级栏目的栏目首页和列表页 + 站点首页。发布页面部件设置页面部件模板根据页面部件模板生成静态文件,适用于在模板中使用<@cms_pagewidget>标签引用的页面部件。未设置页面部件模板需要根据模板中引用此页面部件的页面来发布,例如首页使用<@cms_pagewidget_data>或<@cms_advertisement>标签引用了页面部件数据,则需要发布首页。通过SSI方式包含的模板发布SSI包含模板主要应用于<@cms_include>标签,常见于公共页头和页尾,默认24小时缓存,因此如果SSI包含的模板有更新时,需要在后台模板管理菜单清理对应的模板缓存后再发布任意引用此模板的页面即可。
2024年07月09日
73 阅读
0 评论
0 点赞
2024-07-09
使用 linuxserver/firefox 实现外网网站加速访问
背景介绍之前建设网站过程中,有部分域名ICP备案麻烦,就买了台新加坡的服务器搭了几个网站,基本上也没什么访问量。早些年还用这种服务器搭个梯子之类的,但是近些年对自建梯子管控越来越严了,自建梯子的情况极有可能出现IP被封的风险。为了规避常规FQ软件的风险,在docker学习过程中发现有不少浏览器镜像,跑起来后可以直接通过浏览器访问docker容器内的浏览器服务,这样在规避风险的情况下,也能较方便的访问外网服务。理论上他是一个服务器上的浏览器,将它跑在内网环境上之后,它自然就能够访问内网资源。服务器能访问什么网站就可以访问什么网站,所以。。。搭建我们使用 docker compose 来管理 我们的镜像服务,docker-compose.yml 目录的内容如下:services: firefox: image: linuxserver/firefox:latest restart: unless-stopped container_name: firefox security_opt: - seccomp:unconfined #optional environment: - PUID=1000 - PGID=100 - TZ=Asia/Shanghai - LC_ALL=zh_CN.UTF-8 - CUSTOM_USER=zhuzl # 用户名 - PASSWORD=123456 # 密码 ports: - 8100:3000 volumes: - ./config:/config - /usr/share/fonts/chinese:/usr/share/fonts/chinese # 挂载中文字体目录,否则会出现中文乱码的问题 shm_size: "1gb"启动服务后,可在nginx配置代理,代理示例如下: location ^~ / { proxy_pass http://localhost:8100; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_http_version 1.1; # proxy_hide_header Upgrade; add_header X-Cache $upstream_cache_status; #Set Nginx Cache set $static_fileNpPoblu9 0; if ( $uri ~* "\.(gif|png|jpg|css|js|woff|woff2)$" ) { set $static_fileNpPoblu9 1; expires 1m; } if ( $static_fileNpPoblu9 = 0 ) { add_header Cache-Control no-cache; } }配置好后,可使用浏览器访问了,访问后初始界面如下:优化配置优化配置一:解决乱码问题如果未挂载中文字体的话,会出现下面这种乱码情况:所以我们需要将中文字体文件拷贝到宿主机的某个目录,如 /usr/share/fonts/chinese,然后挂载到容器的 /usr/share/fonts/chinese 目录,这样在启动容器的时候就可以自动价值中文字体了。优化配置二:安装翻译插件由于我们访问的外网多为英文内容,为便于快速消化内容,可给浏览器安装翻译插件,我这里安装了功能强大的「沉浸式翻译」,官网是:https://immersivetranslate.com/,进入官网后,可以直接点击「Firefox扩展」,进入Firefox 应用商店直接安装,安装后就可以很方便的使用了:使用体验整体访问速度上跟本地没什么蛮大区别,由于是基于KasmVNC的虚拟桌面技术,不能直接使用快捷键复制、粘贴内容,虽说设置中有「无缝剪切板」之类的开关,但是试了下也没效果,也有可能是我理解方面的问题吧:不过也可以使用 KasmVNC 自带的 剪贴板实现剪切板的读写:有一点需要特别注意的: 一定不要关闭最后一个浏览器标签 ,否则就直接黑屏了。黑屏后的话,需要重启docker服务才能继续使用。
2024年07月09日
149 阅读
0 评论
0 点赞
2024-07-05
写在入职并行3周年之际
一早收到公司人力系统自动推送的入职 3 周年提醒,让人不禁感叹时光飞逝。不知不觉中,我在并行已经度过了三年的时光。回顾这三年的工作历程,每一步都充满了挑战与成长。在这个具有纪念意义的时刻,我对自己在公司期间参与的主要工作做个回顾。前端规范的拟订在我刚加入公司之初,团队正处于组建初期阶段,我们面临的主要挑战之一是如何确保代码的统一性和可维护性。为此,我积极参与了公司前端开发规范的制定工作。我们对代码格式、命名规则以及组件的开发和使用规范等每一个细节都进行了深入的讨论和细致的推敲。这一规范制定过程不仅加深了我对前端开发最佳实践的理解,而且显著提升了团队的协作效率。搭建 dev-guide在前端规范制定完成后,我主导使用 webpack + vue + markdown-it 等技术栈搭建了团队日常开发用到的 dev-guide。这个 dev-guide 是一个纯静态工程,它不仅详尽记录了所有开发规范,还整合了日常使用的工具链接以及团队开发应用在不同环境下的链接。它已经成为新员工入职培训的关键资料,并且极大地便利了团队成员在开发过程中的信息检索。dev-guide 的设计兼顾了易用性和可维护性,使得新成员能够迅速适应,而经验丰富的成员也能轻松获取所需信息。此外,这种做法不仅提升了我们的开发效率,还确保了团队内部知识的共享和传承。参与超算云服务控制台前端开发作为团队中的一名专职前端开发工程师,参与公司控制台产品的前端开发是我工作中的一项重要内容。在这个过程中,我主要负责了如下工作:整体布局重构多主题改造(能分别打包成并行蓝和北龙红两个不同版本)国际化灰度发布(功能灰度上线)消息模块重构扫码登录功能快捷方式一键转区功能开发作业详情导出优化超算中心图表展示及交互全站搜索原型站点建设随动文档移动端站点建设年度用户计算报告(2023)整个前端开发过程中,通过与后端工程师的紧密合作,不经提升了我的团队协作能力,并积累了丰富的前端开发经验。使用CMS搭建控制台KBS在进行控制台项目的开发过程中,我们深刻地意识到构建一个详尽且易于访问的知识库的重要性。这个知识库的主要目的是记录和展示控制台的使用指南,以便用户能够随时随地在线访问和查阅这些信息。为了实现这一目标,我们进行了深入的调研和对比分析,以确保选择最合适的解决方案。经过一系列的评估和比较,我们最终决定采用基于 jspxCMS 来构建这个知识库系统。jspxCMS 是一个功能强大的内容管理系统,它提供了丰富的功能和灵活性,能够满足我们对知识库的各种需求。通过使用 jspxCMS,我们可以轻松地管理和发布控制台的使用指南,确保信息的准确性和及时更新。此外,jspxCMS 还具备用户友好的界面和强大的扩展性,这使得我们能够根据项目的具体需求进行定制和优化。这个过程中,我负责了如下工作:知识库站点模板制作知识库首页模板产品页模板内容页模板实现检索功能北龙超云版知识库模板后台改造改造左侧菜单导航样式应用资源文件分离改造。将上传文件目录、模板目录、索引文件目录从war包中分离后台界面支持并行蓝风格和北龙红风格详细项目情况见本博客之前分享的内容: 记一次KBS项目实施经验分享引入 Torna 管理项目接口文档在项目初期,我们采用了 smart-doc 工具来解析 Java 代码,自动生成 API 文档。最初,这些文档以单个 HTML 文件的形式呈现。然而,随着接口数量的不断增加,我们注意到文档的打开和加载速度变得异常缓慢。此外,随着项目的微服务化演进,我们在原有的 console-biz 基础上集成了更多工程,发现原有的文档生成方式无法有效整合所有接口文档。因此,我们开始探索其他解决方案。经过初步调研,我们发现 Torna 能够在最小的改动范围内满足我们的项目需求。基于此,我们在内部搭建了一套专门用于接口管理的系统。使用 Matomo 收集用户行为数据并做数据分析为了更深入地洞察用户的行为模式和需求,我们利用Matomo工具搜集了丰富的用户行为数据。经过对这些数据的细致分析,我们揭示了产品使用过程中存在的若干问题和潜在的改进领域,并据此实施了多次迭代优化。这一过程不仅让我掌握了数据分析的基础技巧,还提升了我对数据驱动开发理念的认识。从0 搭建开发维护中心(DMC)前端工程并实现完整功能在 DMC 项目中,我从零开始,基于 TDesign 构建了整个前端架构,并独立完成了所有功能的实现。该项目全面挑战了我的个人技能,涵盖了从需求分析、技术选择到具体功能实现的每一个环节,每一步都要求我展现出严谨和细致的工作态度。通过参与这个项目,我显著增强了自己在项目管理和问题解决方面的能力。基于 DataGear 搭建大屏展示系统并制作大屏随着项目推进至关键阶段,我们认识到有必要引入一个大屏幕展示系统,以便生动地展示各种统计数据。经过深入调研,我们选择了 DataGear 作为构建该系统的工具。在这一过程中,我承担了整个系统搭建以及两个主要大屏页面的制作任务。通过参与这个项目,我不仅掌握了 DataGear 的使用技巧,还学会了大屏幕展示的设计理念和实施技术。总结与展望三年的时光虽短暂,却在我的职业生涯中占据了至关重要的位置。在这段时间里,我在技术领域取得了显著的进步,并在团队协作与项目管理等多个方面积累了宝贵的经验。展望未来,我将持续保持对知识的渴望,不断磨练自己的技术能力,以期为公司和团队作出更大的贡献。这三年的工作经历让我深刻认识到,前端开发远不止于编写代码,它更是一个持续学习和创新的旅程。我衷心感谢公司为我提供的发展平台和机遇,同时对团队领导和同事们的支持与协助表示感激。
2024年07月05日
41 阅读
0 评论
0 点赞
2024-06-06
提词器工具合集
迅捷提词全能王官网:https://www.xunjiepdf.com/ticiqi点评:题词模式有拍摄、悬浮窗、提词板 3 种模式。除了提词功能外,软件的视频和图片功能也是非常实用的,工具非常齐全。芦笋提词器官网:https://tcq.lusun.com/点评:一款支持智能跟读、隐形提词的应用,支持Windows、Mac、Android、iOS。支持智能跟读、隐形提词、AI 辅助提词,广泛适用于网课、视频拍摄、直播、录口播、 vlog、视频面试、演讲、口才训练等领域。PromptSmart官网:https://www.promptsmart.com/点评:会根据语速自动调整提词速度,同时文本会自动滚动Teleprompter官网:https://cn.teleprompter-online.com/点评:在线工具,平时准备演讲或录视频的时候,可以用这个工具提示。除了支持在线录音、播放暂停外,还支持文本水平、垂直翻转以及镜像,方便录制。提客提词器官网:https://www.tttci.com/点评:有在线版也有客户端,有悬浮、隐形、多彩提词功能,支持 AI 跟随提词。QPrompt - 提词器开源地址:https://github.com/Cuperino/QPrompt-Teleprompter点评:适合所有视频创作者的提词器软件Speakflow — 在线提词器官网:https://www.speakflow.com/点评:同步远程滚动文本、文本调整、集成人工智能和语音识别等Promptr官网:https://promptr.co/点评:基于网络的提词器应用程序无需注册或下载,它有多种格式选项、文本调整、镜像视图和正常视图,让您轻松阅读Free online teleprompter software with voice activated scrolling.官网:https://telepromptermirror.com/telepromptersoftware.htm点评:免费提词器软件,支持语音激活,提供自动滚动、声控滚动、键盘快捷键、字体颜色管理等强大功能。PromptDog官网:https://promptdog.com/点评:一款适用于 Windows 和 macOS 设备的优秀提词器软件
2024年06月06日
80 阅读
0 评论
0 点赞
2024-01-04
[转载]你写文档吗?你为什么应该写文档?
本文主要是结合作者的项目实践来说明文档对于一个团队开发的重要性, 以及在提高效率节省时间方面的意义, 并且指出如何在实践开发中写文档与维护文档.
2024年01月04日
26 阅读
0 评论
0 点赞
2023-12-26
推荐一款统计代码行数的VSCode插件
基本介绍在撰写软著文档或做项目结项时我们一般都需要统计工程的代码行数,如果逐个文件进行统计的话,不仅费时费力,还不一定能得到准确的数据,所以我就在做这工作的时候找了下相关的工具,发现 VSCode 有一款好用的插件:Lines of Code(LOC)插件市场链接:https://marketplace.visualstudio.com/items?itemName=lyzerk.linecounterGithub 链接:https://github.com/alimozdemir/vscode-linecounter该插件当前的介绍信息见截图:基本使用安装后,可使用 Ctrl+Shift+P 打开 命令面板,然后输入 LineCount,显示如下选项:相关选项对应的是:LineCount:Count Workspace files:统计当前工作区所有文件的代码行数LineCount:Count current file:统计当前文件的代码行数选择 LineCount:Count Workspace files 后,系统将进行相关统计操作,统计完后会在当前工程的out目录生成 linecounter.txt 和 linecounter.json 文件,其中 linecounter.txt 文件内容如下:=============================================================================== EXTENSION NAME : linecounter EXTENSION VERSION : 0.2.7 ------------------------------------------------------------------------------- count time : 2023-12-27 09:21:44 count workspace : d:\GitRoot\SE\console\console-ui total files : 563 total code lines : 72734 total comment lines : 3925 total blank lines : 3554 statistics | extension| total code| total comment| total blank|percent| ------------------------------------------------------------------------- | .devIstio| 44| 2| 7| 0.060| | .stage| 34| 0| 0| 0.047| | .production| 41| 0| 0| 0.056| | | 193| 74| 42| 0.27| | .development| 36| 0| 0| 0.049| | .js| 13156| 1998| 752| 18| | .html| 2347| 6| 333| 3.2| | .md| 1660| 243| 419| 2.3| | .svg| 1743| 0| 107| 2.4| | .json| 3403| 7| 5| 4.7| | .yaml| 4153| 17| 626| 5.7| | .stg| 9| 2| 5| 0.012| | .blsc| 10| 2| 7| 0.014| | .conf| 103| 5| 27| 0.14| | .key| 30| 0| 0| 0.041| | .yml| 71| 0| 4| 0.098| | .crt| 28| 0| 0| 0.038| | .scss| 1778| 83| 312| 2.4| | .vue| 43126| 1467| 715| 59| | .css| 769| 19| 193| 1.1| ------------------------------------------------------------------------- .browserslistrc, code is 3, comment is 0, blank is 0. .editorconfig, code is 9, comment is 0, blank is 1. .env, code is 19, comment is 0, blank is 0. .env.blsc.development, code is 20, comment is 0, blank is 0. .env.blsc.devIstio, code is 20, comment is 0, blank is 0. .env.blsc.production, code is 23, comment is 0, blank is 0. .env.blsc.stage, code is 21, comment is 0, blank is 0. .env.development, code is 16, comment is 0, blank is 0. .env.devIstio, code is 14, comment is 0, blank is 0. .env.production, code is 18, comment is 0, blank is 0. .env.stage, code is 13, comment is 0, blank is 0. .eslintignore, code is 1, comment is 4, blank is 0. .eslintrc.js, code is 196, comment is 129, blank is 0. .gitignore, code is 20, comment is 0, blank is 2. .prettierrc, code is 6, comment is 0, blank is 0. admin.html, code is 21, comment is 2, blank is 0. cspell.json, code is 96, comment is 7, blank is 2. default.conf, code is 14, comment is 0, blank is 2. ... 统计的文件列表 src\views\userCenter\modals\WarningCcLimitModal.vue, code is 218, comment is 5, blank is 1. vite.config.js, code is 183, comment is 30, blank is 5. ===============================================================================从上面的信息不难看出当前工程内的文件总数及总代码行数, 包括注释行数及空行数。其中该插件有不少配置信息,可以在统计钱根据实际情况进行文件排除等场景,配置信息示例数据如下:{ "LineCount.showStatusBarItem": true, "LineCount.statistics": true, "LineCount.includes": [ "**/*" ], "LineCount.excludes": [ "**/.vscode/**", "**/node_modules/**" ], "LineCount.output": { "txt": true, "json": true, "csv": true, "md": true, "outdir":"out" }, "LineCount.sort": "filename", "LineCount.order": "asc", "LineCount.comment":[ { "ext": ["c","cpp","java"], "separator": { "linecomment": "//", "linetol":false, "blockstart": "/*", "blockend": "*/", "blocktol": false, "string":{ "doublequotes": true, "singlequotes": true } } }, { "ext": ["html"], "separator": { "blockstart": "<!--", "blockend": "-->", } } ] }
2023年12月26日
421 阅读
0 评论
0 点赞
2023-06-06
Ubuntu 添加FRP客户端自启动
背景介绍今年618 的时候购置了一台迷你主机,主要用于家庭内部服务器使用,主要基于Docker 部署其他应用,而 Ubuntu 作为 docker 原生支持最好的操作系统,而且还有漂亮的桌面,当然也就成了本迷你主机的操作系统首选。装完系统后,部署的很多应用只能内部使用,为了方便,当然不能只局限于家庭内部环境使用。结合之前不熟的FRP服务端,完全可以对外提供WEB服务,于是便有了本期的教程。下载 FRPFRP 是服务端和客户端打包在一个压缩包文件里的,可以直接从github下载就好。FRP 发布地址:https://github.com/fatedier/frp/releases本处直接下载最新的0.49.0 版本,根据操作系统,本处选择frp_0.49.0_linux_amd64.tar.gz 进行下载:wget https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gz下载后 解压文件tar -zxvf frp_0.49.0_linux_amd64.tar.gz将解压的文件移动到当前用户有权限的目录,本案例中移动到 /data/apps/frp目录编辑 frpc.ini 文件本处结合实际情况,修改内容如下,部分涉密数据做了调整:[common] server_addr = SERVER_IP server_port = 7000 # for authentication token = TOKEN log_file = /data/apps/frp/frpc.log log_level = info log_max_days = 30 [home_ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 4000 [home_web_pan] type = http local_ip = 127.0.0.1 local_port = 80 http_user = zhuzl http_pwd = PASSWORD subdomain = pan [home_web_kod] type = http local_ip = 127.0.0.1 local_port = 80 http_user = zhuzl http_pwd = PASSWORD subdomain = kod 配置完成后,可直接运行frpc 验证是否OK../frpc若有问题,可检查frpc.ini相关配置信息是否正确配置frpc自启动配置自启动过程中,为避免权限相关问题,本处直接切换为 root 账号添加 frpc.servicevi /etc/systemd/system/frpc.service输入如下服务配置内容[Unit] Description=Frp Client Service After=network.target [Service] Type=simple User=jiuzilong Restart=on-failure RestartSec=5s ExecStart=/data/apps/frp/frpc -c /data/apps/frp/frpc.ini [Install] WantedBy=multi-user.target 启用服务# 启用服务 systemctl enable frpc.service # 禁用服务 systemctl disable frpc.service重启服务systemctl daemon-reload systemctl start frpc验证服务启动状态systemctl status frpc参考链接FRP官方文档: https://gofrp.org/docs/overview/FRP服务端安装并设置开机自启动: https://blog.zhuzhilong.cn/software/install-frps-as-service.html推荐另一种docker compose 的启动方式:version: '3.3' services: frpc: restart: always network_mode: host volumes: - './frpc.ini:/etc/frp/frpc.ini' container_name: frpc image: snowdreamtech/frpc
2023年06月06日
30 阅读
0 评论
0 点赞
2023-05-14
FRP服务端安装并设置开机自启动
背景介绍之前一直有使用FRP做内网穿透,一般主要用于远程桌面和对外提供http服务进行测试,由于域名备案信息被撤销,原有解析过去的二级域名被拦截了,所以考虑将FRP 服务端部署到一台墙外的服务器上去,搜了一圈没找到之前的部署记录,本次也就只好将安装过程记录备忘了。安装时间:2023-05-14 15:51安装下载最新版本的frpfrp 在GitHub的地址是,# 进入用户目录 cd /usr/local # 下载frp 最新版, wget https://github.com/fatedier/frp/releases/download/v0.48.0/frp_0.48.0_linux_amd64.tar.gz # 解压 tar -zxvf frp_0.48.0_linux_amd64.tar.gz配置打开服务端配置文件vi /usr/local/frp/frps.ini 参考frps_full.ini,将服务端配置文件(frps.ini)修改为如下内容[common] bind_addr = 0.0.0.0 bind_port = 7000 token = TOKEN_INFO # udp port to help make udp hole to penetrate nat bind_udp_port = 7001 # if you want to support virtual host, you must set the http port for listening (optional) # Note: http port and https port can be same with bind_port vhost_http_port = 80 vhost_https_port = 443 # console or real logFile path like ./frps.log log_file = ./frps.log # set dashboard_addr and dashboard_port to view dashboard of frps # dashboard_addr's default value is same with bind_addr # dashboard is available only if dashboard_port is set dashboard_addr = 0.0.0.0 dashboard_port = 7500 # dashboard user and passwd for basic auth protect dashboard_user = admin dashboard_pwd = admin # dashboard TLS mode dashboard_tls_mode = false # authentication_method specifies what authentication method to use authenticate frpc with frps. # If "token" is specified - token will be read into login message. # If "oidc" is specified - OIDC (Open ID Connect) token will be issued using OIDC settings. By default, this value is "token". authentication_method = token # if subdomain_host is not empty, you can set subdomain when type is http or https in frpc's configure file # when subdomain is test, the host used by routing is test.frps.com subdomain_host = lan.dev.trswcm.com自启动添加自启动文件vi /etc/systemd/system/frps.service输入如下内容:[Unit] Description=Frp Server Service After=network.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini [Install] WantedBy=multi-user.target添加可执行权限chmod +x /etc/systemd/system/frps.service注册服务systemctl enable frps.service当出现如下提示信息后表示注册成功 [root@VM-0-9-centos systemd]# systemctl enable frps.service Created symlink from /etc/systemd/system/multi-user.target.wants/frps.service to /etc/systemd/system/frps.service.启动服务systemctl daemon-reload systemctl start frps启动过程有可能会报错,报错的话,请根据错误提示进行相应调整查看服务状态systemctl status frps出现如下截图所示信息则表示已启动成功:推荐另一种简单的docker-compose 的方式:‵‵‵ yamlversion: '3.3'services:frps: restart: always network_mode: host volumes: - './frps.ini:/etc/frp/frps.ini' container_name: frps image: snowdreamtech/frps
2023年05月14日
46 阅读
0 评论
0 点赞
2023-03-15
峰终定律
概述峰终定律是指人们对一件事的印象,往往只能记住两个部分。一个是过程中的最强体验,峰;一个是最后的体验,终。过程中好与不好的其他体验对记忆差不多没有影响。一、峰终定律的概念诺贝尔奖得主,心理学家DanielKahneman,经过深入研究,发现对体验的记忆由两个因素决定:高峰(无论是正向的还是负向的)时与结束时的感觉,这就是峰终定律(Peak-EndRule)。这条定律基于潜意识总结体验的特点:对一项事物的体验之后,所能记住的就只是在峰与终时的体验,而在过程中好与不好体验的比重、好与不好体验的时间长短,对记忆差不多没有影响。而这里的“峰”与“终”其实这就是所谓的“关键时刻MOT”,MOT(MomentofTruth)是服务界最具震撼力与影响力的管理概念与行为模式。人们主要根据他们在高峰时期(即最紧张的时刻)感受到的体验来判断体验,而不是基于每个时刻的总和或平均体验。二、峰终定律的体验心理学家卡纳曼付钱让受试者亲自体验A和B,然后问他们愿意再接受哪一种体验:A 把手放在冰冷刺骨的水里60秒。B 把手放在冰冷刺骨的水里90秒,前60秒水温不变,后30秒温度慢慢上升,虽然水依然很冰,但至少比刚才好一点。所有人都会觉得选项A比较好,因为不愉快的体验少了30秒,没有人会喜欢在不愉快的体验之后再追加其他不愉快的体验。不过实际情况并非如此。出乎意料的是,80%以上的人选择了时间比较长的B,为什么会出现这种结果呢?只有亲身体验过喜悦和痛苦之后,人们才能对其作出适合自己感受的衡量。在事前预测阶段,人们的心理认知未必符合实际感受情况。从客观角度来看,选项B应该比较痛苦,所以大家倾向于选择痛苦看起来比较少的选项A。可是在实际体验过A和B以后,人们反而会选择感受和记忆相对比较美好的B。卡纳曼经过深入研究,发现人的记忆不会以同等标准衡量所有事物,而会牵涉到与这些事物有关的复杂情绪。衡量某种体验时,人们容易忽略该体验持续的整体印象,而经常根据高峰(无论是正向的还是负向的)时和结束时的感觉作出判断。简言之,我们在实际体验之前,会选择痛苦比较少的选项,而亲身体验之后,即使痛苦时间比较长,也会选择记忆印象比较好的选项。三、峰终定律的应用任何消费者互动中的负面事件都可以通过建立牢固的积极高峰和结束点来抵消。 这可以通过演奏顾客喜欢的音乐,赠送免费样品,或者让店员在顾客离开时为顾客保持门而实现。 正如Scott Stratten所建议的那样,“一位真正优秀的销售人员可以帮助交流,消除一路上的负面经历。”排长队排队,更衣室里的糟糕音乐被遗忘了。宜家的购物路线是按照“峰终定律”设计。虽然在宜家购物有一些不好的体验,比如“地形”复杂,哪怕只买一件家具也需要走完整个商场,比如店员很少,找不到帮助,比如要自己从货架上搬货物,要排长队结账等等等等。但是它的峰终体验是好的,它的“峰”就是过程中的小惊喜,比如便宜又好用的挂钟,好看的羊毛毯以及著名的瑞典肉丸;它的“终”是出口处 1 元钱的冰淇淋!如果没有出口处 1 元钱的冰淇淋,宜家的“终”体验可能会很差。所以,1 元钱的甜筒看似赔本,却为宜家带来了极佳的“终”体验,成为人们记住宜家的一个标记。当人们再回忆起宜家的购物之旅时,会觉得整体行程都非常棒。客户/合作伙伴来拜访,不管过程如何,在客户/合作伙伴离开的时候,一定送客户/合作伙伴到门口或者电梯间,并在电梯门关上前的瞬间,给客户/合作伙伴一个灿烂的笑容。
2023年03月15日
13 阅读
0 评论
0 点赞
2022-09-15
思源笔记docker私有化部署及使用体验分享
说明考虑到网络问题、数据隐私和安全性,很多人都无法放心将所有笔记保存在 Notion、Wolai 这类纯在线服务上,一旦服务变卦 (比如收费、倒闭等) 都会很被动。所以,如果有一款既拥有各种先进特性,还能自建服务器的开源笔记软件,那就非常完美了!而它就是思源笔记以下是思源笔记官网的介绍,着实让人心动:部署官网提供 Docker 方式,让私有化部署便捷了不少。只需要两条命令即可:# 拉取镜像 docker pull b3log/siyuan # docker 运行 docker run --name siyuan -it -d --restart=always -v /data/siyuan/workspace:/siyuan/workspace -p 6806:6806 -u $(id -u):$(id -g) b3log/siyuan --workspace=/siyuan/workspace或使用 docker-compose 方式部署:services: siyuannote: image: b3log/siyuan container_name: siyuannote privileged: true restart: always # 可修改下方的xxxxxx为自己的访问授权码 command: ['--workspace=/siyuan/workspace/', '--accessAuthCode=xxxxxx'] user: '1000:1000' ports: - 6806:6806 volumes: - ./data:/siyuan/workspace environment: # A list of time zone identifiers can be found at https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - TZ=Asia/Shanghai注意: 镜像中是使用默认创建的普通用户 siyuan(uid 1000/gid 1000)来启动内核进程的,所以在宿主机创建工作空间文件夹时请注意设置该文件夹所属用户组:chown -R 1000:1000 ./data,命令行启动容器时需要带参数 -u 1000:1000。配置 nginx 对外提供服务我使用的腾讯云的服务器,将思源笔记使用docker 运行后,通常使用 nginx 代理对外提供应用服务。nginx 代理配置信息如下server { listen 80; server_name siyuannote.work.zhuzhilong.com; index index.html index.htm default.htm default.html; root /www/wwwroot/siyuannote.work.zhuzhilong.com; location / { proxy_pass http://10.0.12.15:6806; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; add_header X-Cache $upstream_cache_status; #Set Nginx Cache add_header Cache-Control no-cache; } access_log /www/wwwlogs/siyuannote.work.zhuzhilong.com.log; error_log /www/wwwlogs/siyuannote.work.zhuzhilong.com.error.log; }配制好后,重启 nginx 服务即可使用我们nginx配置的域名(siyuannote.work.zhuzhilong.com)访问了。初体验国际化初次访问的时候,默认是英文版的,可以按Alt + P,在打开的对话框中,选择 Appearance -> Language 中选择 简体中文:使用体验Block编辑思源笔记在使用体验上,较常规markdown编辑器,一大特色就是Block编辑模式,按下 /后可快速使用内置 20+ 种类型的块元素和 10+ 种行级元素。表格排版对于一些结构化的数据,难免会使用表格进行布局,而常规的markdown 在使用表格时异常难使用,思源笔记提供右键方式操作表格,也还算灵活:粘贴 Markdown初次使用的时候,直接把 markdown 内容在编辑器中Ctrl + V 粘贴,发现直接变成代码块了(2024-06-28更新:该问题已在试用的最新版本(版本号: v3.0.17)修复)。感觉有些不习惯,这一点语雀做得最好。在快捷键中查看了下 粘贴为纯文本方式 ,可以使用 Ctrl + Shift + V。从快捷键配置界面可以看出思源笔记的快捷键还是很丰富的,而且可以自定义。粘贴剪贴板中的图片经验证可直接粘贴剪贴板中的截图图片上传到服务器中,图片上传后持久化存储在服务器思源笔记工作目录的assets目录中。没有看到可以配置图床的地方。安全配置思源笔记部署后默认是不需要密码即可访问的,我们私有化部署更多的是要控制只有我们自己能访问。可在配置界面的 关于 -> 访问授权码 中 设置授权码 (2024-06-28更新:在试用的最新版本(版本号: v3.0.17)已改为在部署时指定访问授权码,界面中不再提供配置入口):配置后将只能输入授权码解锁后才可访问:功能扩展思源笔记提供「集市」模块,可在线下载主题、模板、图标、模板、挂件,初步使用感觉还是蛮方便的。插件机制给思源笔记扩展了无限可能,还有很多功能可以在后续的使用中逐步体验。尾声Typora 开启强制收费模式后,有短暂的使用过 Mark Text,但是发现 Mark Text 在打开较大 Markdown 文件时比较卡顿。偶然在公众号中看到推荐的思源笔记,通过官网了解后,便有了试用的冲动。使用下来,感觉可以作为后续的主力 Markdown 编辑器使用。Links官网:https://b3log.org/siyuan/思源笔记Docker镜像:https://hub.docker.com/r/b3log/siyuan
2022年09月15日
2,421 阅读
0 评论
0 点赞
2022-08-06
Keyviz – 开源按键可视化工具:实时显示键盘按键[Windows]
介绍Keyviz 是一款开源、免费的按键可视化工具,它可以实时显示用户当前按下的按键,可自定义显示按键风格、样式,非常适合录屏、演示等场合使用。其可定制性让你能制作出任意风格的按键风格:使用很简单,在设置界面的 Style 里选中一个喜欢的、独特的键盘样式以及位置,对于很多截图、录屏、直播用户,甚至可以作为个人标识使用:还可以设置显示全部按键,或者仅显示快捷键,比如 Ctrl + C,但不显示 Shift + 1、A、B、C 等按键。最重要的是宣传图做的好看,那么用户将来截图录屏也会很漂亮。链接官网:https://kutt.appinn.net/UPg2QUGithub:https://github.com/mulaRahul/keyviz
2022年08月06日
313 阅读
0 评论
0 点赞
2022-05-28
微软拼音输入法快速当前时间
微软拼音输入法默认可以使用 rq 快速输入 2022年5月28日 和 使用 sj 快速输入 16点20分,可是在写代码过程中我们常使用 yyyy-MM-dd HH:mm:ss 格式的当前日期数据。经过简单搜索后,可以通过添加自定义词库的方式实现,具体操作步骤见下图:最核心的是短语中输入如下数据:%yyyy%-%MM%-%dd% %HH%:%mm%:%ss%
2022年05月28日
33 阅读
0 评论
0 点赞
2022-05-13
Android互动直播APP开发入门-学习笔记
链接:https://www.imooc.com/learn/923慕课网上的免费视频,绝对的良心之作,视频录制于2017年左右,虽说是五六年前的课程了,但是在直播大行其道的今天,相关的技术及观点依然不过时直播现状直播流程直播流程之采集直播流程之前处理直播流程之编码直播流程之推流与优化直播流程之服务端直播流程之客户端直播流程之交互系统交互方式:聊天、礼物、连麦、点赞直播流程-工具直播SDK的对比
2022年05月13日
54 阅读
0 评论
0 点赞
2022-05-07
易读错英语单词记录
整理我个人常读错的英语单词static发音:['stætɪk]链接:https://www.iciba.com/word?w=static释义:静态的;静止的;稳定的;静力的;静电的静电;静电干扰deprecated英[ˈdeprəkeɪtɪd]美[ 'dɛprə,ketɪd]链接:http://www.iciba.com/word?w=deprecated释义:不赞成,反对( deprecate的过去式和过去分词 )encrypt英[ɪnˈkrɪpt]美[ɛnkrɪpt]链接:http://www.iciba.com/word?w=encrypt释义:v.加密,将…译成密码vt.& vi. 把…加密(或编码),将…译成密码record英[ˈrekɔːd]美[ˈrekərd]链接:http://www.iciba.com/word?w=record释义n.记录,记载; 唱片; (体育运动或活动的)纪录; 履历; 案底v.记录;记载; 录制; 标明,显示adj.创纪录的parameter英[pəˈræmɪtə(r)]美[pəˈræmɪtər]链接:http://www.iciba.com/word?w=parameter释义n.[数]参数; <物><数>参量; 限制因素; 决定因素execute英[ˈeksɪkjuːt]美[ˈeksɪkjuːt]链接:http://www.iciba.com/word?w=execute释义v.处死; 实施; 完成; 制作decimal英[ˈdesɪml]美[ˈdesɪml]链接:http://www.iciba.com/word?w=decimal释义adj.十进位的; 小数的n.小数unique英[juˈniːk]美[juˈniːk]链接:http://www.iciba.com/word?w=unique释义adj.唯一的; 独特的; 特有的input英[ˈɪnpʊt]美[ˈɪnpʊt]链接:http://www.iciba.com/word?w=input释义n.输入,投入; 输入电路; <电>输入端; 输入的数据vt.把…输入电脑; 自 输入; 输入,给料
2022年05月07日
23 阅读
0 评论
0 点赞
2022-05-05
UI设计-AI基础-学习笔记
以下仅为学习过程中的简单记录图标的定义分类与应用场景线性![线性图表标(/usr/uploads/2022/05/2214274233.png)面性线性填充扁平图标通过色块构成图标,没有渐变、投影等效果手绘图标写实图标图标绘制的标准化流程设计流程确定主题风格 --> 关联性 --> 切入点(受众、行业) --> 草稿(大致形状构想)设计过程中的注意点结构造型:一致性栅格线细节处理色彩搭配后续输出包装总结图标结构设计之布尔运算可尝试使用布尔运算方式绘制手工如下图标:阵列复制技巧先使用 Ctrl+T 自由切换,按住Alt键可结合鼠标移动中心点,对图形进行调整(如位置、大小、角度等)后,可使用 Ctrl+Alt+Shift+T 快速复制可尝试使用阵列复制的方式绘制如下图标:圆角半径JS脚本插件Corner Editor圆角插件,下载地址:Corner Editor.zip下载后,解压将jsx文件拷贝到PS安装目录下的 Presets 目录,重启应用即可通过 文件 -> 脚本 -> Corner Editor 打开插件
2022年05月05日
12 阅读
0 评论
0 点赞
2022-04-07
并行计算基础知识-学习笔记
为什么会有并行计算?并行计算的必要性,现实世界计算需求与日俱增,对工期、规模有非常大的要求,并行计算可以非常好的提供计算能力汽车制造。设计制造领域,用于模拟分子模拟。微观领域不好现实观察石油勘探。通过数据推演,大概模拟地下储存情况数学建模。股市预测等处理器发展趋势-并行化功耗墙现代计算机体系架构下的并行化体系架构选择、优化成本(制造与功耗)与性能指令级并行(ILP)流水线(Pipelining)多指令发射乱序执行向量化(SIMD)单条指令执行能够同时处理多个数据片多线程(MIMD)多个程序实例能同时运行多核CPU发展架构的巨大转变并行化线程与进程线程与进程是抽象的概念,对应的物理概念是CPU核心每个线程或进程都至少对应一个CPU物理核心进程是 资源分配 的最小单位线程是 CPU调度 的最小单位线程比进程粒度更小一个进程可以拥有多个线程举例假设要吃完一盆米饭,多进程是每人一个碗 一起吃这盆米饭,多线程相当于多个人共用一个碗起吃这盆米饭,多线程 相当于多个人 共用一个碗 一起吃这盆米饭多进程时,碗(进程)和碗之间是独立的、互不影响的多线程时,每个人共享个碗的资源看起来多进程永远好于多线程但是如果加上这样的条件每个人穿不同颜色的衣服,米饭也分不同的种类,大米、小米、紫米....,规定什么颜色的衣服只能吃什么颜色米,但是盛饭的时候不知道盛到碗里的是什么米需要盛上来之后,各个颜色的人、碗互相沟通归类数据导致:人越多、碗越多,花在沟通上的时间越长,干正事吃饭的时间越短结论:现实情况并不一定多进程是永远好于多线程的,有的时候需要将多进程和多线程结合起来使用。多进程:进程和进程之间是互相独立的多线程:线程和线程之间是共享一个进程的资源多线程程序OpenMP、pthreads、TBB......已被各编译器按收作为基本编程规则,常用编译器都支持多进程程序使用MPI技术编程MPI本身是开放的编程接口,各厂商有自己的版本Intel MPI (白建超算推荐,无论什么程序优先使用,除非明确无法使月)天河MPICH3 (广州/长沙超算推荐)OpenMPI (Intel MPI不可用时备选)MPICH (禁用,无法使用高速网)有些程序只有多进程并行MS、OpenFOAM有些程序只有多线程并行Gaussian有些程序支持多进程和多线程混合并行VASP、 WRF......除只支持多线程的程序及用户特殊要求外,给用户测试交付时默认纯多进程并行CPU利用率运行程序占用的CPU资源的比率操作系统级别统计,分为用户态和内核态直观反映CPU的繁忙程度内存使用率使用的内存超过节点内存,作业会报错退出网络高速网Infiniband/Ominipath/天河自建超算都使用Infiniband高速网,速度相比以太网提升10倍以上编译和安装软件注意MPI环境使用
2022年04月07日
26 阅读
0 评论
0 点赞
2022-04-07
职场人际沟通必备技能-学习笔记
讲师:勾俊伟在职场如鱼得水,你需要两个必备要素:①、技术足够专业。90%②、懂得如何与大多数人相处愉快。10%如何用一张表,从根本上解决不开心工作不爽问题拆解工作问题分类拆解表一味的抱怨从本质上解决不了问题领导沟通术 ● 怎样正确地汇报工作?领导沟通汇报一件事情进行中,还没做完的时候,要多说结果,少说过程请示发生在事情开始之前或事情进行中,征询下一步,在请示前准备多套方案总结一般用于结束的时候,一般多说过程,少说结果,尤其是在项目做得好的时候,总结为什么你这个事情能做得好及为什么做得不好汇报工作注意两点:①、开门见山②、多说结果汇报工作:开门见山,我要沟通以下问题:汇报时多说结果,少说过程领导沟通术 ● 如何向领导做工作总结?准备工作:受众分析:给谁总结?选题拟定:总结什么?横向调研:类似的?受众分析给谁看? 领导风格决定总结风格选题拟定总结的内容主要包括:业绩、计划、心得、建议、分析、调研、资源横向调研领导沟通术 ● 怎样向领导请示工作?{card-describe title="请示工作注意两点"}一、带着方案二、注意句式{/card-describe}解决方案请求句式领导沟通术 ● 怎样向老板提出加薪?奖金:奖金不是福利,不可能人人都有,需要超越公司对你的期待才能获得。加薪:加工资除了是应对物价因素外,重要的是公司对你的岗位有了新的更高要求。红包:公司取得特别成绩的年份才会有的,原则是人人有份,根据你在阿里贡献的年份多久而定。我们鼓励员工在公司里长期发展。谈加薪的步骤如何和平级的同事沟通同事沟通 ● 如何处理同事越级安排工作?方法一(友好型):时间冲突,友好回绝,优先完成领导安排的任务方法二:时间允许,请示领导方法三:事后补救,汇报完成同事沟通 ● 怎样高效地进行跨部门沟通?步骤一:日常沟通。预热步骤二:共赢方案。提前梳理方案,最好以邮件或纸质的方式,清晰说明步骤三:沟通准备。梳理话术,见面扼要,说明重点,让对方便于理解、接受步骤四:工作小组。可以拉工作群组步骤五:留面子效应。算是小技巧,案例:借钱、先难度大,然后降低难度同事沟通 ● 没有太多共同语言,怎么与同事聊天?关系一般,没有共同语言同事太爱装x,怎么相处呢? 同事没营养的碎碎念,越来越受不了肿么办? 公司里领导眼中的红人,不想和他说话但是又得罪不起,怎么办? 没有共同语言的聊天技巧:技巧一:验证而非强加 禁忌: 推荐:技巧二:语言重新定义技巧三:建议顺水推舟技巧四:识别话中的话新工作 ● 如何迅速扮好你在团队中的角色?根据岗位角色定位储备型:人才储备,业务暂时不需要。全面学习、听指挥优化型:人员扩编,业务能力提升。寻求业务超越替代型:刚性需求。迅速掌握专项技能新工作 ● 新人掌握6个细节,迅速融入环境相对于叽叽喳喳一直说、招人烦的类型,大家更加喜欢安静一-点、有能力、贴心的同事。1、说话前准备:①、内容简化,防止别人听不出重点②、语气提前准备。2、就算不发表自己观点,也需要予以语言或表情的回应3、人和小猫一样,喂着喂着就出感情了4、好为人师:适当请教,但注意不是太难也不体现你无知。5、眼神与笑容(注意诚意)6、个人素质(招呼、点头、告别、椅子归位、顺手帮忙)
2022年04月07日
100 阅读
0 评论
0 点赞
2022-04-01
Pointer-Focus:一款功能强大的教学、录屏辅助软件
现在这个时代电脑大家应该都有,你肯定有过给别人展示或者演示自己的操作,尤其是疫情期间会用得很多。例如上网课讲解题、腾讯会议开会、线上答辩什么的。为了表达更清晰,我们就很需要光标高亮、显示按键、聚光灯、画笔、放大镜等功能。Pointer-FocusPointerFocus 是一款非常出名的教学辅助工具,软件功能效果生动,助你讲解更加清晰,一套下来轻松不少。专为想要突出鼠标指针的演示者、培训师和教师而设计。该应用程序提供了一些易于使用的功能,例如高亮光标、鼠标聚光灯、击键可视化、放大镜和屏幕注释。在 PointerFocus 的帮助下,您可以让观众专注于感兴趣的领域,并使您的演示更易于理解。软件官网:https://www.pointerfocus.com/资金允许的情况推荐使用正版,正版官网加个为 $12.5谁需要 PointerFocus?老师演讲者演示制造商培训师PointerFocus 功能用彩色圆圈突出显示鼠标指针当您单击鼠标按钮时,环形动画可以向您的观众展示您的鼠标单击动作。可以高亮显示光标、显示圆圈、显示单击操作文本,还可以自定义大小和颜色。每次点击都会有特效,这样可以让人更加集中鼠标位置。启动热键是 F8,这个可以记一下。击键可视化可以向您的观众展示您刚刚按下了哪些快捷键。此功能可以帮助您使演示更易于理解。有时候你需要进行快捷键时,这个功能就非常恰到好处了!只要按下Ctrl、Shift、Alt、win、insert键开头,显示功能就会自动弹出来。启动热键是 F9,这个可以记一下。鼠标聚光灯当您选择此工具时,它将使屏幕变暗并在鼠标指针周围放置一个“聚光灯”。这可以将听众的注意力集中在感兴趣的领域。这可是个好东西,可以突出某些重要部分进行讲解,可以叫做“高光时刻”。图片启动热键是 F10,这个可以记一下。屏幕注释笔这个是必备的功能了,需要表示什么直接写,直接画。启动热键是F11,这个可以记一下。支持画笔、线条、箭头、矩形、椭圆,还可以更改画笔颜色和大小。屏幕放大镜当您选择此工具时,您可以在屏幕上显示任何部分的观众详细信息。这个和高光有一丁点像,但又不是同一个东西,可以在电脑局部放大。启动热键是F12,这个可以记一下。安卓远程控制您可以使用 Android App 来远程控制鼠标操作和 PointerFocus 功能。安卓客户端软件已打包到本文底部的下载压缩包了。必看安装教程下载地址:PointerFocus v2.4.zip软件安装完成后需要替换补丁和填写注册码直接复制补丁到安装目录下进行替换
2022年04月01日
615 阅读
0 评论
1 点赞
1
2