vitlabuda / selfdroid-web-app

A self-hosted Android app store - web application
Other
25 stars 3 forks source link

Selfdroid Web App

Selfdroid is an open-source self-hosted Android app store written in Python 3 using the Flask framework. This web app allows one to upload Android apps (in the form of APK files) to their own server, from where they can then be downloaded.

It is intended primarily for those who want to distribute their own apps only to a relatively small amount of devices (e.g. within a company or a household) and therefore do not want to pay for a Google Play Developer account.

Features and characteristics

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3

Deployment & usage

1. Requirements

2. Install the dependencies

On Debian/Ubuntu and their derivatives, execute the following:

   sudo apt update 
   sudo apt install python3 python3-pip python3-venv python3-virtualenv virtualenv uwsgi-core uwsgi-plugin-python3

3. Change the configuration to fit your needs

The app's configuration can be altered in the Settings.py file.

One must configure the user and administrator password in the settings file before deploying the app!

4. Prepare the environment

The bash script prepare.sh will do it for you:

   ./prepare.sh

5. Start the Flask app

To start the web app using the Flask's built-in development server, use the run_dev_server.sh bash script:

   ./run_dev_server.sh

To run the app in a production environment, hook it to a web server using an appropriate interface. The web app already comes with the following files to help you out with this:

Android app

As has been mentioned above, the web app has a JSON API, which was intended to be used by a Selfdroid Android app, which would make deploying and updating the uploaded apps more convenient. However, due to the fact that my focus has, for several reasons, shifted onto other projects since this web app has been published, there are currently no plans to create the Android app. Contributions are welcome, though.

Licensing

This project is licensed under the 3-clause BSD license. See the LICENSE file for details.

In addition, this project uses some third-party open-source components. See the BACKEND-THIRD-PARTY-LICENSES and FRONTEND-THIRD-PARTY-LICENSES files for details.

Written by Vít Labuda.