The ntfy server source code is available on GitHub.
To quickly build on amd64, you can use make build-simple
:
git clone git@github.com:binwiederhier/ntfy.git
cd ntfy
make build-simple
That'll generate a statically linked binary in dist/ntfy_linux_amd64/ntfy
.
For all other platforms (including Docker), and for production or other snapshot builds, you should use the amazingly awesome GoReleaser make targets:
Build:
make build - Build
make build-snapshot - Build snapshot
make build-simple - Build (using go build, without goreleaser)
make clean - Clean build folder
Releasing (requires goreleaser):
make release - Create a release
make release-snapshot - Create a test release
There are currently no platform-specific make targets, so they will build for all platforms (which may take a while).
The ntfy Android app source code is available on GitHub. The Android app has two flavors:
play
flavor includes Firebase (FCM) and requires a Firebase accountfdroid
flavor does not include Firebase or Google dependenciesFirst check out the repository:
git clone git@github.com:binwiederhier/ntfy-android.git
cd ntfy-android
Then either follow the steps for building with or without Firebase.
Without Firebase, you may want to still change the default app_base_url
in strings.xml
if you're self-hosting the server. Then run:
# To build an unsigned .apk (app/build/outputs/apk/fdroid/*.apk)
./gradlew assembleFdroidRelease
# To build a bundle .aab (app/fdroid/release/*.aab)
./gradlew bundleFdroidRelease
To build your own version with Firebase, you must:
app/google-services.json
app_base_url
in strings.xmlThen run:
# To build an unsigned .apk (app/build/outputs/apk/play/*.apk)
./gradlew assemblePlayRelease
# To build a bundle .aab (app/play/release/*.aab)
./gradlew bundlePlayRelease