{"id":13549988,"url":"https://github.com/mazehall/eintopf","last_synced_at":"2025-04-02T23:31:37.341Z","repository":{"id":35539859,"uuid":"39811079","full_name":"mazehall/eintopf","owner":"mazehall","description":"The smartest way to share and administrate docker projects.","archived":true,"fork":false,"pushed_at":"2020-09-27T16:48:08.000Z","size":5718,"stargazers_count":64,"open_issues_count":0,"forks_count":6,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-02-09T00:32:12.816Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CoffeeScript","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/mazehall.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2015-07-28T03:28:13.000Z","updated_at":"2023-11-03T07:49:07.000Z","dependencies_parsed_at":"2022-08-17T15:41:05.116Z","dependency_job_id":null,"html_url":"https://github.com/mazehall/eintopf","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazehall%2Feintopf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazehall%2Feintopf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazehall%2Feintopf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mazehall%2Feintopf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mazehall","download_url":"https://codeload.github.com/mazehall/eintopf/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246911022,"owners_count":20853652,"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":[],"created_at":"2024-08-01T12:01:27.777Z","updated_at":"2025-04-02T23:31:33.563Z","avatar_url":"https://github.com/mazehall.png","language":"CoffeeScript","funding_links":[],"categories":["CoffeeScript","Apps","others"],"sub_categories":["Docker","Open Source"],"readme":"# ARCHIVED!\n\n[![Build Status](https://travis-ci.org/mazehall/eintopf.svg?branch=master)](https://travis-ci.org/mazehall/eintopf)\n\n# Eintopf\n\nA pot with the mixture of the smart development tools Docker, Vagrant and VirtualBox. Made to ease the chore of the\ndaily project works.\n\n![eintopf](resources/screen_eintopf.png)\n\n\n## Prerequisites\n\n* VirtualBox\n* Vagrant \u003e= 1.7\n* Git\n* WindowsOS: Gitbash (should be installed with the \"set environment variables\" option)\n\n\n## Installation\n\nMacOS, Windows and Linux Version available:\n[Download the latest version of eintopf] (https://github.com/mazehall/eintopf/releases)\n\nFor MacOS homebrewer:\n\n``` brew cask install eintopf ```\n\n\u003e On MaxOS and Linux the Eintopf VM is running with a NFS shared folder to speed up your projects. Please check your ```/etc/exports``` after an uninstall. Delete the line with the ```\u003c$EINTOPF_HOME\u003e/eintopf``` entry, if you also remove this folder.\n\n## How does it work?\n\n### Paths under Eintopf control\n\n* ```$HOME/.eintopf/default``` mapped inBox to ```/vagrant```\n  * The home of your Vagrantfile\n\n* ```$HOME/.eintopf/default/configs/*``` mapped inBox to ```/vagrant/configs```\n  * The home of your project descriptions with all docker configurations\n\n* ```HOME/eintopf/*``` mapped inBox to ```/projects```\n  * The home of your project sources\n\n### Ports and proxy magic\n\n host port | vm port   | description |\n---|---|---\n __4480__  | __4480__  | Proxy that provides all started docker container\n __4443__  | __4443__  | Proxy SSL termination point\n\n\nThe containers being proxied must [expose](https://docs.docker.com/reference/run/#expose-incoming-ports) the port to be proxied, either by using the `EXPOSE` directive in their `Dockerfile` or by using the `--expose` flag to `docker run` or `docker create`.\n\nProvided your DNS is setup to forward to the ip 127.0.0.1, the request will be routed to a container with the VIRTUAL_HOST env var set.\n\nFor more information see [Proxy compatibility](#proxy-compatibility) or see the proxy [documentation](https://github.com/jwilder/nginx-proxy)\n\n\n## Configuration\n\n\n### Eintopf config\n\nYou can configure your Eintopf through a config file in eintopfHome/eintopfNamespace/config.json (default: ~/.eintopf/default/config.json).\nThe configuration works partially, so you only have to set what you want to overwrite.\n\n    {\n      \"app\": {\n        \"defaultNamespace\": \"default\", # default Namespace for eintopf home\n        \"pathDefaultVagrantFile\": \"config/Vagrantfile.default\" # relative path to the Vagrant configuration\n      },\n      \"registry\": {\n        \"url\": \"http://registry.eintopf.io/files/projects.json\", # overwrite community registry \n        \"refreshInterval\": \"900000\", # set the interval in milliseconds to load the registry\n        \"private\": [\"http://127.0.0.1/eintopf-projects.json\"] # use your team registry\n      }\n    }\n\n\n### Vagrantfile\n\nThe used Vagrantfile is located in \u003cEINTOP_HOME\u003e/\u003ceintopfNamespace\u003e/Vagrantfile (default: ~/.eintopf/default/Vagrantfile). You can set your own settings and provisioning there.\n\nThe following settings are necessary so that Eintopf can use Vagrant :\n\n- Mount eintopfHome/eintopfNamespace/ in /vagrant\n- Mount Eintopf projects in /projects\n- Installed and running Docker with forwarded port 2375\n- Use of compatible Proxy container like mkodockx/docker-nginx-proxy with forwarded port 4480 and 4443\n\n\n### Environment variables\n\n- EINTOPF_HOME # set this to use a custom Eintopf home folder\n- REGISTRY_INTERVAL # set your own registry definition url here\n- REGISTRY_URL # set the interval in milliseconds to load the registry\n\n## Project description development\n\nA pattern is a project configuration which can be used by Eintopf.\n\nMinimal file system:\n\n    example-pattern/\n      package.json\n\nThe file package.json defines this package as a Eintopf pattern. Minimal package.json:\n\n    {\n      \"name\": \"example-pattern\",\n      \"eintopf\": {\n        \"name\": \"Example-pattern\", # pattern name\n        \"description\": \"This is my example-pattern. It can be used as ...\" # pattern description\n      }\n    }\n\n### Set your start and stop action\n\nTo make Eintopf actually do things you have to set a start and stop action of the pattern. In this case we want to execute simple sh scripts.\n\nFile system:\n\n    example-pattern/\n      package.json\n      start.sh\n      stop.sh\n\nExample package.json:\n\n    {\n      ...\n      \"scripts\": {\n        \"start\": \"sh ./start.sh\",\n        \"stop\": \"sh ./stop.sh\"\n      },\n      ...\n    }\n\nExample start.sh:\n\n    #/bin/sh\n    \n    docker run -d --name examplepatterndev -e VIRTUAL_HOST=example-pattern.dev nginx\n\nExample stop.sh\n\n    #/bin/sh\n    \n    docker stop examplepatterndev\n\n\n### Custom actions\n\nYou can set custom actions which can be used in the Eintopf gui.\n\nFile system:\n\n    example-pattern/\n      package.json\n      start.sh\n      stop.sh\n      customaction1.sh\n      customaction2.sh\n      \nExample package.json:\n\n    {\n      ...\n      \"scripts\": {\n        \"start\": \"sh ./start.sh\",\n        \"stop\": \"sh ./stop.sh\",\n        \"action1\": \"sh ./customaction1.sh\",\n        \"action2\": \"sh ./customaction2.sh\"\n      },\n      \"eintopf\": {\n        \"name\": \"Example-pattern\",\n        \"description\": \"This is my example-pattern. It can be used as ...\",\n        \"actions\": [\n        {\n          \"name\": \"customaction1\",\n          \"script\": \"action1\" # maps to scripts.action1\n        },\n        {\n          \"name\": \"customaction2\",\n          \"warning\": \"my custom action 2. This should execute script customaction2.sh\",\n          \"script\": \"action2\" # maps to scripts.action2\n        }\n      ]\n      ...\n    }\n\n### Proxy compatibility\n\nThe full proxy documentation can be found [here](https://github.com/jwilder/nginx-proxy).\n\nThe containers being proxied must [expose](https://docs.docker.com/reference/run/#expose-incoming-ports) the port to be proxied, either by using the `EXPOSE` directive in their `Dockerfile` or by using the `--expose` flag to `docker run` or `docker create`.\n\nProvided your DNS is setup to forward foo.bar.com to the a host running nginx-proxy, the request will be routed to a container with the VIRTUAL_HOST env var set.\n\n#### Multiple ports\n\nIf your container exposes multiple ports, the proxy will default to the service running on port 80.  If you need to specify a different port, you can set a VIRTUAL_PORT env var to select a different one.  If your container only exposes one port and it has a VIRTUAL_HOST env var set, that port will be selected.\n\n#### Multiple hosts\n\nIf you need to support multiple virtual hosts for a container, you can separate each entry with commas.  For example, `foo.bar.com,baz.bar.com,bar.com` and each host will be setup the same.\n\n#### Wildcard hosts\n\nYou can also use wildcards at the beginning and the end of host name, like `*.bar.com` or `foo.bar.*`. Or even a regular expression, which can be very useful in conjunction with a wildcard DNS service like [xip.io](http://xip.io), using `~^foo\\.bar\\..*\\.xip\\.io` will match `foo.bar.127.0.0.1.xip.io`, `foo.bar.10.0.2.2.xip.io` and all other given IPs. More information about this topic can be found in the nginx documentation about [`server_names`](http://nginx.org/en/docs/http/server_names.html).\n\n\nExamples:\n    \n    docker run -d --name examplepatterndev -e VIRTUAL_HOST=example-pattern.dev nginx\n    docker run -d --name examplepatterndev2 -e VIRTUAL_HOST=*.example-pattern.dev --expose 3000 nodejs # supports wildcard certificates\n    docker run -d --name examplepatterndev3 -e VIRTUAL_HOST=example-pattern3.dev --expose 3000 nodejs\n\nExample docker-compose.yml:\n\n    examplepatterndev:\n      image: nginx\n      environment:\n        - VIRTUAL_HOST=example-pattern.dev\n    ...\n\n### SSL certificates\n\nYou can add your own ssl certificates which will be used by the proxy. The certificate files have to match the VIRTUAL_HOST name and have to end with .key and .crt.\n\nThe files will be updated on pattern installation and on pattern update. They will be removed on pattern deletion. If the container was already running while installing the certs, you have to restart the container.\n\nAll certificates are collected in eintopfHome/eintopfNamespace/proxy/certs/ (default: ~/.eintopf/default/proxy/certs/)\n\nFile system:\n\n    configs/\n      example-pattern/\n        package.json\n        start.sh\n        stop.sh\n        certs/\n          example-pattern.dev.key\n          example-pattern.dev.crt\n    proxy/\n      certs/ # certificates are collected here\n        example-pattern.dev.key\n        example-pattern.dev.crt\n\n\n----\n\n# Development\n\n## Project's folders\n\n- `src` - application code\n- `releases` - ready for distribution installers will land here.\n- `resources` - resources for particular operating system.\n- `tasks` - build and development environment scripts.\n\n## Preparation\n\n```\nnpm install\n```\nInstalls package dependencies.\n\n### Starting the app\n\n```\nnpm start\n```\n### Npm package building\n\nAll npm packages are build against the electron node version. This is configured in the .npmrc file. If you use a newer electron version change it in .npmrc (target = ... ) as well.\nLook [(here)](https://github.com/atom/electron/blob/master/docs/tutorial/using-native-node-modules.md) for more info.\n\n### Making a release\n\n**Note:** There are various icon and bitmap files in `resources` directory. Those are used in installers and are intended to be replaced by your own graphics.\n\nTo make ready for distribution installer use command:\n```\nnpm run release\n```\nIt will start the packaging process for operating system you are running this command on. Ready for distribution file will be outputted to `releases` directory.\n\nYou can create Windows installer only when running on Windows, the same is true for Linux and OSX. So to generate all three installers you need all three operating systems.\n\n\n## Special precautions for Windows\nAs installer [NSIS](http://nsis.sourceforge.net/Main_Page) is used. You have to install it (version 3.0), and add NSIS folder to PATH in Environment Variables, so it is reachable to scripts in this project (path should look something like `C:/Program Files (x86)/NSIS`).\n\n\n# License\n\nThe MIT License (MIT)\n\nCopyright (c) 2015 Mazehall\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazehall%2Feintopf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmazehall%2Feintopf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmazehall%2Feintopf/lists"}