Bark
Bark 是一个允许您向iPhone推送自定义通知的iOS应用程序。
目录
安装
Docker用户
Docker镜像已经可用,您可以使用以下命令运行bark服务器:
docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server
如果您使用docker-compose工具,可以将此项目下的docker-compose.yaml复制到任意目录并运行:
mkdir bark-server && cd bark-server
curl -sL https://github.com/Finb/bark-server/raw/master/deploy/docker-compose.yaml > docker-compose.yaml
docker compose up -d
普通用户
- 1、从releases页面下载预编译的二进制文件
- 2、给bark-server二进制文件添加可执行权限:
chmod +x bark-server
- 3、启动bark-server:
./bark-server --addr 0.0.0.0:8080 --data ./bark-data
- 4、测试服务器:
curl localhost:8080/ping
注意:Bark-server默认使用/data
目录存储数据。请确保bark-server有权限写入/data
目录,否则使用-d
选项更改目录。
开发者
开发者可以自行编译此项目,编译所需的依赖项:
- Golang 1.18+
- 启用Go Mod(环境变量
GO111MODULE=on
) - 启用Go Mod代理(环境变量
GOPROXY=https://goproxy.cn
) - 安装go-task
运行以下命令编译此项目:
# 交叉编译所有平台
task
# 编译指定平台(请参考Taskfile.yaml)
task linux_amd64
task linux_amd64_v3
注意:linux amd64 v3架构在go 1.18中添加,详见https://github.com/golang/go/wiki/MinimumRequirements#amd64
Nginx代理
大多数用户希望在内网服务器上部署bark服务器,然后使用Nginx反向代理bark服务器;
以下是一个简单的Nginx配置示例(我们假设bark服务器监听在192.168.1.123:8080
)
# 2020-03-26生成,Mozilla指南v5.4,nginx 1.17.7,OpenSSL 1.1.1d,现代配置
# https://ssl-config.mozilla.org/#server=nginx&version=1.17.7&config=modern&openssl=1.1.1d&guideline=5.4
server {
listen 80;
listen [::]:80;
# 将bark.app.dev替换为您的实际域名。
server_name bark.app.dev;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
# 将bark.app.dev替换为您的实际域名。
server_name bark.app.dev;
ssl_certificate /path/to/signed_cert_plus_intermediates;
ssl_certificate_key /path/to/private_key;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # 约40000个会话
ssl_session_tickets off;
# 现代配置
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers off;
# HSTS(需要ngx_http_headers_module)(63072000秒)
add_header Strict-Transport-Security "max-age=63072000" always;
# OCSP stapling
ssl_stapling on;
ssl_stapling_verify on;
# 使用根CA和中间证书验证OCSP响应的信任链
ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;
# 替换为您的解析器的IP地址
#resolver 127.0.0.1;
location / {
log_not_found on;
# 将http://192.168.1.123:8080替换为bark服务器的监听地址。
proxy_pass http://192.168.1.123:8080;
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
}
使用MySQL替代Bbolt
只需使用-dsn=user:pass@tcp(mysql_host)/bark
运行服务器,它将使用MySQL而不是文件数据库Bbolt
API V2
请阅读API_V2.md。
其他
中文
Markdown支持:
为bark-server做贡献
开发环境
本项目至少需要golang 1.12版本进行编译,并需要Go mod支持。
- Golang 1.16
- GoLand 2020.3或其他Go IDE
- Docker(可选)
更新
现在程序中嵌入的推送证书永远不会过期。只有在由于证书过期导致推送失败时,您才需要更新程序。