部署轻量iOS推送服务Bark

本文最后更新于 350 天前, 如有失效请评论区留言.

本文主要介绍如何部署iOS推送服务Bark

Bark是一款开源的iOS消息推送应用,可以让你通过简单的HTTP请求,给iPhone发送自定义的推送消息。

Bark的应用场景

有时候,我们需要给自己设置一些提醒或者通知,但是又不想安装太多的应用或者注册太多的账号,比如:

  • 定时提醒自己喝水、休息、锻炼等
  • 接收来自其他应用或者网站的重要信息或者通知
  • 记录一些临时想法或者笔记

Bark有以下优点:

  • 简单易用:只需安装客户端和发送HTTP请求即可
  • 开源免费:服务端和客户端均开源,无需付费
  • 隐私安全:推送消息不会被存储或者泄露,阅后即焚
  • 实时稳定:推送消息走iOS官方渠道,实时性和稳定性都非常可靠

客户端

要使用Bark,你需要做以下几个步髤:

  1. 下载并安装Bark客户端:你可以在App Store中搜索并下载Bark应用。
  2. 获取并保存设备码:打开Bark应用后,在首页上方会显示一个类似于https://api.day.app/xxxxxxxxxxxxxxxxxxxxxx的地址。这个地址就是你的设备码,请复制并保存好它。
  3. 发送HTTP请求:你可以通过任何方式发送HTTP请求给你的设备码地址。请求格式如下:

M系列架构的MacMini也可以用哦

服务端安装

自主可控选择自己安装服务端哈。支持多种安装方式. 这里我们以k8s为例, 其实服务比较简单, 在k8s跑起来也比较简单

k8s yaml
# apiVersion: v1
# kind: PersistentVolumeClaim
# metadata:
#   name: bark-server
# spec:
#   accessModes:
#   - ReadWriteMany
#   resources:
#     requests:
#       storage: 1Gi
#   storageClassName: tkecfs
---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
  labels:
    k8s.ysicing.me/name: bark-server
  name: bark-server
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      k8s.ysicing.me/name: bark-server
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 0%
    type: RollingUpdate
  template:
    metadata:
      labels:
        k8s.ysicing.me/name: bark-server
    spec:
      containers:
      - image: finab/bark-server
        imagePullPolicy: Always
        name: bark-server
        resources:
          limits:
            cpu: 150m
            memory: 256Mi
          requests:
            cpu: 50m
            memory: 128Mi
        volumeMounts:
        - mountPath: /data
          name: bark-server
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      volumes:
      - name: bark-server
        emptyDir: {}
        # persistentVolumeClaim:
        #   claimName: bark-server
      # - hostPath:
      #     path: /k8sshare/bark-server
      #     type: DirectoryOrCreate
        # name: bark-server
---
apiVersion: v1
kind: Service
metadata:
  labels:
    k8s.ysicing.me/name: bark-server
  name: bark-server
spec:
  ports:
  - name: http
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    k8s.ysicing.me/name: bark-server
  type: ClusterIP
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  labels:
    k8s.ysicing.me/name: bark-server
  name: bark-server
spec:
  rules:
  - host: bark.external.ysicing.net
    http:
      paths:
      - backend:
          service:
            name: bark-server
            port:
              name: http
        path: /
        pathType: ImplementationSpecific

将上述文件保存为bs.yaml并apply到集群

kubectl apply -f bs.yaml

然后在bark应用里配置一下

bark

附录

最后大家可以使用我搭建的bark哈,不保证永久使用哈,如果不维护了会提前通知

公益服务: bark.external.ysicing.net

Chapters

Comments