An open API service indexing awesome lists of open source software.

https://github.com/getarcaneapp/android

The offical Android app for Arcane
https://github.com/getarcaneapp/android

Last synced: 11 days ago
JSON representation

The offical Android app for Arcane

Awesome Lists containing this project

README

          

> [!IMPORTANT]
> This project is still under development and is not intended to be used on devices yet.

Arcane Logo

Arcane Mobile — Manage your Docker hosts from Android.

License
Discord


## About

Arcane Mobile is the official Android companion for [Arcane](https://github.com/getarcaneapp/arcane). It connects to any Arcane manager or agent and lets you browse and operate your Docker environments — containers, images, volumes, networks, and Compose projects — from your phone.

## Documentation

For setup instructions, configuration details, and development guides, visit the **[official documentation site](https://getarcane.app)**.

For continuation context from the currently running Android app, see [`docs/current-app-state.md`](docs/current-app-state.md).

## Requirements

- Android 7.0 (API 24) or later
- An Arcane server reachable over HTTPS

## Building

This is a [Jetpack Compose](https://developer.android.com/compose) app written in Kotlin, using Material 3 and a single-Activity, multi-tab navigation shell.

| Toolchain | Version |
| --- | --- |
| Android Gradle Plugin | 9.1.1 |
| Gradle | 9.4.1 |
| Kotlin | 2.2.10 |
| JDK | 21 |

Open the project in **Android Studio** (Quail Feature Drop or later) and let it sync, or build from the command line:

```sh
./gradlew :app:installDebug
```

Run the same checks used by CI with:

```sh
./gradlew :app:testDebugUnitTest :app:assembleDebug
```

Release APK signing is optional for local builds. To sign a release APK, provide:

```sh
ARCANE_RELEASE_STORE_FILE=/path/to/arcane-release.jks
ARCANE_RELEASE_STORE_PASSWORD=...
ARCANE_RELEASE_KEY_ALIAS=...
ARCANE_RELEASE_KEY_PASSWORD=...
./gradlew :app:assembleRelease
```

GitHub Actions builds and uploads a debug APK for pull requests and branch pushes.
For tags matching `v*`, it also builds a signed release APK and attaches it to the
GitHub Release when signing secrets are configured. Tags without signing secrets
still build and upload the debug APK artifact. Configure these repository secrets
before cutting a signed release tag:

- `ARCANE_RELEASE_KEYSTORE_BASE64`
- `ARCANE_RELEASE_STORE_PASSWORD`
- `ARCANE_RELEASE_KEY_ALIAS`
- `ARCANE_RELEASE_KEY_PASSWORD`

Fastlane/F-Droid metadata lives under `fastlane/metadata/android/en-US/`.

### Android Studio run configuration

Open the repository root (the directory containing `settings.gradle.kts`) in
Android Studio. After Gradle sync, the project should expose a single Android
application module/source set named `arcane-android.app.main` (shown in some
Android Studio dialogs as `app` or `app.main`).

A shared **Android App** run configuration named `Arcane Android` is checked in
under `.run/`. If Android Studio does not pick it up automatically, create one
manually with:

- Module: `arcane-android.app.main` (or the `app`/`app.main` entry Android Studio shows)
- Launch: Default Activity (`app.getarcane.android/.MainActivity`)
- Deploy target: any API 24+ emulator or device

The checked-in manifest already marks `MainActivity` as the launcher activity,
so no custom activity arguments are required.

The app depends on [`libarcane-kotlin`](https://github.com/getarcaneapp/libarcane-kotlin) — the Kotlin SDK that talks to the Arcane API. By default, Gradle resolves the SDK from the sibling `../libarcane-kotlin` Git checkout when it exists; otherwise it resolves the SDK from the public Git repository on the `main` branch and builds it on demand. No separate publish step is needed.

To force the public Git source dependency even when the sibling checkout exists, pass `-Parcane.remoteSdk`:

```sh
./gradlew :app:installDebug -Parcane.remoteSdk
```

### Running on an emulator

A helper script boots the `arcane` AVD with public DNS servers (needed for the hosted demo to resolve):

```sh
./run-emulator.sh
```

## Reporting Issues

Found a bug or have a feature request? [Open an issue on GitHub](https://github.com/getarcaneapp/android/issues).

## Translating

Help translate Arcane on Crowdin: https://crowdin.com/project/arcane-docker-management

Thank you for checking out Arcane Mobile! Your feedback and contributions are always welcome.