自建OpenStreetmap地图瓦片服务:迁移mbtiles到pmtiles

前言 笔者曾在三年前写过一篇如何self host基于OpenStreetmap数据的博客。在当时的文章里,笔者使用的后端是maptiler开发的的tileserver-gl。它需要一个转换好的mbtiles文件,才能正常serve地图。但遗憾的是,maptiler把下载转换好的地图作为一项商业服务提供,我们只能自己使用maptiler提供的openmaptiles对地图进行转换。由于mbtiles的本质是基于sqlite的地图数据库,使用openmaptiles制作地图的速度相当缓慢(在一台48C256G的机器上转换全世界的地图大概需要一整天的时间,并且对磁盘的IO有较高的要求),host地图也需要使用tileserver-gl处理请求,将mbtiles里的数据转换成pbf格式发送给客户端。 直到最近,笔者注意到了一些GIS开源项目在使用的Protomaps项目,以及他们提出的pmtiles格式。如Protomaps的发起人给博客起的标题《Dynamic Maps, Static Storage》那样,pmtiles的一大优势是如果不需要raster tiles,服务端不再需要安装任何软件,只需要一个“Static Storage”即可(无需任何后端软件对地图数据进行处理)。确切的说,一个支持HTTP Range的服务器。包括nginx,caddy等常见的web服务器和S3服务理论上都是支持这项特性的。 ...

2025-01-15 · 更新于: 2025-01-16 · 5 分钟 · sparktour
hackergame score

USTC Hackergame 2024 Writeup

这是本人第五次参加USTC的hackergame了,本次的排名相比上次略有进步,进到了50名内。 PaoluGPT 观察代码注意到了可能可以进行SQL注入: ...

2024-11-14 · 更新于: 2024-11-15 · 17 分钟 · sparktour

PT924G光猫配置VLAN单线复用

在本文中,我们将介绍如何在PT924G光猫上配置VLAN单线复用,以便在单根光纤上同时传输上网,IPTV和TR069等业务。 获取超级管理员密码 Manufacturer:youhua ProductClass:PT924G HWVersion: V4.0.00 SWVersion: V10.00.924GD02 参考恩山的帖子: ...

2024-02-02 · 更新于: 2024-04-14 · 2 分钟 · sparktour

为keycloak添加可选的passkey/webauth/OTP登陆

本文描述了为keycloak配置passkey,webauth,OTP等无密码登陆的流程。本文中的部分配置可能需要Keycloak 23或者更高的版本才能正常运行。 配置Authentication部分 在keycloak的Authentication - Flow菜单中,复制一份browser flow,笔者把副本取名为了browser with optional webauth and otp。 ...

2024-01-24 · 更新于: 2024-04-14 · 2 分钟 · sparktour

Host the MinIO Server API on a subpath and Configure Multi Domain

尽管Minio在文档中明确说明了minio的S3 API并不支持host在subpath下。但如果真的有需求,我们也可以通过修改nginx的反向代理配置来实现这一点。此方法唯一存在的问题是,bucket的名字需要拥有某个共同的前缀。 Minio配置 minio的docker-compose配置如下: version: '3.6' services: minio: image: quay.io/minio/minio:latest container_name: minio-ssd-backend restart: always ports: - "39000:9000" - "39090:9090" volumes: - /your-local-data/minio/data:/data environment: MINIO_ROOT_USER: admin MINIO_ROOT_PASSWORD: change-me MINIO_SERVER_URL: https://maindomain.example.com MINIO_BROWSER_REDIRECT_URL: https://console.example.com command: server /data --console-address=:9090 MINIO_SERVER_URL:minio会用这个url来计算签名。 MINIO_BROWSER_REDIRECT_URL:console会host在这个url下,如果熟悉mc客户端的话,不需要console也可以进行绝大部分的配置。 Nginx配置 nginx配置可以参考minio的文档。由于我们的maindomain.example.com中可能还有其他的服务,所以我们只需要把带bucket前缀(假设这里的前缀是bucket-prefix)的请求和minio控制的相关请求反向代理给minio即可。具体来说,需要在相应域名的配置中添加以下的两端配置 ...

2024-01-13 · 更新于: 2024-04-14 · 3 分钟 · sparktour
hackergame score

USTC Hackergame 2023 Writeup

这是本人第四次参加USTC的hackergame了233,有赖今年许多题目正好和运维和环境学知识相关和ChatGPT的横空出世,本人的排名总算第一次进了前100。 ...

2023-11-04 · 更新于: 2024-04-18 · 16 分钟 · sparktour

使用 Mikrotik RouterOS 和 Openwrt 在 ISP 获得的 IPv6 Prefix 上配置二级 PD

在中国大陆,电信运营商常为使用PPPoE拨号的用户分配/60的IPv6 prefix delegation。在本文中,笔者尝试了使用Mikrotik RouterOS获取了电信运营商分配的IPv6 PD,并为下级路由器和PPP接口上的设备继续分发了/64的IPv6 PD。 ...

2023-10-18 · 更新于: 2024-04-14 · 5 分钟 · sparktour

使用Mellanox网卡基于RDMA挂载NFS

笔者的实验室于近期购置了8块nvme硬盘,通过pcie转接卡转接至一台服务器,并用ZFS组了RAID。为了能让实验室的其他服务器也能快速访问主机上的存储池,笔者去闲鱼套了两块ConnectX-4 CX4121A 10Gbe 的万兆网卡用来连接两台服务器,并配置了NFS Over RDMA。 ...

2023-08-24 · 更新于: 2024-04-14 · 4 分钟 · sparktour

通过PC/SC智能卡读卡器配置esim.me的SIM卡

最近从群友处得到了数张esim.me的「可拆卸eSIM卡」。简而言之,这种esim卡被制造成普通sim卡的形态,因此能够直接插入任意支持物理sim卡的手机,并通过esim.me提供的android app为esim卡添加profile。 尽管esim.me在销售这些esim卡时,根据每个esim卡能够加入的profile数量区分了不同的价格档位。后续在网上查阅博客文章时,有人也提到这些不同价格的esim卡的硬件是完全一致的,esim.me只是通过手机配置app对不同价位的卡进行了软件上的限制。并且如果将这些esim卡插入支持esim的LTE模块,即可直接通过Windows的esim管理界面添加和删除profile。不过目前支持esim的LTE模块主要为移远的RM-50xQ系列(二手价格550元)和戴尔的dw5821e(二手价格300元)/dw5829e模块。为了配置esim卡而专门采购这些LTE模块显然有些得不偿失。 ...

2022-11-20 · 更新于: 2024-10-04 · 3 分钟 · sparktour

配置 Linksys SPA3102 并接入固定电话网

在本篇文章中,笔者尝试使用Linksys (CISCO / SIPURA) SPA3102连接固话网络并接入freepbx,将固定电话的信号转换为了VoIP(SIP)协议。本文的效果与《使用FXO卡配合asterisk及freepbx将固定电话信号转为VoIP》一文中的类似。 ...

2022-10-15 · 更新于: 2024-04-19 · 2 分钟 · sparktour