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.
Python 3.7+
The program was tested in Python 3.7 (Debian 10), Python 3.8 (Ubuntu 20.04) and Python 3.9 (Debian 11).
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
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!
The bash script prepare.sh will do it for you:
./prepare.sh
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:
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.
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.