# Building ## ntfy server The ntfy server source code is available [on GitHub](https://github.com/binwiederhier/ntfy). 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](https://goreleaser.com/) 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). ## Android app The ntfy Android app source code is available [on GitHub](https://github.com/binwiederhier/ntfy-android). The Android app has two flavors: * **Google Play:** The `play` flavor includes Firebase (FCM) and requires a Firebase account * **F-Droid:** The `fdroid` flavor does not include Firebase or Google dependencies First 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. ### Building without Firebase (F-Droid flavor) Without Firebase, you may want to still change the default `app_base_url` in [strings.xml](https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/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 ``` ### Building with Firebase (FCM, Google Play flavor) To build your own version with Firebase, you must: * Create a Firebase/FCM account * Place your account file at `app/google-services.json` * And change `app_base_url` in [strings.xml](https://github.com/binwiederhier/ntfy-android/blob/main/app/src/main/res/values/strings.xml) * Then 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 ```