MCPcopy Index your code
hub / github.com/Finb/bark-server

github.com/Finb/bark-server @v2.3.5

repository ↗ · DeepWiki ↗ · release v2.3.5 ↗ · Ask this repo → · + Follow
92 symbols 213 edges 16 files 22 documented · 24% updated 1d agov2.3.5 · 2026-05-21★ 3,517
README

Bark

Bark is an iOS App which allows you to push customed notifications to your iPhone.

Installation

For Docker User

Docker Automated build Image Size License

The docker image is already available, you can use the following command to run the bark server:

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:

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:

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 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 Installed

Run the following command to compile this project:

# 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

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

Extension points exported contracts — how you extend this code

Database (Interface)
Database defines all of the db operation [4 implementers]
database/database.go

Core symbols most depended-on inside this repo

failed
called by 14
router.go
routeDoPush
called by 9
route_push.go
registerRoute
called by 4
router.go
push
called by 4
route_push.go
Close
called by 4
database/database.go
registerRouteWithWeight
called by 3
router.go
success
called by 3
router.go
SaveDeviceTokenByKey
called by 3
database/database.go

Shape

Function 50
Method 30
Struct 9
TypeAlias 2
Interface 1

Languages

Go100%

Modules by API surface

router.go12 symbols
main.go10 symbols
push_test.go8 symbols
database/mysql.go8 symbols
database/bbolt.go8 symbols
route_push.go7 symbols
database/membase.go7 symbols
database/envbase.go7 symbols
route_mcp.go6 symbols
database/database.go6 symbols
apns/apns.go6 symbols
route_register.go4 symbols

Dependencies from manifests, versioned

filippo.io/edwards25519v1.2.0 · 1×
github.com/andybalholm/brotliv1.2.1 · 1×
github.com/clipperhouse/uax29/v2v2.7.0 · 1×
github.com/cpuguy83/go-md2man/v2v2.0.7 · 1×
github.com/gofiber/adaptor/v2v2.2.1 · 1×
github.com/google/jsonschema-gov0.4.3 · 1×
github.com/json-iterator/gov1.1.12 · 1×

For agents

$ claude mcp add bark-server \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact