开源实时位置共享服务Hauk
【勘误】:在上文 『事务与项目跟踪软件Jira』 一文中,老苏错误的将 4G
内存写成了 4M
,感谢网友 纸飞机
和 cwz
的指正。虽然老苏确实用过 4M
内存的机器,但那是20
多年前的事情了。
什么是 Hauk ?
Hauk
是一个完全开源的自托管位置共享服务。在兼容PHP
的Web
服务器上安装后端代码,在手机上安装配套应用程序,然后就可以使用了。
这个和微信的 共享实时位置
,在功能上是一样的,区别是 Hauk
我们可以自主掌控,不用担心信息泄露,但需要魔法上网才会显示 OpenStreetMap
地图
前期准备
在容器启动时,需要用到 config.php
文件,官方的源代码中提供了样例:https://github.com/bilde2910/Hauk/blob/master/backend-php/include/config-sample.php
1 | # 新建文件夹 hauk 和 子目录 |
需要进行一些修改和说明:
- 保持
memcached
连接细节不变,memcached
已经包含在Docker
镜像中; -
public_url
要根据自己的地址修改,这里只要填局域网地址就可以,但是一定要用反斜杠结束
- 认证和密码:默认的
auth_method
采用的是PASSWORD
,默认的password_hash
后面虽然长长的一串,但是实际上对应的密码是空字符串(无密码)
如果你要加入自己的密码,有两种方式:
- 第一种是不安全的方式
MD5 (insecure!)
,可以通过SSH
客户端登录到群晖后,在命令行执行openssl passwd -1
,输入密码后,生成password_hash
- 第二种是安全的方式
bcrypt (secure)
,使用了开源http
服务器apache httpd
的一个命令工具htpasswd
,不过群晖上并不支持,其他平台的可以试试。在命令行执行htpasswd -nBC 10 "" | tail -c +2
其他的可以保持不变,各参数具体的含义,有兴趣的可以自己研究
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 hauk
,选择第一个 bilde2910/hauk
,版本选择 latest
。
卷
在 docker
文件夹中,创建一个新文件夹 hauk
,并在其中建一个子文件 config
,将我们前面修改的 config.php
放入到 config
目录中
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/hauk/config |
/etc/hauk |
存放设置 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
本地端口 | 容器端口 |
---|---|
5180 |
80 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
1 | # 进入 hauk 目录 |
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
1 | version: '3' |
然后执行下面的命令
1 | # 进入 hauk 目录 |
运行
在浏览器中输入 http://群晖IP:5180
就能看到主界面
反向代理
这一步不是必需的
SSL
还是全部勾选了
移动端
似乎 Hauk
只支持 Android
系统,如果上不了 Google Play
可以在 F-Droid
下载安装 Hauk
客户端
下载地址:https://f-droid.org/packages/info.varden.hauk/
首先、点右上角的小齿轮进行设置
主要就是 Server URL
,用户名填不填无所谓,密码如果没改的话,也可以不用管
现在可以回到主界面,点 Start Sharing
开始共享位置
假如前面网页端安装时,你没有在 config
目录中放入 config.php
文件,客户端会报错
如果设置无误的话,应该是 OK
的
你可以把实时位置分享给别人
在手机上打开位置分享可能是👇这样的
因为使用了
OpenStreetMap
地图服务,需要魔法上网
加入域名黑名单之后,电脑上的效果
为了避免暴露实际地址,老苏移动了位置,所以代表自己实时位置的小黄点就没有了
参考文档
bilde2910/Hauk: Open-source realtime location sharing
地址:https://github.com/bilde2910/HaukHauk
地址:https://apps.varden.info/demo/hauk/