Skip to content

jsfraz/whisper

Repository files navigation

whisper

Secure private self-hosted end-to-end encryption messaging app.

For Whisper server, see whisper-server repository.

Also see Wiki!

Screenshot 1 Screenshot 2 Screenshot 3

Download

You can download the app here in the releases.

Dependencies

Dev dependencies

Other

Firebase Messaging

Continuous Integration a Deployment (CI/CD)

The application uses GitHub Actions to automatically build and release the APK file when pushing to the main branch. For this process to work correctly, the following secret keys must be set in the repository settings (Settings > Secrets and variables > Actions):

  • FIREBASE_JSON_BASE64 - base64 encoded contents of the firebase.json file
  • FIREBASE_OPTIONS_DART_BASE64 - base64 encoded contents of the lib/firebase_options.dart file (required)
  • GOOGLE_SERVICES_JSON_BASE64 - base64 encoded contents of the android/app/google-services.json file

These secret keys will be used during application build to generate the necessary Firebase configuration files, which are not included in the repository for security reasons. The base64 encoding ensures safe transmission and prevents issues with special characters.

Procedure for setting up CI/CD

  1. In the repository, go to Settings > Secrets and variables > Actions
  2. For each configuration file, encode it to base64 format:
    • Linux/macOS: base64 -w 0 < firebase.json (copy the output)
    • Windows: [Convert]::ToBase64String([IO.File]::ReadAllBytes("firebase.json")) (in PowerShell)
  3. Click on "New repository secret" for each of the secret keys listed above
  4. Paste the base64 encoded content as the secret key value

After setting these secret keys, the workflow will automatically build the APK on every push to the main branch and create a new GitHub Release with the version according to pubspec.yaml.

About

Secure private self-hosted end-to-end encryption messaging app.

Topics

Resources

License

Stars

Watchers

Forks

Languages