https://github.com/finb/bark-server
Backend of Bark
https://github.com/finb/bark-server
push-notifications self-hosted tools
Last synced: 20 days ago
JSON representation
Backend of Bark
- Host: GitHub
- URL: https://github.com/finb/bark-server
- Owner: Finb
- License: mit
- Created: 2018-06-26T10:29:28.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2026-05-20T01:16:05.000Z (21 days ago)
- Last Synced: 2026-05-20T04:34:11.174Z (21 days ago)
- Topics: push-notifications, self-hosted, tools
- Language: Go
- Homepage: https://bark.day.app
- Size: 525 KB
- Stars: 3,442
- Watchers: 17
- Forks: 554
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# Bark

[Bark](https://github.com/Finb/Bark) is an iOS App which allows you to push customed notifications to your iPhone.
## Installation
### For Docker User
  
The docker image is already available, you can use the following command to run the bark server:
``` sh
docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data finab/bark-server
```
You can also use the GitHub Container Registry image:
``` sh
docker run -dt --name bark -p 8080:8080 -v `pwd`/bark-data:/data ghcr.io/finb/bark-server
```
If you use the docker-compose tool, you can copy docker-copose.yaml under this project to any directory and run it:
``` sh
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
```
### For General User
- 1、Download precompiled binaries from the [releases](https://github.com/Finb/bark-server/releases) page
- 2、Add executable permissions to the bark-server binary: `chmod +x bark-server`
- 3、Start bark-server: `./bark-server --addr 0.0.0.0:8080 --data ./bark-data`
- 4、Test the server: `curl localhost:8080/ping`
**Note: Bark-server uses the `/data` directory to store data by default. Make sure that bark-server has permission to write to the `/data` directory, otherwise use the `-d` option to change the directory.**
### For Developer
Developers can compile this project by themselves, and the dependencies required for compilation:
- Golang 1.18+
- Go Mod Enabled(env `GO111MODULE=on`)
- Go Mod Proxy Enabled(env `GOPROXY=https://goproxy.cn`)
- [go-task](https://taskfile.dev/installation/) Installed
Run the following command to compile this project:
```sh
# Cross compile all platforms
task
# Compile the specified platform (please refer to Taskfile.yaml)
task linux_amd64
task linux_amd64_v3
```
**Note: The linux amd64 v3 architecture was added in go 1.18, see [https://github.com/golang/go/wiki/MinimumRequirements#amd64](https://github.com/golang/go/wiki/MinimumRequirements#amd64)**
### Use MySQL instead of Bbolt
Just run the server with `-dsn=user:pass@tcp(mysql_host)/bark`, it will use MySQL instead of file database Bbolt
## Others
* [API_V2.md](docs/API_V2.md).
* [MCP.md](docs/MCP.md).