{"id":17358445,"url":"https://github.com/sbraveyoung/dev-env-linux","last_synced_at":"2026-01-18T09:01:51.991Z","repository":{"id":129665691,"uuid":"249867003","full_name":"sbraveyoung/dev-env-linux","owner":"sbraveyoung","description":"A modern linux development environment based on docker.","archived":false,"fork":false,"pushed_at":"2023-12-08T20:44:27.000Z","size":187,"stargazers_count":2,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T13:13:15.936Z","etag":null,"topics":["development","docker","linux","modern-linux","modern-unix"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/sbraveyoung.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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}},"created_at":"2020-03-25T02:21:04.000Z","updated_at":"2024-10-12T06:14:14.000Z","dependencies_parsed_at":"2023-12-08T21:31:05.359Z","dependency_job_id":null,"html_url":"https://github.com/sbraveyoung/dev-env-linux","commit_stats":null,"previous_names":["sbraveyoung/dev-env-linux"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sbraveyoung/dev-env-linux","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbraveyoung%2Fdev-env-linux","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbraveyoung%2Fdev-env-linux/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbraveyoung%2Fdev-env-linux/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbraveyoung%2Fdev-env-linux/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbraveyoung","download_url":"https://codeload.github.com/sbraveyoung/dev-env-linux/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbraveyoung%2Fdev-env-linux/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28534154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["development","docker","linux","modern-linux","modern-unix"],"created_at":"2024-10-15T19:05:30.481Z","updated_at":"2026-01-18T09:01:51.944Z","avatar_url":"https://github.com/sbraveyoung.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dev-env-linux\nA modern linux development environment based on docker, inspired by [the-art-of-command-line](https://github.com/jlevy/the-art-of-command-line), [awesome-shell](https://github.com/alebcay/awesome-shell) and [modern-unix](https://github.com/ibraheemdev/modern-unix), but more than that.\n\n## features\n* Awesome vim powered by [xvim](https://github.com/adwpc/xvim).\n* Awesome tmux with true color support.\n* Awesome ssh to connect other mechine including your local host and remote host, support relay mode.\n* Useful bash alias and function definition in `.bashrc`.\n* All tools introduced in [modern-unix](https://github.com/ibraheemdev/modern-unix).\n* GUI support driven by X11.\n* More lightweight than virtual machines.\n* Build once, run anywhere. Especially handy when you get a new computer.\n* Works out of the box.\n* more waiting for you to discover.\n\n## build\n\n#### environments\nYou should prepare those environments first:\n```shell\nexport USER_NAME      = your_dockerhub_user\nexport IMAGE_NAME     = image_name_you_want\nexport IMAGE_VERSION  = image_version_you_want\nexport NORMAL_USER    = normal_user_name_you_want\nexport NORMAL_PASSED  = normal_user_password_you_want\nexport ROOT_PASSWD    = root_password_you_want\nexport CONTAINER_NAME = dev-linux-env #or any name you want\n\n#If you want to use ssh easily, prepare:\nexport HOST_USER        = your_host_user\nexport HOST_PASSWD      = your_host_passwd\nexport COMPANY_USER     = your_name_in_company\nexport COMPANY_PASSWD   = your_passwd_in_company\nexport RELAY_ADDR       = relay_addr_in_company\n```\n\n*If you have a VPN, you may need to add the `--build-arg proxy='socks5://host.docker.internal:1080'` parameter when build the image.*\n\n#### centos\n```shell\ndocker build -t ${USER_NAME}/${IMAGE_NAME}:${IMAGE_VERSION} --network=host --build-arg NORMAL_USER=${NORMAL_USER} --build-arg NORMAL_PASSWD=${NORMAL_PASSWD} --build-arg ROOT_PASSWD=${ROOT_PASSWD} -f dockerfile_centos .\n```\n\n#### ubuntu\n```shell\ndocker build -t ${USER_NAME}/${IMAGE_NAME}:${IMAGE_VERSION} --network=host --build-arg NORMAL_USER=${NORMAL_USER} --build-arg NORMAL_PASSWD=${NORMAL_PASSWD} --build-arg ROOT_PASSWD=${ROOT_PASSWD} -f dockerfile_ubuntu .\n```\n\n## run\n#### centos\n```shell\ndocker exec -it `docker run -d --name ${CONTAINER_NAME} -v /Users/${HOST_USER}/Downloads:/home/${USER_NAME}/downloads -w /home/${USER_NAME}/downloads --network=host -e HOST_USER -e HOST_PASSWD -e COMPANY_USER -e COMPANY_PASSWD -e RELAY_ADDR --privileged=true ${USER_NAME}/${IMAGE_NAME}:${IMAGE_VERSION}` /bin/bash\n```\n\n#### ubuntu\n```shell\ndocker run -it --name ${CONTAINER_NAME} -v /Users/${HOST_USER}/Downloads:/home/${USER_NAME}/downloads -w /home/${USER_NAME}/downloads --network=host -e HOST_USER -e HOST_PASSWD -e COMPANY_USER -e COMPANY_PASSWD -e RELAY_ADDR --privileged=true ${USER_NAME}/${IMAGE_NAME}:${IMAGE_VERSION} /bin/bash\n```\n\n## keep in view\n1. If you want to use tmux, need to invoke `tmux source ~/.tmux.conf` in command line and `\u003cCtrl-b\u003e+I` in tmux after login with normal user;\n2. You need to update your user_name and email of git in .gitconfig located `/home/${NORMAL_USER}/`;\n3. If you want to show GUI, please install `xquartz` on your host:\n```shell\nbrew install xquartz socat\nopen -a XQuartz\n```\nand then, check `Allow connections from network clients` in Preferences - Security and restart xquartx.\nlast step, run:\n```shell\nsocat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\\\"$DISPLAY\\\"\n```\n\n## suggection\nIf you want to mount volumns on MacOS, use `mutagen` or `docker-sync` instead of `-v` args, like:\n```shell\nmutagen sync create --name ${SESSION_NAME} --sync-mode=two-way-safe --symlink-mode=posix-raw --ignore .DS_Store --ignore \"*.sw[a-p]\" ${CODE_PATH_ON_HOST} docker://${NORMAL_USER}@${CONTAINER_NAME}${CODE_PATH_ON_CONTAINER}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbraveyoung%2Fdev-env-linux","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbraveyoung%2Fdev-env-linux","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbraveyoung%2Fdev-env-linux/lists"}