树莓派搭建个人应用服务器

前言

上一篇树莓派也跑Docker和.NET Core有对树莓派做简单的介绍。包括系统的烧录、基本的设置、docker的安装、.net core的运行等。有人问我是不是一定要跑docker,答案肯定是否定的。我之所以用docker,完全是因为它的便利(带环境)、对系统无污染和方便系统资源的查看和控制。本篇文章继续分享下我对树莓派的使用。

docker安装

mysql安装

我说在树莓派上跑mysql你还不信。

sudo docker run --restart=always \
-p 3306:3306 \
--name mysql \
-v $PWD/mysql/conf:/etc/mysql/conf.d \
-v $PWD/mysql/logs:/logs \
-v $PWD/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mysqlpassword \
-d hypriot/rpi-mysql:5.5
--restart=always                   #容器自启动
3306                               #数据库端口
-v $PWD/conf:/etc/mysql/conf.d     #配置文件挂载路径
MYSQL_ROOT_PASSWORD=mysqlpassword  #数据库密码

redis安装

sudo docker run --restart=always --name redis \
-p 6379:6379 \
-v $PWD/redis/data:/data \
-d arm32v7/redis:3.2.10 redis-server --appendonly yess

gogs安装

有了.net core、mysql和redis,如果再能跑一个git服务器那不就吊炸天了。是的,树莓派安装gogs毫无压力。有了自己的代码管理服务器,再也不会因为GitHub访问慢而烦恼了,也不会因为某Git的广告而不爽了。

docker run --restart=always --name=gogs -d -p 122:22 \
-p 1080:3000 \
-v /var/gogs:/data gogs/gogs-rpi

其中1080是浏览器访问端口,你也可以映射到80。122是ssh提交代码的端口。
注意:gogs需要依赖于mysql,第一次启动会引导你填入数据库相关信息。后面如果重启了树莓派,记得先启动mysql,再启动gogs,不然不能正常访问。

内外穿透

上面有了应用,有了数据库,还有了代码管理服务器,可我们树莓派总归是在一个局域网内。离开了这个网络上面说的那些功能好像就没什么用了。那我们有没有办法让我们的树莓派变成真正的服务器呢,答案是肯定的。我相信大家刚接触编程的时候,都幻想过自己写的网站能直接给别人访问。那个时候应该大多折腾过花生壳什么的,那就是个内网穿透的技术。只是别人提供了免费的服务器中转了下,速度也是慢得感人。
今天我们来自己利用frp软件实现内外穿透,当然还是需要服务器的 (没有服务器的同学,可以先借朋友的玩玩)

下载地址(各平台的都有):https://github.com/fatedier/frp/releases
因为我们是树莓派,可以下载最新版 frp_0.29.0_linux_arm.tar.gz(装客户端)和 frp_0.29.0_windows_amd64.zip(windows服务器)或者frp_0.29.0_linux_amd64.tar.gz(linux服务器)

首先把frp_0.29.0_linux_amd64.tar.gz上传到服务器,解压,跳转到目录里,编辑frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000
auto_token = token

然后运行./frps运行,启动服务端监听。

把frp_0.29.0_linux_arm.tar.gz上传到树莓派,解压,跳转到目录里,编辑frpc.ini

[common]
server_addr = 服务器ip
server_port = 7000
auto_token = token

[git]
type = tcp
local_ip = 127.0.0.1
local_port = 122
remote_port = 8000

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 1080
remote_port = 8001

然后运行启动./frpc

然后就可以外网访问了,www.服务器ip:8001 就可以访问git服务器了。
注意:如果是云服务器记得把对应的8000、7000、8001端口加入到安全组里面,不然会被拦截掉。

frp的详细用法请参考:https://www.cnblogs.com/sanduzxcvbnm/category/1171545.html

其他安装

#安装nginx
docker run -d -p 80:80 --name nginx arm32v7/nginx:1.16

#dokcer仪表盘管理
docker run -d -p 9000:9000 --restart=always  -v /var/run/docker.sock:/var/run/docker.sock  --name prtainer-test portainer/portainer:arm

#一些其它树莓派的docker应用
https://hub.docker.com/u/arm32v7/
https://hub.docker.com/u/hypriot?page=1
https://cloud.docker.com/u/bennyzhao/repository/docker/bennyzhao/quartzui

树莓派还能做什么

可以做物联网数据的边缘计算啊,如设备的数据采集、监控预警、数据分析等等。再买点传感器做个简陋版“小爱同学”也不是很难,甚至遥控汽车玩具什么的,能想的到的也没什么是做不到的。

资源消耗截图


24小时不关机,零噪音,一直开心的运行着。

结束

推荐一个开源物联网组件:https://github.com/zhaopeiym/IoTClientdemo下载

 

 

出处:https://www.cnblogs.com/zhaopei/p/11736135.html

posted on   jack_Meng  阅读(820)  评论(0编辑  收藏  举报

编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
历史上的今天:
2020-11-05 如何清爽的安排日常?
2020-11-05 只用 6 个字符,就可以写出任意 JavaScript 代码!---- JSFuck原理解析
2020-11-05 怎么自学 Java ?和盘托出
2019-11-05 树莓派使用root操作图形界面使用自带的文件管理器
2015-11-05 XP系统登录界面,需要手动点击用户帐户后才会出现输入密码的界面
2012-11-05 cognos中的datamanager的安装及配置
2012-11-05 数据仓库之我见

导航

< 2025年2月 >
26 27 28 29 30 31 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 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩