{"id":16130196,"url":"https://github.com/lambdacasserole/pontoon","last_synced_at":"2025-04-06T14:14:53.945Z","repository":{"id":75385939,"uuid":"39163946","full_name":"lambdacasserole/pontoon","owner":"lambdacasserole","description":" Mini deployment system.","archived":false,"fork":false,"pushed_at":"2018-06-03T19:55:44.000Z","size":191,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-12T20:17:21.534Z","etag":null,"topics":["build","deployment","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lambdacasserole.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.yml.dist","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-15T22:18:23.000Z","updated_at":"2018-06-03T19:55:45.000Z","dependencies_parsed_at":"2023-06-06T09:00:35.068Z","dependency_job_id":null,"html_url":"https://github.com/lambdacasserole/pontoon","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdacasserole%2Fpontoon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdacasserole%2Fpontoon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdacasserole%2Fpontoon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lambdacasserole%2Fpontoon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lambdacasserole","download_url":"https://codeload.github.com/lambdacasserole/pontoon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247492543,"owners_count":20947545,"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":["build","deployment","php"],"created_at":"2024-10-09T22:14:57.721Z","updated_at":"2025-04-06T14:14:53.911Z","avatar_url":"https://github.com/lambdacasserole.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pontoon\n\nPontoon is a simple and straightforward tool for running deploy scripts from a web service.\n\n![Screenshot](screenshot.png)\n\n## Prerequisites\nYou'll need to have a web server installed and configured with PHP for this to work. I really recommend [XAMPP](https://www.apachefriends.org/), especially for Windows users. Once you've done that you can proceed.\n\nYou'll also need [Node.js](https://nodejs.org/en/) and [npm](https://www.npmjs.com/) installed and working.\n\n## Building\nClone the project down and open the folder in your favourite editor. It's a JetBrains PhpStorm project but you can use whichever paid/free software takes your fancy.\n\nBefore anything else, note that this project uses the [Composer](https://getcomposer.org/) package manager. Install composer (see their website) and run:\n\n```\ncomposer install\n```\n\nOr alternatively, if you're using the PHAR (make sure the `php.exe` executable is in your PATH):\n\n```\nphp composer.phar install\n```\n\nThen, install the npm packages necessary to build and run the website. Run the following in your terminal in the project root directory:\n\n```\nnpm install\n```\n\nThis will install [Bower](https://bower.io/) which will allow you to install the assets the website requires (Bootstrap, jQuery etc.) using the command:\n\n```\nbower install\n```\n\nGulp will also have been installed. This will compile the [Less](http://lesscss.org/) into CSS ready for production. Do this using the command:\n\n```\ngulp\n```\n\nThis command will need running again every time you make a change to a Less file. If you're working on them, run `gulp watch` in a terminal to watch for file changes and compile accordingly.\n\n## Installation\nPontoon comes with a set of default credentials in `security.yml.dist`:\n\n```\nEmail: me@example.com\nPassword: demo\n```\n\nThese *must* be changed before you go into production, so sort these out first:\n\n* Copy `security.yml.dist` and rename the copy to `security.yml`\n* Follow the installation guide for [Minim](https://github.com/lambdacasserole/minim) which Pontoon uses as its authentication system.\n\nAfter you've done that, set up the Pontoon configuration file:\n\n* Copy `config.yml.dist` and rename the copy to `config.yml`.\n* Open up `config.yml` in your favorite text editor.\n* Change `root_path` to the path of the directory containing all your websites.\n* Change `api_key` to a random string at least 12 characters long and keep it secret.\n* Change `id_salt` to a random string at least 12 characters long. This is used to generate unique project IDs without giving away information about the directory in which your website resides, so it's best to keep it a secret.\n\nNext, you should make sure your `www-data` user can run `git` and has an SSH key configured on your server and GitHub account. An excellent tutorial for this can be found [here](http://technotes.tumblr.com/post/33867325150/php-hook-script-that-can-git-pull).\n\n## Configuring Your Websites\nNote that all your website directories must be under one single root directory, and each must contain a `pontoon.yml` file at its root level to be deployable. A `pontoon.yml` file has the following structure:\n\n```yaml\nproject_name: My Website\ndescription: My first website deployed with Pontoon!\ndeploy_enabled: true\ndeploy_script: deploy.sh\nscripting_exe: bash\n```\n\nThe Pontoon web application will list directories containing files like this as deployable applications, allowing you to deploy them using your Pontoon installation.\n\nFor example, you might put the following into your deploy.sh file:\n\n```bash\ncd /var/www/html\necho git pull\n```\n\nNow, when you click 'deploy' on the Pontoon web interface, a command will be executed of the form:\n\n```\n\u003cscripting_exe\u003e \u003cdeploy_script\u003e\n```\n\nWhich in this instance, looks like:\n\n```\nbash deploy.sh\n```\n\nSo a `git pull` will be executed on your web directory, deploying the site from your Git repository to your live server.\n\n## Automatic Deployments\nTo deploy automatically from a Git repository, configure your repository management system to send a request to the following URL on push:\n\n```\nhttps://your-pontoon-installation.com/go.php?project=project_id\u0026key=api_key\n```\n\nWhere `api_key` is the key specified in your `config.yml` file and `project_id` is the deploy ID you can find by logging in to the web app.\n\n## Limitations\n\nThis system is designed to be quite dumb and extremely simple. It won't replace any of your CI tools.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdacasserole%2Fpontoon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flambdacasserole%2Fpontoon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flambdacasserole%2Fpontoon/lists"}