mac 篇一:macOS server + Docker,我的家庭服务解决方案

2020-01-31 18:24:53 89点赞 689收藏 41评论


前言

这是我第一篇张大妈文章,其实逛张大妈很久了,数字id也是前几天刚刚换掉。日常关注的内容从各位大佬的家庭网络布线、捡垃圾到NAS。
整个张大妈的数码板块,或者说事家庭服务器板块的内容更多是在NAS平台上,而我作为一个10多年的苹果脑残粉,更加喜欢让家里的环境全部处于Apple的系统下。张大妈上面macOS相关的内容很少,所以我打算乘着最近过年这段时间,写一些关于macOS的家庭服务类文章。
目前macOS上运行的这些服务,前前后后增减、学习研究可能花了两年时间。所以不可能在一篇文章中写完,这篇文章仅提供部分内容,如果各位有兴趣,可以根据目录点播,我来写。
因为内容较多,会有较多外链教程。我可以确保我所提供的外链内容绝对是最优质的文档,大大减少各位的搜索工作量

目录

先交代一下背景,我的家庭服务跑在一台ThinkPad X230的黑苹果上面,经过一次外置硬盘损坏数据丢失之后,把外置的orico单盘硬盘盒替换成了铁马威的双盘RAID1。

  • DDNS(小米路由器

  • 黑苹果

  • macOS server上的配置

    • OpenDirectory(域控)

    • DNS(自有域名解析)

    • TimeMachine

    • WIKI(协作办公,家庭用其实没啥意义,特别是老婆不配合使用)

    • 文件共享(基于VPN的内网文件共享)

    • VPN(用于外网访问内容)

    • 邮件服务(定期得去提交反垃圾邮件)

    • 日历服务

    • 通讯录服务

    • CA证书管理

    • MDM描述文件管理(iOS,macOS设备管控)

  • Home Assistant
    (Home Assistant的情况比较特殊,因为mac下的docker网络模式无法映射所有端口,智能单独布置)

  • Plex

  • Docker上的配置
    (NAS上的Docker相对更易用一些)

    • NVR-Zoneminder(找了很久的监控录像服务)

    • Speedtest(内网测速)

    • Tiny Rss(订阅)

    • Akaunting(财务软件)

    • Portainer(Docker面板)

    • Tracks(web版GTD工具,ominifocus太贵了,tracks说实话界面不是很友好)

    • Transmission

    • Leanote

    • Openproject(看了一下,非常好,功能非常全的项目管理工具了)

    • Searx(说实话,没啥卵用,中文支持不好,纯属玩)

    • Erpnext(目前从事企业管理咨询,偶尔需要了解erp的运作)

    • NextCloud(配置了,但是不怎么用)

    • Youtuble DL(效果不佳)

    • Mindmaps(效果不佳)

    • Calibre(图书)
      屏幕快照 2020-01-30 上午1.29.12.png屏幕快照 2020-01-30 上午1.29.12.png
      portainerportainer

      DDNS

      域名采购

      采购域名,这个其实不用多说什么,因为是home server,受到了运营商的限制,没必要采购太好的一级域名,最简单的是,注册⼀一个花⽣生壳帐号,5块钱终⽣的一个⼆级域名,或者买一个符合你心意的域名也可以。
      小米路由器设置
      Screen Shot 2020-01-31 at 2.02.53 PMScreen Shot 2020-01-31 at 2.02.53 PM
      Screen Shot 2020-01-31 at 2.03.00 PMScreen Shot 2020-01-31 at 2.03.00 PM
      当显示连接正常的时候,你可以去花⽣壳后台看看域名解析是否解析到了你的外⽹IP,如果和路由器器后台一致即可。以后的服务通过端口转发来实现。
      花生壳官方DDNS设置指南

      黑苹果安装

      我的服务器是是多年未升级的黑苹果了10.12(不是太有升级的必要)。现在的hackintosh最新已经可以到macOS 10.15。黑苹果不推荐pcbeta,远景上的内容下载索引都非常费时费力。 黑苹果的安装按照配置五花八门,所以直接推荐最好的安装指南。即使通过google翻译看这篇文章,安装成功所花的时间也远比爬远景来的划算:macOS 10.15安装
      黑苹果配置简单概括
      非常简单,三个步骤:

  • 系统镜像准备(不要去下载远景上那些乱七八糟自己修改的系统了,请使用该链接

  • 使用u盘创建系统安装盘系统盘安装教程 最好使用8gb以上的u盘
    macOS-Catalina-flash-drive-Installer-1024x576macOS-Catalina-flash-drive-Installer-1024x576

  • 安装macOS
    黑苹果安装中最大的难点在于驱动,这里提供两个Gayhub的显卡驱动合集。

  • tsingui-clover-efi

  • sqlsec-clover-Watch

    macOS server

    macOS server很久以前已经完全可视化了且独立成了一个单独的App,而且价格极其便宜,因为考虑使用MDM所以,我选择直接安装了macOS server,不论是直接购买(99元CNY)或者某些外链下载都可以,注意server系统支持

  • VNC配置, macOS的远程桌面,直接使用自带的配置即可VNC设置,
    系统偏好设置— 共享— 屏幕共享
    Screen Shot 2020-01-31 at 2.46.17 PMScreen Shot 2020-01-31 at 2.46.17 PM
    以后,连接mac server时,仅需要在打开Finder-cmd+k-输入vnc://你的mac server内网ip即可。
    Screen Shot 2020-01-31 at 2.48.23 PMScreen Shot 2020-01-31 at 2.48.23 PM

  • server主机设置
    当你第一次打开Server App的时候,会让你设定server admin及密码,请牢记,可别忘了。然后,设置你的服务器电脑名及主机名,主机名请设定成你所注册的花生⼉域名(DDNS中填写的内容)。直接下一步,服务器会⾃动创建域名自签证书。
    Screen Shot 2020-01-31 at 2.52.03 PMScreen Shot 2020-01-31 at 2.52.03 PM
    Screen Shot 2020-01-31 at 2.52.03 PMScreen Shot 2020-01-31 at 2.52.03 PM

  • DNS设置
    DNS设置一方面是为了避免内外网端口不一致,导致服务访问需要修改端口。所以,通过DNS设置后不论内外网一律使用域名地址。另一方面,为设置邮箱做准备。
    选择高级-DNS-添加主机记录-输入你的外网域名地址-创建首选DNS-之后依次创建A记录,MX记录,NS记录,为之后设置邮箱作准备, 反向记录会自动生成。
    Screen Shot 2020-01-31 at 2.57.55 PMScreen Shot 2020-01-31 at 2.57.55 PM

  • Open Directory
    Open Directory用于邮箱用户名,服务器文件夹分权限管理,移动设备管理等。结合nextcloud之类的第三方应用,可以实现SSO单点登录。nextcloud我配置了,但不怎么用,因为我在外网进行文件访问,是通过VPN+OD登录+SMB/AFP(手机端通过File Explore实现)
    如果你的初始主机名以域名进行设置,直接进入高级—Open Directoy,启用服务,一直下一步即可。设置过程中请记住域控管理员用户名和密码,不建议使用该密码作为普通用户。如果过程中需要更新自签名证书,直接替换原有证书即可。
    屏幕快照 2020-01-31 下午3.07.42屏幕快照 2020-01-31 下午3.07.42

  • 邮箱设置
    应用-邮箱-启用邮箱,设置”域”为你的外网ip地址,鉴定方式选择Open Directory
    屏幕快照 2020-01-31 下午3.16.21屏幕快照 2020-01-31 下午3.16.21

  • 用户设置
    如果希望使用到域控管理,请务必先设置完DNS,OD,邮箱后,再开始添加用户。
    用户界面,请注意,选项中有多种用户类型,选择本地网络用户
    屏幕快照 2020-01-31 下午3.20.07屏幕快照 2020-01-31 下午3.20.07
    创建用户是,用户名将是SSO的用户名。设置全名后,邮箱地址也会自动创建
    屏幕快照 2020-01-31 下午3.22.30屏幕快照 2020-01-31 下午3.22.30

  • 文件共享设置
    这个没什么好说的,只要有了以上的基础用户设置,之后就根据家庭用户进行文件夹权限分配了,不希望小姐姐被家里的老人/老婆/孩子看到?请好好设置文件夹权限。
    如何访问?

  1. macOS - Finder - cmd+k - smb/afp://服务器内网ip地址
    Screen Shot 2020-01-31 at 3.34.15 PMScreen Shot 2020-01-31 at 3.34.15 PM

  2. widnows - win键 - smb://ip地址

  3. iOS - FileExplore - 添加网络盘 - OSX (外网访问请开启VPN,如果你大胆转发445端口地址,也可以)
    IMG_0687IMG_0687

  • VPN
    当域名设置正确的时候, VPN开启即自动选择外网域名了。L2TP不管怎么样,也是隧道加密,普通安全性已经够了。
    屏幕快照 2020-01-31 下午3.40.43屏幕快照 2020-01-31 下午3.40.43
    不同的用户都可以进行VPN登陆。
    当然,你还需要进行端口转发, mac server VPN需要用到4个端口,路由器设置转发。
    Screen Shot 2020-01-31 at 3.45.10 PMScreen Shot 2020-01-31 at 3.45.10 PM

macOS server的内容基本上就到这里。

Home Assistant

HA相对来说是一个比较大的课题,关于在macOS中的设置,我只能提供以下建议:

  • HA在mac上无法进行docker部署,因为网络模式无法使用-host,你会发现homekit无法使用,以及有非常多的端口需要进行暴露设置。

  • HA的玩耍顺序

    • HA部署

    • 基本的时间,地区或网络服务(天气、地图、语音等)的设置

    • 小米之类的设备接入,token获取

    • mqtt接入

    • 自购esp8266,感应器,通过adrinuo自刷接入,常用的推荐espeasy,渡鸦等。。。
      暴力拆线通过esp制作的智能家具
      强电拆出来 - 通过苹果变压器五福一安 - esp板子 - 光耦开关 - 灯
      IMG_3750IMG_3750
      用《霍乱时期的爱情》装饰一下
      IMG_0014IMG_0014

      PLEX

      PLEX其实实在没什么好说的,相关内容一搜一大把,推荐阅读封面刮削相关,小白瞎折腾 篇十五:玩转群辉NAS,影音篇(三):Plex进阶设置——代理与海报墙,及影片文件命名推荐

      macOS Docker

      自从接触了Docker之后,沉迷于小鲸鱼不可自拔。不同于群晖等NAS的docker,mac在安装Docker后需要通过terminal配置服务。并且相对于linux,macOS下网络host模式无法使用。比如为什么我只能把HA本机部署。
      先做一些Docker使用的基础科普:

  • docker pull 获取镜像

  • docker run -d 启用镜像,不需要pull也可以直接启动

  • 使用-p参数,转发镜像端口

  • 使用-v参数,打通镜像与宿主机的共享文件夹

  • 使用-e参数,配置镜像

  • 使用—link,关联镜像

  • 部分服务需要单独启用数据库,之后关联服务与数据库
    列子
    docker run -d —shm-size=4096m -v /Volumes/HomeDate/docker/nvr:/var/cache/zoneminder/events -e TZ=Asia/Shanghai -e ZM_DB_HOST=zmdb —net net —name zm -p 8012:80 quantumobject/docker-zoneminder

  • docker run -d 启动服务

  • —shm-size=4096m 一个shm参数

  • -v /Volumes/HomeDate/docker/nvr:/var/cache/zoneminder/events, 冒号前为宿主机中的共享文件夹, 冒号后为docker容器内的文件夹

  • -e TZ=Asia/Shanghai -e ZM_DB_HOST=zmdb 镜像内的时区、host设置

  • —net net —name zm 网络模式设置

  • -p 8012:80 端口转发, web界面转发至宿主机8012端口

  • quantumobject/docker-zoneminder 拉取的镜像
    以下内容直接为服务搭建的所有代码,稍作修改就可用(不太熟悉compose,所以全代码部署)。
    zoneminder
    找了很久NVR服务,因为家用摄像头要么sd卡存储,要么付费购买云存储空间。 sd卡如果家里着的遭贼了,也就没有了摄像头的意义。 所以一直在找一个NVR服务。最终选择为zoneminder。还能接入homeassistant。
    网络设置:
    docker network create net
    数据库配置:
    docker run -d -e TZ=Asia/Shanghai -e MYSQL_USER=zmuser -e MYSQL_PASSWORD=zmpass -e MYSQL_DATABASE=zm -e MYSQL_ROOT_PASSWORD=mysqlpsswd -e MYSQL_ROOT_HOST=% —net net —name db mysql/mysql-server:5.7

运行服务:
docker run -d —shm-size=4096m -v /更换成你的本机存储路径:/var/cache/zoneminder/events -e TZ=Asia/Shanghai -e ZM_DB_HOST=zmdb —net net —name zm -p 8012:80 quantumobject/docker-zoneminder
Screen Shot 2020-01-31 at 4.53.29 PMScreen Shot 2020-01-31 at 4.53.29 PM
Open Project
对比了几个项目管理工具,最终选择了Open Project功能非常全的项目管理工具,功能非常全面
docker run -d -p 8029:80 —name openproject -e SECRET_KEY_BASE=secret
-v /更换成你的本机存储路径:/var/openproject/pgdata
-v /更换成你的本机存储路径:/var/openproject/assets
openproject/community:latest

Screen Shot 2020-01-31 at 4.56.09 PMScreen Shot 2020-01-31 at 4.56.09 PM

Transmission
docker run -d —name transmission -e PUID=224 -e TRANSMISSION_WEB_HOME=/transmission-web-control/ -e PGID=224 -e TZ=Asia/Shanghai -p 9091:9091 -p 51413:51413 -p 51413:51413/udp -v /更换成你的本机路径/config:/config/ -v /更换成你的本机路径/downloads:/downloads/ -v /Volumes/HomeDate/docker/tran/watch:/watch/ linuxserver/transmission:latest

Screen Shot 2020-01-31 at 4.57.58 PMScreen Shot 2020-01-31 at 4.57.58 PM

Leanote
docker run -d -p 9000:9000 axboy/leanote

即是笔记工具,也是blog
Screen Shot 2020-01-31 at 5.01.41 PMScreen Shot 2020-01-31 at 5.01.41 PM

Tiny Tiny RSS
数据库设置:
docker run -d —name ttrssdb nornagon/postgres

镜像运行:
docker run -d —link ttrssdb:db -p 8085:80 clue/ttrss
订阅了张大妈,然后。。。。动不动就几万条rss
Screen Shot 2020-01-31 at 4.59.07 PMScreen Shot 2020-01-31 at 4.59.07 PM
Speedtest
内网测速,需要了解自己内网的速度
docker run -d -p 9000:9000 adolfintel/speedtest:latest

Superset
需要一个可视化数据分析平台,所以找到了Airbnb的开源数据分析平台,部署简单,使用需要一些学习:
docker run -d —name superset -p 8021:8088 -v /替换成你的路径:/home/superset tylerfowler/superset

基本部署后需要修改默认用户名和密码
docker exec superset
docker exec -it 镜像id fabmanager create-admin —app superset
docker exec -it 镜像id superset db upgrade
docker exec -it 镜像id superset init
docker exec -it 镜像id superset runserver

分析了以下实习生拒绝offer的原因
dashboarddashboard

GTD web工具: tracks界面复古了一点,指望能替代omnifoucs,功能上是不错了,可是只支持电脑,不是自适应
docker run -d —name=tracks -p 8030:80 staannoe/tracks

Portainer
这个必须要有,docker服务太多了,如何可视化管理?
docker volume create portainer_data
docker run -d -p 8014:9000 -p 8015:8000 —name portainer —restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer

portainerportainer

SearX
发现中文支持不是很好,而且这玩意只是个搜索引擎聚合,还真有人能用起来?
docker run -d —name searx -p 8017:8888 wonderfall/searx:latest

s*s不开全局,搜索结果就很惨了。
searxsearx

MINDMAPS
思维导图工具
docker run -d -p 8010:80 veggiemonk/mandamus

mindmapmindmap

weberp
这个是纯属无聊了,erp工具,可以部署了玩玩
docker run -d —name erpnext -p 8025:80 erpnext

Carliba Web
其实carliba本身就可以作为服务器启动,但是界面实在是。。。太丑了,Carliba web只是一个壳,通过carlibra软件生成书库和db,替换进carlibra web的目录当中,仅提供给一个界面。
docker run -d -e PUID=1000 -e PGID=1000 -e TZ=Asia/Shanghai -p 8013:8083 -v /替换成你的地址(并且把carliba软件生成的书和db放进来):/config -v /Volumes/HomeDate/docker/carliba/books:/books linuxserver/calibre-web

CarlibaCarliba
基本上差不多就这样吧!

展开 收起

DELL 戴尔 Precision 3470 14英寸图形移动工作站笔记本i5-1250P/16G/1T固态/集显/定制

DELL 戴尔 Precision 3470 14英寸图形移动工作站笔记本i5-1250P/16G/1T固态/集显/定制

7999元起

倍控 E5-2650V4 TrueNAS存储服务器

倍控 E5-2650V4 TrueNAS存储服务器

1799元起

倍控 G30S-N100四网2.5G DDR5 准系统

倍控 G30S-N100四网2.5G DDR5 准系统

699元起

etsme小型私有云Me盒 分布式云计算加密存储私密云盘网盘家庭相册

etsme小型私有云Me盒 分布式云计算加密存储私密云盘网盘家庭相册

3899元起

惠普(HP)HPE GEN8/9/10服务器硬盘通用大小盘系列 2.5/3.5英寸 1.2T 10K SAS

惠普(HP)HPE GEN8/9/10服务器硬盘通用大小盘系列 2.5/3.5英寸 1.2T 10K SAS

1599元起

超聚变 配件 适用于2288服务器 影.驰RTX3060显卡

超聚变 配件 适用于2288服务器 影.驰RTX3060显卡

暂无报价

畅网微控 迷你主机(R7-7840HS、准系统)

畅网微控 迷你主机(R7-7840HS、准系统)

2818元起

DELL 戴尔 企业级服务器机房设备 H345 阵列卡

DELL 戴尔 企业级服务器机房设备 H345 阵列卡

暂无报价

DELL 戴尔 PowerEdge R350 1U机架式服务器数据库金蝶用友电脑整机 至强E-2356G 六核心 16G/2*4TB企业级

DELL 戴尔 PowerEdge R350 1U机架式服务器数据库金蝶用友电脑整机 至强E-2356G 六核心 16G/2*4TB企业级

14499元起

HP 惠普 ZBook Firefly14G9 14英寸移动图形工作站设计本 i7-1255U/16G DDR5/512G SSD/4G独显T550/Win11H

HP 惠普 ZBook Firefly14G9 14英寸移动图形工作站设计本 i7-1255U/16G DDR5/512G SSD/4G独显T550/Win11H

7999元起

DELL 戴尔 PowerEdge R740/R750XS 2U机架式服务器虚拟化主机GPU显卡 R740 1*铜牌3204 6核心6线程 16G内存/1TB 企业级/三年联保

DELL 戴尔 PowerEdge R740/R750XS 2U机架式服务器虚拟化主机GPU显卡 R740 1*铜牌3204 6核心6线程 16G内存/1TB 企业级/三年联保

15649元起

Lenovo 联想 服务器主机SR570 台式机1U电脑工作站机架式ERP财务软件存储商用 1颗至强铜牌3204 6核1.9GHz 16G内存/2块2T SATA硬盘

Lenovo 联想 服务器主机SR570 台式机1U电脑工作站机架式ERP财务软件存储商用 1颗至强铜牌3204 6核1.9GHz 16G内存/2块2T SATA硬盘

暂无报价

HPE MicroSvr G10+ v2微型塔式服务器主机工作站机箱存储设备cpu 奔腾G6405 16G内存 NHP

HPE MicroSvr G10+ v2微型塔式服务器主机工作站机箱存储设备cpu 奔腾G6405 16G内存 NHP

8499元起

Lenovo 联想 SR588服务器主机2U机架式国产机型AI算力GPU深度学习1颗银牌4210R 16GB内存 2*2TB硬盘

Lenovo 联想 SR588服务器主机2U机架式国产机型AI算力GPU深度学习1颗银牌4210R 16GB内存 2*2TB硬盘

13588元起

倍控 G31 11代I7-1165G7爱快软路由N5105主机i226 M.2 准系统+电源 G31-I3-1115G4四网2.5G 6A电源

倍控 G31 11代I7-1165G7爱快软路由N5105主机i226 M.2 准系统+电源 G31-I3-1115G4四网2.5G 6A电源

890元起

DELL 戴尔 Precision T5820 塔式图形工作站建模渲染设计台式电脑主机至强W-2223/8G/2T/2G独显/定制

DELL 戴尔 Precision T5820 塔式图形工作站建模渲染设计台式电脑主机至强W-2223/8G/2T/2G独显/定制

9599元起
41评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
689
扫一下,分享更方便,购买更轻松