Coder Social home page Coder Social logo

shooding / ios-ipa-app-distribution-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from significa/app-distribution-server

0.0 0.0 0.0 165 KB

Simple, self-hosted IPA app distribution server.

Home Page: https://significa.co/blog/how-to-distribute-ios-ipa-builds

License: GNU General Public License v3.0

Python 63.10% Makefile 6.16% HTML 28.63% Dockerfile 2.12%

ios-ipa-app-distribution-server's Introduction

Simple iOS IPA App Distribution Server

This is a simple, self-hosted IPA app distribution server.

Site and usage Preview

This server can be used for either Ad-hoc or Enterprise application distribution. Developers can perform internal builds on their computers (without using a service like Expo) and utilize this platform to easily distribute the build among other developers, testers, or clients.

We wrote a blog post about this project, it explains the 'Why' and has a walkthrough on how to use/deploy it (more 'How-to' style): How to distribute iOS IPA builds.

The project provides a single endpoint for uploading an .ipa build. It returns a publicly accessible, minimalistic installation page with a QR code - that simple. It is designed for easy deployment within your infrastructure via a Docker container. And the upload functionality is secured with a pre-shared authorization token (see "Configuration" below).

To maintain simplicity and focus, this project does not handle device ID registration or application building.

Usage

To run with Docker:

docker run \
  -p 8000:8000 \
  -v ipa-uploads:/uploads \
  -it ghcr.io/significa/ipa-app-distribution-server

To upload your first IPA app build (your-app-build.ipa in the working directory):

curl -X "POST" \
  "http://localhost:3000/upload" \
  -H "Accept: application/json" \
  -H "X-Auth-Token: secret" \
  -H "Content-Type: multipart/form-data" \
  -F "[email protected]"

This will return a link to the installation page.

More documentation in the Swagger OpenAPI explorer available on /docs.

Configuration

  • UPLOADS_SECRET_AUTH_TOKEN: Token used for uploads. PLEASE CHANGE IT! Default: secret.

  • APP_BASE_URL: The front-facing app URL for link generation. Defaults to http://localhost:8000.

  • STORAGE_URL: A PyFilesystem2 compatible URL. Defaults to osfs:///uploads for Docker installations, and osfs://./uploads when running directly with Python. This means /uploads and ./uploads respectively.

    Compatible with many storage backends. Check out the possible configurations in the index of filesystems.

    AWS S3 Example: s3://your-bucket-name (and then provide the credentials via the usual AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY).

Development

Requirements:

  • Python 3.11
  • Make tools

Useful development commands:

  • Setup a virtual environment (ex: make setup-venv).

  • Install the dependencies: make install-deps.

  • Start the development server: make dev.
    Open the interactive OpenAPI explorer: http://localhost:3000/docs.

  • When changes to the dependencies are made, freeze them in the lockfile with: make lock-deps.

License

GNU GPLv3


Built by Significa

ios-ipa-app-distribution-server's People

Contributors

tofran avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.