{"id":23843873,"url":"https://github.com/oppodelldog/droxy","last_synced_at":"2025-09-07T19:32:19.405Z","repository":{"id":53396049,"uuid":"119752360","full_name":"Oppodelldog/droxy","owner":"Oppodelldog","description":"Create commands on your machine that proxy docker run / exec calls","archived":false,"fork":false,"pushed_at":"2023-10-31T00:19:26.000Z","size":15146,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-06-21T13:10:19.234Z","etag":null,"topics":["command","command-line-tool","container","developer-tools","docker","docker-tools","linux","proxy","run"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Oppodelldog.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":null,"support":null,"governance":null}},"created_at":"2018-01-31T22:35:50.000Z","updated_at":"2024-06-08T15:45:29.000Z","dependencies_parsed_at":"2022-09-16T04:21:26.567Z","dependency_job_id":"494b8471-6738-4aab-bbef-b54a7b621b3c","html_url":"https://github.com/Oppodelldog/droxy","commit_stats":null,"previous_names":["oppodelldog/docker-proxy-command"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oppodelldog%2Fdroxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oppodelldog%2Fdroxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oppodelldog%2Fdroxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Oppodelldog%2Fdroxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Oppodelldog","download_url":"https://codeload.github.com/Oppodelldog/droxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":232250733,"owners_count":18494772,"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":["command","command-line-tool","container","developer-tools","docker","docker-tools","linux","proxy","run"],"created_at":"2025-01-02T19:51:27.510Z","updated_at":"2025-01-02T19:51:28.172Z","avatar_url":"https://github.com/Oppodelldog.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Droxy\n\u003e create commands that proxy to docker\n  \n\n![DROXY](droxy.png)\n\n## Getting started\nIf you have go installed on your machine simply install it.  \n```go install github.com/Oppodelldog/droxy@latest```  \n\nOtherwise, download a precompiled binary from [releases](https://github.com/Oppodelldog/droxy/releases).  \n\n**Wiki**  \nTake a look at the wiki examples to learn how to set up custom commands  \n[https://github.com/Oppodelldog/droxy/wiki](https://github.com/Oppodelldog/droxy/wiki)\n\n\n## Configuration\nIn ```droxy.toml``` you define the commands you want to create.   \n\nThe following example contains all possible configuration options.\n\n**droxy.toml:**  \n```TOML\n    Version=\"1\"\n\n    [[command]]\n      name = \"basic command\"  # name of the command\n      isTemplate = true       # this command can be used as a template, no command will be created\n      addGroups = true        # add current systems groups  (linux only)\n      impersonate = true      # use executing user and group for execution in the container (linux only)\n      workDir = \"/app\"        # define working directory\n      autoMountWorkDir=true   # if true and workDir exists on host it will be added to volume mounts\n      removeContainer=true    # remove container after command has finished\n      isInteractive=true      # enable interaction with the called command\n      isDetached=false        # starts the container in background\n      RequireEnvVars=false    # if true, not defined env vars that are configured will lead to an error\n      uniqueNames=true        # will generate unique container names for every run.\n      os = \"linux\"            # if set this config will load if executed on linux. \n      mergeTemplateArrays = [\"Volumes\"] # in command config this will merge Volumes instead of overwriting them\n      # volume mappings\n      volumes = [\n          \"${HOME}:${HOME}\",\n          \"${SSH_AUTH_SOCK}:/run/ssh.sock\",\n          \"/etc/passwd:/etc/passwd:ro\",\n          \"/etc/group:/etc/group:ro\",\n          \"/run/docker.sock:/run/docker.sock\"\n      ]\n      tmpfs = [\n          \"/tmpfs1\"\n      ]\n\n      # environment variable mappings\n      envvars = [\n          \"HOME=${HOME}\",\n          \"SSH_AUTH_SOCK=/run/ssh.sock\",\n          \"DOCKER_HOST=unix:///run/docker.sock\"\n      ]\n\n      links = [\n        \"containerXY:aliasXY\"\n      ]\n\n      ports = [\n        \"8080:80\"\n      ]\n\n      portsFromParams = [\n          \"some regex where the group (\\\\d*) parses the port from\",\n      ]\n\n    [[command]]\n        template = \"basic command\"  # apply settings from template 'basic command' to this command\n    \tname = \"php\"                # name of the command which is created by calling 'docker-proxy symlinks'\n    \tentryPoint = \"php\"          # basic binary to execute inside the container\n    \timage = \"php:7.1.13\"        # docker image the container is run on\n\n    [[command]]\n        template = \"basic command\"\n    \tname = \"phpstorm-php-unittest-integration\"\n    \tentryPoint = \"php\"\n    \timage = \"php:7.1.13\"\n\n    \t# replace  127.0.0.1 with docker ip of host\n        replaceArgs = [\n            [\n              \"-dxdebug.remote_host=127.0.0.1\",\n              \"-dxdebug.remote_host=172.17.0.1\"\n            ]\n        ]\n\n        # ensure xdebug will startup and communicate\n        additionalArgs = [\"-dxdebug.remote_autostart=1\"]\n\n```\n\n## Create commands\nOnce you have set up your config, you want to create commands out of it.\nTo generate the command binaries, navigate next to droxy.toml file and execute:\n```bash\n    droxy clones\n```\n\nBy default ```droxy clones``` will not overwrite existing files.  \nIf you update droxy and want to update your commands as well, add flag ```-f``` which will overwrite existing files.\n\n### creation alternatives\nBeside creating clones of droxy there are two other options the droxy-files can be created:\n* symlinks\n* hardlinks\n\n**Here are their pros and cons**\n\n| subcommand | pro                                                               | con                                                                                                        |\n|------------|-------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|\n| clones     | the command knows its directory, will find config next to command | takes more disk space                                                                                         |\n| symlinks   | takes less disk space                                             | cannot determine the commands directory, you have to provide a config filepath by env var ```$DROXY_CONFIG``` |\n| hardlinks  | takes less disk space and knows directory                         | harder to maintain                                                                                            |   \n\n## Contribute\nFeature requests and pull requests are welcome.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foppodelldog%2Fdroxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foppodelldog%2Fdroxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foppodelldog%2Fdroxy/lists"}