Survey365:构建完全脱离 ArcGIS 的开源外业调查平台
本项目构建一个全开源技术栈的地理信息外业调查系统,旨在完全摆脱ArcGIS等商业闭源依赖,支持Web与移动端同步开发,并作为空间数据库、地图渲染及跨端架构的验证平台。后端采用Keycloak统一认证、Spring Boot 3.5、MyBatis Plus及PostGIS,前端使用Vue 3、Tabler UI和MapLibre GL JS,移动端基于MapLibre Native、Kotlin + Jetpack与Material Design,同时集成DuckDB Spatial、GeoPackage Android、SpatiaLite和GDAL等移动空间数据库与处理组件。项目还规划了离线导航能力,通过本地路网数据与算法实现无网络环境下的路径计算,弥补离线场景下在线导航不可用的短板,验证了全开源方案的可行性与实用性。
- 2025-07-08
- 284
- 0
- 0
- 52.4℃
优秀必装软件
本文汇总了作者日常使用的多款实用工具,涵盖网络代理、SSH连接、系统监测、鼠标故障修复、截图、Markdown编辑、U盘启动盘制作及终端管理。重点说明鼠标微动开关故障可借助ClickFix设置时间阈值(如100毫秒内仅识别一次点击)实现防抖,但属临时方案,根本解决需更换微动或鼠标;同时提供罗技接收器重置驱动链接。其余工具均附下载或官方页面,方便读者直接获取使用。
- 2025-06-29
- 237
- 0
- 0
- 47.7℃
日常实用脚本
本文提供两个运维脚本:Docker镜像分发推送脚本,适用于服务器无法直接下载镜像的场景,通过sshpass和SCP将镜像保存后分发至多节点加载,支持自定义仓库前缀、ARM64、远程push和清理;服务器信息打印脚本,无需外部依赖即可输出系统版本、内核、CPU、内存、磁盘、网络、时间、负载等关键信息。两个脚本可直接复用,解决离线镜像分发与内网主机信息采集的常见痛点,提升运维效率。
- 2025-06-20
- 134
- 0
- 0
- 37.4℃
使用 K8S 或 Docker 快速部署 Kafka, Logstash
因安全要求需将 Kafka 升级至 3.9.x 或 4.x,本文以 apache/kafka:3.9.1 为例,记录在 Kubernetes 上的完整部署流程:使用 StatefulSet 创建 3 副本集群,通过无头 Service 暴露访问,并用 ConfigMap 配置 broker 与 ZooKeeper 连接。同时部署 Logstash 7.17.0 作为日志消费端,从 Kafka 的 logstash-* 主题拉取 JSON 日志,处理后写入 Elasticsearch,并支持按 topic 和日期动态生成索引。文章还提供 Kafka 常用命令行操作、模拟业务日志的测试脚本,以及针对资源受限环境的日志保留策略优化建议(如缩短保留时间、限制日志段大小),可帮助读者快速搭建基于 Kafka + Logstash + Elasticsearch 的日志采集分析链路。
- 2025-06-17
- 297
- 0
- 0
- 53.7℃
使用 K8S 或 Docker 快速部署 Zookeeper 集群
本文介绍了在Kubernetes中部署ZooKeeper集群的完整方案。使用StatefulSet管理3个副本,容器镜像为zookeeper:3.9.3,通过主机名后缀生成myid,并利用volumeClaimTemplates为每个Pod提供2Gi持久化存储。配套创建无头Service暴露2181、2888、3888端口,用于客户端连接、节点间通信和Leader选举。ConfigMap中定义了zoo.cfg,配置了tickTime、initLimit等参数,并列出三个节点的DNS地址。文中还给出了常用运维命令,可查看节点角色(leader/follower)以及检查Kafka集群在ZooKeeper中注册的broker信息。读者可据此在K8s环境快速搭建高可用的ZooKeeper集群。
- 2025-06-17
- 173
- 0
- 0
- 41.3℃
kubernetes 使用技巧
本文汇总了多个 Kubernetes 实际运维问题及解决方案。命名空间删除卡在 Terminating,可移除其 finalizers 强制清理。Pod 被驱逐通常因节点临时存储不足,需为容器设置 ephemeral-storage 请求或清理节点空间,并可用脚本排查 Evicted 容器。Headless Service 配合 StatefulSet 时,serviceName 必须匹配,否则 DNS 无法解析。PV/PVC 类比为房东与租房申请,PVC 绑定后 Pod 可独占存储。通过 Endpoints 可手动将 Service 指向外部地址。证书续签可用 kubeadm 手动执行或编写定时脚本自动完成。还涉及 Calico IPPool 查看、批量给 ServiceAccount 注入 imagePullSecrets,以及自定义 DNS 搜索域以优化解析。
- 2025-06-12
- 236
- 0
- 0
- 47.6℃
使用 K8S 或 Docker 快速部署 Ceph
本文介绍Ceph存储集群的部署与运维实践,涵盖Docker和Kubernetes两种部署方式,并重点展示常用运维命令及异常处理。通过ceph -s可查看集群健康状态、MON/MGR/OSD等组件运行情况;ceph df与ceph osd df用于查看存储池与OSD的容量使用分布;ceph crash ls/info用于排查守护进程崩溃记录,结合ceph health detail定位具体故障。文中示例显示集群曾出现OSD.0崩溃导致的HEALTH_WARN,并提供了“mon低可用空间”告警的解决参考链接。读者可按命令输出快速掌握集群健康度、容量水位和故障排查方法,适合Ceph管理员在实际环境中对照操作。
- 2025-06-10
- 120
- 0
- 0
- 36.0℃
使用 K8S 或 Docker 快速部署 Gitea
受安全要求限制,公司无法使用Gitee、GitHub等公网代码库,作者对比后认为Gitea是目前最轻量的私有Git服务,比GitLab更易部署和维护。作者通过1Panel一键部署Gitea,并分享了使用中的优化配置:在app.ini中禁用注册(仅管理员建号)、关闭OpenID登录与注册、设置默认白色主题,以及隐藏版本号以避免针对特定版本的攻击。这些配置有助于提升私有Git服务的安全性与使用体验,适合有内网代码托管需求的团队参考。
- 2025-06-10
- 293
- 0
- 0
- 53.3℃
使用MyBatis-Plus代码生成器,一键生成CRUD代码
本文介绍基于 MyBatis-Plus 的图形化代码生成工具,帮助开发者一键生成 CRUD 代码,简化 SpringBoot 开发流程。首先需在 pom.xml 中添加 mybatis-plus-spring-boot3-starter 依赖;然后配置数据库连接,将 IDEA 项目 java 目录作为生成输出目录,并勾选“开启 @Mapper 注解”,即可无 XML 生成代码,自动写入项目。针对生成的空 Controller,可创建通用 BaseController,统一实现增删改查、分页及条件查询等 RESTful 接口,子类继承并传入实体类和 Service 即可复用,减少重复编码。文章还提示可删除 mapper_xml 目录,并提到 application.properties 等细节未展开。整体提供了一套高效、可落地的 MyBatis-Plus 代码生成与优化方案。
- 2025-06-03
- 171
- 0
- 0
- 41.1℃
使用 K8S 或 Docker 快速部署 postgres
PostgreSQL结合PostGIS扩展是GIS领域首选开源数据库,提供专业级空间数据支持。其核心能力包括:支持矢量/栅格数据、三维地理信息与拓扑网络,提供600+空间函数(缓冲区分析、路径规划、空间聚合等);符合OGC标准,兼容GeoJSON、KML、Shapefile格式,可与QGIS、ArcGIS、GeoServer无缝集成;通过R树/GIST空间索引加速查询,并行计算支持亿级数据分析。文章还给出具体部署方法:Docker方式通过一行命令运行postgres:17.5-alpine镜像并配置用户、密码、数据库及数据目录;Kubernetes方式提供Deployment与Service配置,使用hostPath存储,通过NodePort暴露5432端口供外部访问。读者可按示例快速搭建PostgreSQL+PostGIS环境。