小白一个。
年前在老家用的电信网络,安装青龙和portainer以及homeassistant都很顺利。年后回来,重刷了,换了移动网,再装这些镜像,死活都不行,都是拉取错误。换了源也无济于事,根据论坛里@heluofuchen的
这个帖子,药到病除。但是他的代码里少了后半个大括号,需要自己加上。
本来想在他的原帖回复,但是原帖关闭了回复,在这里记录一下,以备自己日后查询。
步骤:
vim /etc/docker/daemon.json #打开或创建配置文件
i #修改配置文件
#输入以下内容
{
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","8.8.4.4"]
}
粘贴后 esc,然后 :wq
systemctl restart docker #最后重启docker
docker镜像拉取错误解决办法
03 八月, 2023
PhotoAlbum相册-简单易用的相册,照片,图片上传系统
简单易用的相册,照片,图片上传系统
使用场景一:
把硬盘挂载,-v /mnt/sda1/pic/
就可以手机随便拍照上传到盒子硬盘上。
使用场景二:
把网盘rclone挂载到主机上,
随时随地拍照上传到网盘。
使用场景三:
把盒子做好外网访问,手机随便拍,秒传回家,不浪费手机空间。
使用场景四:
生产线上技工拍照现场设备,秒传到共享服务器文件夹,上级领导专家随时会诊。
使用前准备
1.首先需要建好上传目的地文件夹
假如你已经有硬盘挂载到了/mnt/sda1:
mkdir -p /mnt/sda1/pic/{随手拍,工作,风景,美女}
假如使用盒子本地emmc空间:
mkdir -p /opt/pic/{随手拍,工作,风景,美女}
假如在海纳思系统里还没安装docker,请先安装:
install-docker.sh
2.把下面的运行代码里的/path/to/folder修改为/mnt/sda1/pic或/opt/pic
运行代码(选一)
docker cli
docker run -d \--name photoalbum \--restart=unless-stopped \-p 8083:8083 \-v /path/to/folder:/app/uploads \slitazcn/photoalbum:latest
docker-compse
version: "2.2"services:photoalbum:container_name: photoalbumimage: slitazcn/photoalbum:latestrestart: unless-stoppedports:- "8083:8083"volumes:- /path/to/folder:/app/uploads
图例

效果

卸载
docker stop photoalbumdocker rm photoalbumdocker rmi slitazcn/photoalbum
Apache Guacamole 网关在电视盒上配置
guacamole 可以支持 RDP、VNC、SSH、Telnet、Kubernetes等协议的网关。
PS:加上内网穿透,可以出门在外利用浏览器或者手机随便控制家中的电脑和盒子了。
guacamole官方网站: https://guacamole.apache.org/
效果展示:

安装脚本(保存文本后缀为.sh 例如guac.sh):
给脚本文件添加权限:chmod a+x guac.sh
用vim打开sh文件:vi guac.sh
修改文件格式::set ff=unix 或 :set fileformat=unix
保存退出:wq
执行:./guac.sh
#!/bin/bash ###################################### ## Guacamole_神雕电视盒子专用脚本 ## ## Gorilla Modified in 2022 ## ## Reproduced Martez Reed ## ###################################### # 定义变量(数据库密码可以自行修改) guac_version=1.4.0 mysql_version=8.0.28 mysql_username=root mysql_password=greenrt # 更新软件列表 sudo apt-get update -y # 安装Make Gcc sudo apt-get install -y make gcc # 安装JRE sudo apt-get -y --force-yes install default-jre # 安装JDK sudo apt-get -y --force-yes install default-jdk # 安装Maven sudo apt-get install -y maven # 安装Tomcat 9 sudo apt-get install -y tomcat9 # 安装避免SSH终端中文乱码 sudo apt-get install -y ttf-wqy-zenhei # 安装依赖包 sudo apt-get install -y libcairo2-dev libjpeg-turbo8-dev libtool-bin libpng-dev libossp-uuid-dev libvncserver-dev freerdp2-dev libssh2-1-dev libssl-dev libpango1.0-dev libwebsockets-dev libtelnet-dev libavformat-dev libswscale-dev libavutil-dev libavcodec-dev libvorbis-dev libpulse-dev libwebp-dev # 下载 Guacamole 客户端 sudo wget https://dlcdn.apache.org/guacamole/$guac_version/binary/guacamole-$guac_version.war # 下载 Guacamole 服务端 sudo wget https://dlcdn.apache.org/guacamole/$guac_version/source/guacamole-server-$guac_version.tar.gz # 解压 guacamole 服务端源码文件 sudo tar -xzf guacamole-server-$guac_version.tar.gz # 将目录更改为源文件 cd guacamole-server-$guac_version/ # guacamole 服务端执行启动 sudo ./configure --with-init-dir=/etc/init.d # guacamole 服务端编译 sudo make # guacamole 服务端安装 sudo make install # 设置guacd开机自启动 sudo update-rc.d guacd defaults # 设置动态链接库 sudo ldconfig # 创建 guacamole 配置目录 sudo mkdir /etc/guacamole # 创建 guacamole.properties 配置文件 sudo cat <<EOF1 > /etc/guacamole/guacamole.properties # Hostname and port of guacamole proxy guacd-hostname: localhost guacd-port: 4822 enable-websocket: true enable-clipboard-integration: true # Auth provider class (authenticates user/pass combination, needed if using the provided login screen) # auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider # basic-user-mapping: /etc/guacamole/user-mapping.xml # 提供身份验证 auth-provider: net.sourceforge.guacamole.net.auth.mysql.MySQLAuthenticationProvider # MySQL 验证方式配置 mysql-hostname: localhost mysql-port: 3306 mysql-database: guacamole mysql-username: guacamole mysql-password: $mysql_password # 更改验证目录用到的配置 # lib-directory: /var/lib/guacamole/classpath EOF1 # 创建 Tomcat9 属性文件 sudo mkdir /usr/share/tomcat9/.guacamole # 为 Tomcat9 创建属性文件的符号链接 sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole # 上移一个目录以复制 guacamole.war 文件 cd .. # 将 guacamole.war 文件复制到 Tomcat 9 webapps 目录内 sudo cp guacamole-$guac_version.war /var/lib/tomcat9/webapps/guacamole.war # 启动 Guacamole (guacd) 服务端 sudo service guacd start # 重启 Tomcat 9 sudo service tomcat9 restart ######################################## # MySQL安装和配置 # ######################################## # 下载 Guacamole MySQL 身份验证文件 sudo wget https://dlcdn.apache.org/guacamole/$guac_version/binary/guacamole-auth-jdbc-$guac_version.tar.gz # 解压 Guacamole MySQL 身份验证文件 sudo tar -xzf guacamole-auth-jdbc-$guac_version.tar.gz # 为 MySQL 身份验证文件创建 Guacamole 下路径目录 sudo mkdir -p /etc/guacamole/extensions/ # 将 Guacamole MySQL 身份验证文件复制到创建的目录 sudo cp guacamole-auth-jdbc-$guac_version/mysql/guacamole-auth-jdbc-mysql-$guac_version.jar /etc/guacamole/extensions/ # 为 MySQL 连接器文件创建 Guacamole 下路径目录 sudo mkdir -p /etc/guacamole/lib/ # 下载 MySQL 连接器 sudo wget http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-$mysql_version.tar.gz # 解压 MySQL 连接器 sudo tar -xzf mysql-connector-java-$mysql_version.tar.gz # 将 MySQL 连接器jar文件复制到 guacamole 下路径目录 sudo cp mysql-connector-java-$mysql_version/mysql-connector-java-$mysql_version.jar /etc/guacamole/lib/ # 提供MySQL root密码以自动安装 sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password $mysql_password" sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $mysql_password" # 安装 MySQL sudo apt-get install -y mysql-server # 创建 MySQL 配置脚本 sudo cat <<EOF2 > guacamolemysql.sql #MySQL Guacamole 脚本 CREATE DATABASE guacamole; CREATE USER 'guacamole'@'localhost' IDENTIFIED BY '$mysql_password'; GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole.* TO 'guacamole'@'localhost'; FLUSH PRIVILEGES; quit EOF2 # 创建 Guacamole 数据库和用户 sudo mysql -u root --password=$mysql_password < guacamolemysql.sql # 将目录更改为 mysql-auth 目录 cd guacamole-auth-jdbc-$guac_version/mysql # 运行创建的 MySQL 配置脚本以创建数据库和用户 sudo cat schema/*.sql | mysql -u root --password=$mysql_password guacamole # 重启tomcat9 sudo service tomcat9 restart # 重启 guacd sudo service guacd restart# 安装完毕后手动清理一下下载在 /root 目录下的文件。
初始登陆的地址是:http://盒子的IP地址:8080/guacamole/
可以修改tomcat默认WEB目录vi /etc/tomcat9/server.xml
在<hosts> ......</hosts>中间添加一行<Context path="" docBase="/var/lib/tomcat9/webapps/guacamole" debug="0" reloadable="true"/>
# 重启tomcat9sudo service tomcat9 restart
登陆地址:http://盒子的IP地址:8080/
登陆账号:guacadmin
初始密码是:guacadmin
Hinas从USB启动系统教程(可备份恢复)
原理为修改启动参数以U盘作为引导系统,通过自定义引导脚本来实现重定向系统根目录至USB设备。
并且支持切换多套配置以及备份和恢复的类似快照功能,并且备份为增量备份,不占用多余空间!
提供懒人刷机包,使用写盘工具或dd命令全盘写入即可(刷机包img包含了三个分区,一定要写入全盘!!!)
命令:
tar xf usb.tar.gz dd if=usb.img of=/dev/sda交流群搜索:xjm
安装教程
1、准备U盘,划分需要的三个分区(用全分区镜像写入U盘/TF,可直接跳到第5步):
boot分区:默认fat32格式,LABEL设为小写boot,用于存放内核及squashfs镜像,文件后缀为".squashfs"
busybox分区:ext4格式,用于存放busybox环境和引导程序
overlay分区:ext4格式,LABEL设为小写overylay,用于存放各个系统的overlay数据,用文件夹区分
2、准备若干 squashfs 镜像,可先分别挂载各系统img,再使用命令 "mksquashfs <你挂载img的目录> <系统名称>.squashfs -comp xz" 生成相应squashfs。
3、把内核文件 hi_kernel.bin 和 准备好的各个 <系统文件>.squashfs 放入boot分区。
4、准备 boot.cfg 配置文件放入fat32分区,内容为<系统名称>,可使用命令生成: echo "<系统名称>" > boot.cfg。如在windows下编辑必须在名称后换行并使用unix换行符。
5、接好TTL,并在fastboot阶段发送CTRL+C中断启动进程。
6、设置新的启动参数并保存:
setenv bootargs console=ttyAMA0,115200 root=/dev/sda2 init=/preinit rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),1M(bootargs),10M(kernel),256M(rootfs),700M(backup),-(ubuntu) setenv bootcmd 'usb start;fatload usb 0:1 0x1FFFFC0 hi_kernel.bin;bootm 0x1FFFFC0' saveenv7、插入U盘并重新启动
切换系统方法:
通过执行命令 echo "<系统名称>" > /boot/boot.cfg 把想在下次重启后进入的系统名称写入boot.cfg即可
恢复到系统squashfs镜像的默认状态(清空系统的overylay数据):
执行命令 touch /boot/clear_overlay 即可在下次重启时清空 boot.cfg 对应系统的overylay数据
同一squashfs镜像启用不同overylay数据分支:
启用不同overylay数据分支可实现同一套底层系统,不同的版本配置,比如一个分支装A软件,一个分支装B软件等等。
把 /boot/boot.cfg 中的"<系统名称>" 更改为 "<系统名称>.<分支名称>",比如"ubuntu.test",重启后会进入全新的overylay数据
分支可进行快照备份和恢复:
快照的原理为依靠overlay可多层文件夹叠加的功能,把多个不同时间备份后形成的数据文件夹进行依次叠加,数据以上层文件夹为准。
因此可以把旧备份的文件夹叠到suqashfs镜像上作为中间层,新的文件夹作为当前的可写数据,实现无需复制数据就可备份的效果,理论上可不停套娃下去,但是考虑到io性能,不建议快照太多。
默认的全分区镜像的boot分区提供了一键脚本 snapshot-tools.sh,用法如下:
Usage: /boot/snapshot-tools.sh command [option] Valid command are: backup [snapshot name] make a snapshot in the moment overlay ( need reboot ) list list all snapshot recover [snapshot name] recover backup to lastest snapshot or specified ( need reboot )备份命令:
/boot/snapshot-tools.sh backup [快照名称]不提供快照名称则使用当前时间戳作为名称
查看可进行恢复的备份名称:
/boot/snapshot-tools.sh list 列出当前分支可进行恢复的快照名称
恢复命令:
/boot/snapshot-tools.sh recover [快照名称] 不提供快照名称则恢复到最近的一个快照
执行恢复快照命令后当前的数据会备份当前时间戳的新文件夹,确定无需保留后可在/mnt/overlay/<系统名称> 下自行删除
如要恢复到原版NAS启动,恢复启动参数即可
setenv bootargs console=ttyAMA0,115200 root=/dev/mmcblk0p6 rootfstype=ext4 rootwait blkdevparts=mmcblk0:1M(boot),1M(bootargs),10M(kernel),256M(rootfs),700M(backup),-(ubuntu) setenv bootcmd 'mmc read 0 0x1FFFFC0 0x1000 0x5000;bootm 0x1FFFFC0' saveenv reset已制作好三分区的img镜像下载:
链接:https://pan.baidu.com/s/1-pb1j9wPxJ5A1VR8f3O0eQ
提取码:yfkn
(默认使用mv100的内核,其他机型自行替换fat32分区的内核文件hi_kernel.bin测试)
(如需替换系统squashfs请按照安装教程方法制作)
transmisson下载器修改密码教程
海纳思系统默认BT下载器transmission管理页面是需要密码登陆的。
1.是考虑跟原版一致
2.是考虑下载需要使用者确认
默认用户名和密码是 admin admin
使用者当然需要去修改密码来使用的。
在使用指南里已经详细给出了怎么修改的办法,这里也继续延申一下。
如果你需要修改用户名和密码
第一步:修改前必须停止 Transmission 服务,否则修改无效。
/etc/init.d/transmission-daemon stop第二步:编辑配置文件: (请务必用vi编辑或者高级文本编辑器修改json格式的文档)
vi /etc/transmission-daemon/settings.json找到以下内容:"rpc-password": "{1e82c73f8f4b5c3ba4e2d94227fc19dc3442abf7nSWuZtsb","rpc-port": 9091,"rpc-url": "/transmission/","rpc-username": "admin",
需要修改 password、username 后面 "" 内的内容即可
比如修改为:用户名 ecoo 密码 123123
"rpc-password": "123123","rpc-port": 9091,"rpc-url": "/transmission/","rpc-username": "ecoo",
第三步: 开启 Transmission 服务
/etc/init.d/transmission-daemon start如果你需要取消密码登录:
那么就需要:
"rpc-authentication-required": true,改为:"rpc-authentication-required": false,如果你修改固定下载目录到硬盘挂载位置
将
"download-dir": "/home/ubuntu/downloads",修改为"download-dir": "/mnt/sda1/downloads",另一种修改办法:
我在这里贴出原始配置json内容,
可自行制作一个json格式的文本替换掉
/etc/transmission-daemon/settings.json流程就不用再细说了,停止服务,替换配置,启动服务。即可。{"blocklist-enabled": 0,"download-dir": "\/home\/ubuntu\/downloads","download-limit": 100,"download-limit-enabled": 0,"encryption": 1,"max-peers-global": 200,"peer-port": 51413,"pex-enabled": 1,"port-forwarding-enabled": 0,"rpc-authentication-required": 1,"rpc-password": "admin","rpc-port": 9091,"rpc-username": "admin","rpc-whitelist": "*","upload-limit": 100,"upload-limit-enabled": 0}
同理,修改固定的下载目录到硬盘 /mnt/sda1/downloads 位置
只需要将默认的
"download-dir": "\/home\/ubuntu\/downloads",修改为:"download-dir": "\/mnt\/sda1\/downloads",同理,取消密码,则
将
"rpc-authentication-required": 1,修改为"rpc-authentication-required": 0,祝你们玩机愉快!海纳思系统,我是小盒子,也是大世界!