{"id":16102414,"url":"https://github.com/sshaw/itunes_store_transporter_web","last_synced_at":"2025-08-16T16:32:48.897Z","repository":{"id":4260434,"uuid":"5387172","full_name":"sshaw/itunes_store_transporter_web","owner":"sshaw","description":"iTunes Store Transporter GUI: GUI and workflow automation for the iTunes Store’s Transporter (iTMSTransporter)","archived":false,"fork":false,"pushed_at":"2020-04-18T00:54:05.000Z","size":4693,"stargazers_count":80,"open_issues_count":5,"forks_count":10,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-12-01T15:06:54.272Z","etag":null,"topics":["app-store","apple","audio","automation","gui","itmstransporter","itunes","metadata","movies","padrino","ruby","video"],"latest_commit_sha":null,"homepage":"http://transportergui.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sshaw.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-08-12T08:48:21.000Z","updated_at":"2024-08-16T02:57:18.000Z","dependencies_parsed_at":"2022-08-29T11:10:18.348Z","dependency_job_id":null,"html_url":"https://github.com/sshaw/itunes_store_transporter_web","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshaw%2Fitunes_store_transporter_web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshaw%2Fitunes_store_transporter_web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshaw%2Fitunes_store_transporter_web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sshaw%2Fitunes_store_transporter_web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sshaw","download_url":"https://codeload.github.com/sshaw/itunes_store_transporter_web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229788101,"owners_count":18124187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["app-store","apple","audio","automation","gui","itmstransporter","itunes","metadata","movies","padrino","ruby","video"],"created_at":"2024-10-09T18:53:45.828Z","updated_at":"2024-12-17T00:43:24.769Z","avatar_url":"https://github.com/sshaw.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# iTunes Store Transporter: GUI\n\n[![Build Status](https://secure.travis-ci.org/sshaw/itunes_store_transporter_web.svg)](https://secure.travis-ci.org/sshaw/itunes_store_transporter_web)\n[![Windows Build status](https://ci.appveyor.com/api/projects/status/cgv9vi00y0hao3tx?svg=true)](https://ci.appveyor.com/project/sshaw/itunes-store-transporter-web)\n[![Maintainability](https://api.codeclimate.com/v1/badges/5bd1ae31776ceb7977f0/maintainability)](https://codeclimate.com/github/sshaw/itunes_store_transporter_web/maintainability)\n\nGUI and workflow automation for the iTunes Store's Transporter (iTMSTransporter)\n\n* [Installation](#installation)\n* [Configuration](#configuration)\n* [API](https://github.com/sshaw/itunes_store_transporter_web/wiki/API)\n* [Email Notifications](https://github.com/sshaw/itunes_store_transporter_web/wiki/Email-Notification-Templates)\n* [Job Hooks](https://github.com/sshaw/itunes_store_transporter_web/wiki/Job-Hooks)\n* [More Info](#more-info)\n\n## Overview\n\n### Job Queue\n\n![Jobs Queue](http://sshaw.github.com/itunes_store_transporter_web/images/job-queue.png)\n\n### Upload Packages\n\n![Upload](http://sshaw.github.io/itunes_store_transporter_web/images/upload-form.png)\n\n![Package Browser](http://sshaw.github.com/itunes_store_transporter_web/images/browser.png)\n\n![Upload in Progress](http://sshaw.github.com/itunes_store_transporter_web/images/upload-running.png)\n\n### Check Package Status\n\n![Status Job](http://sshaw.github.com/itunes_store_transporter_web/images/status-job-results.png)\n\n### Retrieve Metadata\n\n![Metadata Job](http://sshaw.github.com/itunes_store_transporter_web/images/lookup-job-results.png)\n\n### Verify Packages\n\n![Verification Job](http://sshaw.github.com/itunes_store_transporter_web/images/verify-job-results.png)\n\n**...and more!**\n\n## Requirements\n\n* Ruby \u003e= 1.9 and \u003c 2.5\n* [iTunes Store Transporter](http://www.apple.com/itunes/sellcontent)\n* A database driver\n\nIn most cases the database driver must be compiled against an underlying database library.\n**You must [install the underlying library](https://github.com/sshaw/itunes_store_transporter_web/wiki/Installation-Guides#system-dependencies) yourself**.\nThe [installation script](#installation) will only attempt to install the\nRuby portion which will fail if the underlying library is not found.\n\n## Installation\n\n### Docker\n\nCheckout [our Docker section of the wiki](https://github.com/sshaw/itunes_store_transporter_web/wiki/Installation-Guides#system-install).\n\n### Linux/maxOS/Windows\n\nSystem specific instructions can be found [here](https://github.com/sshaw/itunes_store_transporter_web/wiki/Installation-Guides).\nOtherwise:\n\n    unzip itunes_store_transporter_web-VERSION.zip\n    cd itunes_store_transporter_web-VERSION\n    ruby ./install.rb\n\nFor installation options see `ruby ./install.rb --help`.\n\nNote that running `install.rb` *does* *not* install the iTunes Store Transporter (`iTMSTransporter`). If you're on OS X\nyou can install the Transporter by [installing Xcode](https://developer.apple.com/xcode/downloads).\nOtherwise, you'll have to [create an iTunes Connect account](http://www.apple.com/itunes/working-itunes/sell-content/)\nand install it yourself.\n\nStart the webserver\n\n    ./bin/itmsweb start\n\nStart the worker\n\n\t./bin/itmsworker\n\n## Configuration\n\nIn this section `ROOT` refers to the directory containing the website.\n\nConfiguration options can be set in `ROOT/config/itmsweb.yml` or via\nenvironment variables. Environment variables have precedence over values in the config file.\n\nThe environment variable examples assume an `sh`-like shell on GNU/Linux.\n\n### Database\n\n#### Config File\n\nDatabase configuration is contained within the `database` section of the configuration file (`ROOT/config/itmsweb.yml`).\nIt is used by the web server *and* the worker.\n\nBy default it will contain the information provided to the install script. Here's an example:\n\n    # itmsweb.yml\n\n    database:\n      adapter: mysql2 # DB driver (or sqlite3, postgresql, etc...)\n      database: itmsweb # DB table\n      host: db.example.com\n      username: sshaw\n      password: ______Weee!@$%\n\n#### Environment Variable\n\nSet `ITMS_DATABASE_URL` to the appropriate connection string.\n\nExample:\n\n    # SQLite\n    export ITMS_DATABASE_URL=sqlite3:path/to/database?timeout=5000\n    # MySQL\n    export ITMS_DATABASE_URL=mysql2://username:password@hostname/database\n\n### Webserver\n\n#### Starting/stopping\n\n    cd ROOT\n    ./bin/itmsweb start  # start the server on 0.0.0.0 port 3000\n    ./bin/itmsweb stop\n\n#### Usage\n\n\titmsweb \u003cstart|stop|restart\u003e [OPTIONS]\n\n\tstart options:\n\n\t-h HOST     # Bind to HOST address\n\t-p PORT     # Use PORT, default: 3000\n\t-d          # Run daemonized in the background\n\t-i PID      # Use PID as the PID file, default: ROOT/tmp/pids/server.pid\n\t-a HANDLER  # Rack Handler (default: autodetect)\n\n\tstop options:\n\n\t-i PID      # Path to PID file of running process\n\t\t\t\t# Required if you started the server with a custom PID path\n\n#### Logging\n\nErrors are logged to `ROOT/log/production.log`.\n\n### Worker Processes\n\nJobs created through the website are added to the jobs queue. In order for jobs in the queue to be processed a\nworker process (or many workers processes) must be running.\n\nThe default worker process will run jobs, send email notifications, and execute job hooks.\nDepending on the type of workload you have (for example, a lot of pending jobs or long-running jobs hooks),\nit may be a good idea to start a worker process dedicated to a specific task.\nThis can be done by passing a parameter to the `itmsworker` worker command specify the type of jobs it should process:\n\n    ./bin/itmsworker TYPE\n\nWhere `TYPE` is `notifications`, `hooks`, or `jobs`.\n\n`jobs` is the default, it will process everything.\n\n#### Job Priority\n\nThe default (`jobs`) worker supports the `MIN_PRIORITY` and/or `MAX_PRIORITY` environment variables. These limit the worker to\njobs with certain priorities.\n\n    MIN_PRIORITY=high ./bin/itmsworker jobs\n\nA job's priority can be set when the job is submitted.\n\n#### Running a remote worker process\n\nTODO\n\n### Website\n\n#### File browser's root directory\n\nThe file browser's root directory defaults to the root directory of the machine running the web\nserver (that's `\"/\"`, not the web server's document root). On Windows the machine's volumes (`C:`, `D:`, etc...) will be\nused instead.\n\nNote that all directories *must* be accessable by the worker process.\n\n##### Config File\n\nThis can be changed by setting `file_browser_root_directory` to the path of the desired root directory.\nA list of root directories can also be used\n\n    # itmsweb.yml\n\n    file_browser_root_directory: /mnt/nas\n    # other options...\n\n    # Or, restrict it to a set of directories\n    file_browser_root_directory:\n      - /mnt/nas01\n      - /mnt/nas02\n\n##### Environment Variable\n\nSet `ITMS_FILE_BROWSER_ROOT_DIRECTORY` to the desired directory. Multiple directories can be separated by a colon (`:`).\n\nExample:\n\n    export ITMS_FILE_BROWSER_ROOT_DIRECTORY=/some/root/directory\n    # Use multiple roots\n    export ITMS_FILE_BROWSER_ROOT_DIRECTORY=/root/one:/root/two\n\n##### A Note on Multiple Directories\n\nThere is a difference between using a single root directory and using a set of directories: if you use a single root directory\nthe file browser will deault to displaying *all* the files under that directory.\nIf multiple root directories are used the browser will default to displaying the names\nof these directories, *not* their contents.\n\n\n#### Preventing users from changing the Transporter path\n\nBy default the `iTMSTransporter` path can be set by visiting the config page. For client/server (i.e., non-local)\nsetups it might be desirable to prevent users from changing it. This can be done by setting the `allow_select_transporter_path`\noption to `false`. This will prevent the config page from displaying the `iTMSTransporter` path dialog.\n\nIt's best to set this option *after* setting the `iTMSTransporter` path, as there is currently\nno concept of users and roles so when this is set to `false` *no one* will be able to change the path.\n\n##### Config File\n\n    # itmsweb.yml\n\n    allow_select_transporter_path: false\n    # other options...\n\n##### Environment Variable\n\nSet `ITMS_ALLOW_SELECT_TRANSPORTER_PATH` to `\"false\"` to disable.\n\n#### iTMSTransporter output logs\n\nEverytime a worker process runs `iTMSTransporter` its output is saved and made available through the website.\nBy default the output logs are saved in `ROOT/var/lib/output`. This location can be changed by setting the `output_log_directory`\noption to the desired directory.\n\nThis directory *must* be accessible by the worker *and* website processes.\n\n##### Config File\n\n    # itmsweb.yml\n\n    output_log_directory: /mnt/log/itunes\n    # other options...\n\n##### Environment Variable\n\nSet `ITMS_OUTPUT_LOG_DIRECTORY` to the desired directory.\n\nExample:\n\n    export ITMS_OUTPUT_LOG_DIRECTORY=/some/directory\n\n## More Info\n\n* [Website](http://transportergui.com)\n* [Wiki](http://github.com/sshaw/itunes_store_transporter_web/wiki)\n* [Source](http://github.com/sshaw/itunes_store_transporter_web)\n* [Bugs](http://github.com/sshaw/itunes_store_transporter_web/issues)\n* [iTunes::Store::Transporter Gem](http://github.com/sshaw/itunes_store_transporter)\n* [Padrino Web Framework](http://padrinorb.com)\n\n---\n\nMade by [ScreenStaring](http://screenstaring.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshaw%2Fitunes_store_transporter_web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsshaw%2Fitunes_store_transporter_web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsshaw%2Fitunes_store_transporter_web/lists"}