{"id":51599915,"url":"https://github.com/getarcaneapp/android","last_synced_at":"2026-07-11T21:02:03.507Z","repository":{"id":370339170,"uuid":"1256689069","full_name":"getarcaneapp/android","owner":"getarcaneapp","description":"The offical Android app for Arcane","archived":false,"fork":false,"pushed_at":"2026-07-08T23:35:14.000Z","size":1183,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-09T00:11:00.179Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getarcaneapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-02T02:20:47.000Z","updated_at":"2026-07-08T23:35:17.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/getarcaneapp/android","commit_stats":null,"previous_names":["getarcaneapp/android"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/getarcaneapp/android","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getarcaneapp%2Fandroid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getarcaneapp%2Fandroid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getarcaneapp%2Fandroid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getarcaneapp%2Fandroid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getarcaneapp","download_url":"https://codeload.github.com/getarcaneapp/android/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getarcaneapp%2Fandroid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35375153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-11T21:02:02.799Z","updated_at":"2026-07-11T21:02:03.501Z","avatar_url":"https://github.com/getarcaneapp.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!IMPORTANT]\n\u003e This project is still under development and is not intended to be used on devices yet. \n\n\u003cdiv align=\"center\"\u003e\n\n  \u003cimg src=\".github/assets/img/PNG-3.png\" alt=\"Arcane Logo\" width=\"500\" /\u003e\n  \u003cp\u003eArcane Mobile — Manage your Docker hosts from Android.\u003c/p\u003e\n\n\u003ca href=\"https://github.com/getarcaneapp/android/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-BSD--3--Clause-blue.svg\" alt=\"License\"\u003e\u003c/a\u003e\n\u003ca href=\"https://discord.gg/WyXYpdyV3Z\"\u003e\u003cimg src=\"https://img.shields.io/badge/discord-join-5865F2.svg?logo=discord\u0026logoColor=white\" alt=\"Discord\"\u003e\u003c/a\u003e\n\n\u003cbr /\u003e\n\n\u003c/div\u003e\n\n## About\n\nArcane 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.\n\n## Documentation\n\nFor setup instructions, configuration details, and development guides, visit the **[official documentation site](https://getarcane.app)**.\n\nFor continuation context from the currently running Android app, see [`docs/current-app-state.md`](docs/current-app-state.md).\n\n## Requirements\n\n- Android 7.0 (API 24) or later\n- An Arcane server reachable over HTTPS\n\n## Building\n\nThis is a [Jetpack Compose](https://developer.android.com/compose) app written in Kotlin, using Material 3 and a single-Activity, multi-tab navigation shell.\n\n| Toolchain | Version |\n| --- | --- |\n| Android Gradle Plugin | 9.1.1 |\n| Gradle | 9.4.1 |\n| Kotlin | 2.2.10 |\n| JDK | 21 |\n\nOpen the project in **Android Studio** (Quail Feature Drop or later) and let it sync, or build from the command line:\n\n```sh\n./gradlew :app:installDebug\n```\n\nRun the same checks used by CI with:\n\n```sh\n./gradlew :app:testDebugUnitTest :app:assembleDebug\n```\n\nRelease APK signing is optional for local builds. To sign a release APK, provide:\n\n```sh\nARCANE_RELEASE_STORE_FILE=/path/to/arcane-release.jks\nARCANE_RELEASE_STORE_PASSWORD=...\nARCANE_RELEASE_KEY_ALIAS=...\nARCANE_RELEASE_KEY_PASSWORD=...\n./gradlew :app:assembleRelease\n```\n\nGitHub Actions builds and uploads a debug APK for pull requests and branch pushes.\nFor tags matching `v*`, it also builds a signed release APK and attaches it to the\nGitHub Release when signing secrets are configured. Tags without signing secrets\nstill build and upload the debug APK artifact. Configure these repository secrets\nbefore cutting a signed release tag:\n\n- `ARCANE_RELEASE_KEYSTORE_BASE64`\n- `ARCANE_RELEASE_STORE_PASSWORD`\n- `ARCANE_RELEASE_KEY_ALIAS`\n- `ARCANE_RELEASE_KEY_PASSWORD`\n\nFastlane/F-Droid metadata lives under `fastlane/metadata/android/en-US/`.\n\n### Android Studio run configuration\n\nOpen the repository root (the directory containing `settings.gradle.kts`) in\nAndroid Studio. After Gradle sync, the project should expose a single Android\napplication module/source set named `arcane-android.app.main` (shown in some\nAndroid Studio dialogs as `app` or `app.main`).\n\nA shared **Android App** run configuration named `Arcane Android` is checked in\nunder `.run/`. If Android Studio does not pick it up automatically, create one\nmanually with:\n\n- Module: `arcane-android.app.main` (or the `app`/`app.main` entry Android Studio shows)\n- Launch: Default Activity (`app.getarcane.android/.MainActivity`)\n- Deploy target: any API 24+ emulator or device\n\nThe checked-in manifest already marks `MainActivity` as the launcher activity,\nso no custom activity arguments are required.\n\nThe 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.\n\nTo force the public Git source dependency even when the sibling checkout exists, pass `-Parcane.remoteSdk`:\n\n```sh\n./gradlew :app:installDebug -Parcane.remoteSdk\n```\n\n### Running on an emulator\n\nA helper script boots the `arcane` AVD with public DNS servers (needed for the hosted demo to resolve):\n\n```sh\n./run-emulator.sh\n```\n\n## Reporting Issues\n\nFound a bug or have a feature request? [Open an issue on GitHub](https://github.com/getarcaneapp/android/issues).\n\n## Translating\n\nHelp translate Arcane on Crowdin: https://crowdin.com/project/arcane-docker-management\n\nThank you for checking out Arcane Mobile! Your feedback and contributions are always welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetarcaneapp%2Fandroid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetarcaneapp%2Fandroid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetarcaneapp%2Fandroid/lists"}