如何在树莓派上搭建一个可以外网访问的博客

前言

前段时间为了学习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 启动

在花生壳上配置一下映射端口

https://395027ui04.goho.co/

访问成功

posted @ 2023-04-03 23:27  loveletters  阅读(187)  评论(0编辑  收藏  举报