{"id":18683563,"url":"https://github.com/scify/innosetup-exe-builder","last_synced_at":"2026-05-16T06:36:15.063Z","repository":{"id":210197681,"uuid":"725958289","full_name":"scify/innosetup-exe-builder","owner":"scify","description":"A thin flask app to create windows executable for a given Innosetup configuration.","archived":false,"fork":false,"pushed_at":"2026-02-23T05:07:51.000Z","size":177,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-23T13:36:07.595Z","etag":null,"topics":["build","build-tool","innosetup","innosetup-programming","windows"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scify.png","metadata":{"files":{"readme":"README.MD","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"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":"2023-12-01T08:24:18.000Z","updated_at":"2026-02-23T05:07:52.000Z","dependencies_parsed_at":"2023-12-21T10:50:10.498Z","dependency_job_id":"d4db0e0c-023f-40f6-8f9f-9f28b2cf6552","html_url":"https://github.com/scify/innosetup-exe-builder","commit_stats":null,"previous_names":["scify/memori-exe-builder"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scify/innosetup-exe-builder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scify%2Finnosetup-exe-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scify%2Finnosetup-exe-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scify%2Finnosetup-exe-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scify%2Finnosetup-exe-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scify","download_url":"https://codeload.github.com/scify/innosetup-exe-builder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scify%2Finnosetup-exe-builder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33092715,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["build","build-tool","innosetup","innosetup-programming","windows"],"created_at":"2024-11-07T10:14:57.104Z","updated_at":"2026-05-16T06:36:15.030Z","avatar_url":"https://github.com/scify.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Inno Setup-exe-builder\n\nThis API provides the ability to build a Windows executable installer.\n\nTypically, this is accomplished using [Wine](https://www.winehq.org/) and [InnoSetup](https://jrsoftware.org/isinfo.php) on the same server. However, maintaining this setup has become increasingly difficult due to compatibility issues with newer 64-bit distributions.\n\nWe created a thin flask application that serves as the wrapper for a Docker-based solution, and acts as a builder for .exe installers.\n\n## Introduction\n\nThis guide explains how to create a Windows executable using Inno Setup and Wine, utilizing a temporary Docker container as the builder. This functionality is utilized by our Flask application to generate the Windows executable installer at the request of the client application.\n\n## Api routes exposed\n\nThis api exposes a `/compile` route, which takes 2 parameters:\n\n* `path`: the absolute path of the directory that Innosetup config file resides\n* `file_name` (OPTIONAL): the file name of the Innosetup config file (.iss file)\n\n## How to Setup/Run this app\n\nTo run this app we will use gunicorn.\n\n### Create a virtual environment and install the dependencies\n\n\nTo set up the environment and run the application, follow these steps:\n\n1. Install `virtualenv` by visiting the [official installation guide](https://virtualenv.pypa.io/en/latest/installation.html).\n2. Create a new environment by running `virtualenv env_name`. Refer to the [user guide](https://virtualenv.pypa.io/en/latest/user_guide.html) for more details.\n3. Activate the environment by running `source /path/to/newly/created/env/bin/activate`.\n4. Install the required dependencies by running `pip install -r requirements.txt`.\n5. Navigate to the `project_root/src` directory.\n6. Run the application using the following command:\n    ```bash\n    gunicorn --conf gunicorn_conf.py --bind 0.0.0.0:\u003clocal-port\u003e main:app\n    ```\n7. Test a `POST` request to [http://0.0.0.0:\u003clocal-port\u003e/compile](http://0.0.0.0:\u003clocal-port\u003e/compile)\n\n## Instructions to set up building exe installer manually\n\n#### Creating Installers with Docker\n\nTo create the installers for the required client application, we will utilize a Docker container. \n\nThis approach allows us to run commands within the container and generate the installer in the mounted directory.\n\n#### Setup Instructions\n\n1. Install Docker by following the instructions provided in the [official Docker documentation](https://docs.docker.com/engine/install/ubuntu/).\n2. Add your user to the Docker group to ensure proper permissions.\n3. Pull the required Docker image by executing the following command:\n    ```bash\n    docker pull amake/innosetup:innosetup6\n    ```\n4. Test that the Docker image is working correctly by running the following commands:\n    ```bash\n    su - server_user\n    cd /path/to/dir/with/iss-file\n    docker run --rm -i -v $PWD:/work amake/innosetup:innosetup6 \u003ciss-file-name\u003e\n    ```\n\n    **Note:** Make sure to include the Docker image tag to avoid inconsistent results.\n\n#### Bash Script for Convenience\n\n```text\n#!/usr/bin/env bash\n\nexec docker run --rm -i -v $PWD:/work amake/innosetup:innosetup6 \"$@\"\n```\n\n#### Access problems when creating file\n\nDepending on configured permissions on current directory, the container may not have write access to the mounted folder. This means, that will not be able to create the \"Output\" folder, and would not be able to create files inside.\n\nTo mitigate that we could expand our script to:\n1. create a folder \"Output\"\n2. Add write permission to any 777\n3. Create executable\n4. Change back the permissions\n\n```text\n#!/usr/bin/env bash\n\n# Create the Output directory if it doesn't exist\nif [ ! -d \"Output\" ]; then\n  mkdir Output\n  chmod 777 Output\nfi\nexec docker run --rm -i -v $PWD:/work amake/innosetup:innosetup6 \"$@\"\nchmod 775 Output\n```\n\n## Credits\n\n- [SciFY Dev Team](https://github.com/scify)\n\n## License\n\nThe Apache Licence. Please see the [Licence File](LICENCE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscify%2Finnosetup-exe-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscify%2Finnosetup-exe-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscify%2Finnosetup-exe-builder/lists"}