Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jochem-w/skynotify
A containerised service that provides real-time push notifications for Bluesky posts.
https://github.com/jochem-w/skynotify
bluesky
Last synced: about 2 months ago
JSON representation
A containerised service that provides real-time push notifications for Bluesky posts.
- Host: GitHub
- URL: https://github.com/jochem-w/skynotify
- Owner: Jochem-W
- License: agpl-3.0
- Created: 2024-10-21T15:43:17.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-26T15:23:24.000Z (about 2 months ago)
- Last Synced: 2024-11-26T15:28:20.706Z (about 2 months ago)
- Topics: bluesky
- Language: TypeScript
- Homepage: https://skynotify.co/
- Size: 4.07 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Skynotify
A containerised service that provides real-time push notifications for Bluesky
posts, officially hosted on [skynotify.co](https://skynotify.co/) and easily
self-hostable.## Installing
1. Install Docker and Docker Compose
2. Clone or download the repository
3. Create a Firebase project with Cloud Messaging turned on
4. Copy `example.env` to `.env` and fill in the empty values
5. Place Firebase Admin SDK credentials in `server/firebase.json`
6. Place Firebase Web SDK credentials in `app/firebase.ts`
7. Set a subscription limit in `app/config.ts`
8. Run `docker compose build`
9. Run `docker compose up -d`The service will now be running in the background. To make the service
accessible from the outside on port 80, the following can be added to `app` in
`docker-compose.yml`:```yml
ports:
- "80:3000"
```### InfluxDB
For monitoring and statistics, InfluxDB has been integrated into the Compose
file and Go application. The amount and types of notifications sent
and the amount of operations processed from the Bluesky firehose are stored for displaying in a graph. This latter is
also used to keep track of the last processed commit, which allows for the
application to be restarted without dropping notifications.## Contributing
All contributions, issues and pull requests are welcome, but I can't guarantee
that I'll have the time to keep up with everything. To start contributing,
you'll need to install the following:- Go
- Node.js
- Node.js 23 is currently not supported
- pnpm## License
Copyright (C) 2024 Jochem-W
This program is free software: you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option) any
later version.This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.You should have received a copy of the GNU Affero General Public License along
with this program. If not, see .