如何在树莓派上搭建一个可以外网访问的博客
前言
前段时间为了学习k8s集群搞了三台树莓派作为服务器,现在空闲了出来。因为它的功耗比较低,所以想着来弄一个web服务器搭一个博客服务。这里有一个需要解决的问题就是我家宽带没有公网地址,所以只能选择内网穿透。我这里选择花生壳,一个月有1G的免费流量。
我的腾讯云服务器还有2年多到期,到时候续费太贵了,可能就不续费了,也可以算做一个未雨绸缪
刻录镜像
我们选择 Raspberry Pi Imager 来进行镜像的刻录。
在这里选择ubuntu镜像
然后选择sd卡烧录
烧录完成后直接安装系统就好了。
安装软件
关闭防火墙#
sudo ufw disable
安装openssh#
sudo apt install openssh-server
安装Docker&Docker-Compose#
从 Docker 官方下载安装脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
然后运行安装脚本:
sudo bash ./get-docker.sh
把当前用户(zhaoshuang)加入到 docker 用户组中,这样就可以不使用 sudo 来操作 docker 命令了:
sudo usermod -G docker -a zhaoshuang
注销当前用户,重新登录就可以使用普通身份直接执行 docker 命令。
配置腾讯镜像源
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
重启docker
sudo systemctl restart docker
安装docker-compose
sduo apt-get install docker-compose
安装数据库
version: '3'
services:
db:
image: postgres:12-alpine
restart: always
ports:
- 5432:5432
volumes:
- ./pg-data:/var/lib/postgresql/data
安装花生壳
# 下载
sudo wget "https://dl-cdn.oray.com/hsk/linux/phddns_5.1.0_rapi_aarch64.deb" -O phddns_5.1.0_rapi_aarch64.deb
# 安装
sudo dpkg -i phddns_5.1.0_rapi_aarch64.deb
执行phddns status
查看
复制SN
码到 http://b.oray.com 通过SN码登录密码为admin
绑定下账号实名认证后进入后台管理
新增一个映射
然后远程登录下
ssh -p port user@域名
然后就可以远程登录了
安装mysql#
docker run --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:5.7
我们可以通过ssh隧道远程连接
测试连接
安装halo&postgresql#
创建docker-compose.yml文件
version: "3"
services:
halo_next:
image: halohub/halo-dev:2.0.0-rc.2
container_name: halo_next
restart: on-failure:3
depends_on:
halo_db:
condition: service_healthy
networks:
halo_network:
volumes:
- ./:/root/.halo2
ports:
- "8090:8090"
environment:
- SPRING_R2DBC_URL=r2dbc:pool:postgresql://halo_db/halo
- SPRING_R2DBC_USERNAME=halo
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
- SPRING_R2DBC_PASSWORD=123456
- SPRING_SQL_INIT_PLATFORM=postgresql
# 外部访问地址,请根据实际需要修改
- HALO_EXTERNAL_URL=http://localhost:8090/
# 初始化的超级管理员用户名
- HALO_SECURITY_INITIALIZER_SUPERADMINUSERNAME=admin
# 初始化的超级管理员密码
- HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=123456
halo_db:
image: postgres:latest
container_name: halo_db
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=123456
- POSTGRES_USER=halo
- POSTGRES_DB=halo
networks:
halo_network:
docker-compose up -d
启动
在花生壳上配置一下映射端口
访问成功
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)