{"id":26862110,"url":"https://github.com/mjlenkiewicz/debian-mate","last_synced_at":"2026-04-05T23:35:34.675Z","repository":{"id":285271784,"uuid":"957574932","full_name":"mjlenkiewicz/debian-mate","owner":"mjlenkiewicz","description":"Do you want to create a secure development and testing environment with Linux for temporary or ephemeral use? Here you have the dockerfile and all the extra files for building and running a fully containerized Linux Debian 12 \"Bookworm\" with Mate Desktop environment.","archived":false,"fork":false,"pushed_at":"2025-03-30T18:03:48.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T18:31:24.241Z","etag":null,"topics":["blockchain","containers","debian","debugging","development","devops","docker","linux","mate","miniconda3","networkingtools","nodejs","phyton","securedevelopmentenvironment","testing","vscode","web3"],"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/mjlenkiewicz.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":"2025-03-30T17:45:43.000Z","updated_at":"2025-03-30T18:18:31.000Z","dependencies_parsed_at":"2025-03-30T18:41:53.398Z","dependency_job_id":null,"html_url":"https://github.com/mjlenkiewicz/debian-mate","commit_stats":null,"previous_names":["mjlenkiewicz/debian-mate"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlenkiewicz%2Fdebian-mate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlenkiewicz%2Fdebian-mate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlenkiewicz%2Fdebian-mate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mjlenkiewicz%2Fdebian-mate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mjlenkiewicz","download_url":"https://codeload.github.com/mjlenkiewicz/debian-mate/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246404402,"owners_count":20771605,"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":["blockchain","containers","debian","debugging","development","devops","docker","linux","mate","miniconda3","networkingtools","nodejs","phyton","securedevelopmentenvironment","testing","vscode","web3"],"created_at":"2025-03-31T02:23:11.073Z","updated_at":"2025-12-30T23:16:07.117Z","avatar_url":"https://github.com/mjlenkiewicz.png","language":"Shell","readme":"# Linux in a Docker Container \u003e Debian-Mate for DEVs\n\nDocker is designed to run applications within isolated environments, and Linux distributions can be the base for these containers.\n\nHere you have the dockerfile and all the extra files for building and running a fully containerized Linux Debian 12 \"Bookworm\" with Mate Desktop environment for development, testing, and debugging or running networking tools.\n\nIMPORTANT: The dockerfile isn't already optimized because that could help for better understanding to those who are not familiar with docker/container tech.\n\nHappy coding/debugging !!!\n\n---\n\n## Table of Contents\n[Description](#description)\u003c/br\u003e\n[Project Status](#project-status)\u003c/br\u003e\n[Features \u0026 Software Management](#features)\u003c/br\u003e\n[Installation](#installation)\u003c/br\u003e\n[User Credentials](#user-credentials)\u003c/br\u003e\n[Access to MATE GUI](#access-to-mate-gui)\u003c/br\u003e\n[Post-Deployment Workflow](#post-deployment-workflow)\u003c/br\u003e \n[Contributing](#contributing)\u003c/br\u003e \n[Licenses](#licenses)\u003c/br\u003e \n[Contact](#contact)\u003c/br\u003e\n[References](#references)\u003c/br\u003e\n\n---\n\n## Description\n\nThis container provides a secure environment for testing purposes. While containers aren't\ntraditionally designed for persistent workspaces, proper configuration can make them highly effective for this use case.\n\n## Project Status\n\nThe project is currently under development and testing; however, you can use it in production by following all security software recommendations and changing the default users credentials/passwords.\n\n## Features\nThe container features network debugging and simulation tools such as:\n* visual studio code\n* miniconda3\n    - python 3.9 virtual environment (py39env)\n* nodejs \u0026 npm\n* git \u0026 all sub-packages\n* network file sharing tools\n    - samba (for connecting to Windows network shared directories through dir. explorer «CAJA»)\n    - filezilla client\n* networking tools:\n    - ethtool\n    - net-tools\n    - iputils-ping\n    - traceroute\n    - tcpdump\n    - nmap\n    - wireshark (is not installed; if you would like to install it, uncomment the corresponding lines)\n\n## Software Management\nIf you do not require the included software, comment out or remove the corresponding entries in the Dockerfile, and/or you can extend functionality by adding custom software modifying the dockerfile or using a runtime installation, but remember that changes made during runtime (via GUI/terminal) will be ephemeral unless you commit the modified container to a new image or update the original Dockerfile and rebuild.\n\n## Installation\n\nYou must have installed docker engine (Linux) or docker desktop (Windows) !!!\n\n\u003e for Linux see ...\u003c/br\u003e\nhttps://docs.docker.com/engine/install/\u003c/br\u003e\n\u003e for Windows see ...\u003c/br\u003e\nhttps://docs.docker.com/desktop/setup/install/windows-install/\u003c/br\u003e\n\nThen, with the files already on your PC run the following commands ...\n\n1) create a network for using with the container\u003c/br\u003e\n    * on Linux\u003c/br\u003e\n    ```\n    sudo docker network create -d bridge --subnet 192.168.5.0/24 --gateway 192.168.5.1 mydockernet\n    ```\n    * on Windows\u003c/br\u003e\n    Same as before without sudo command.\u003c/br\u003e\n\n2) build the container image usign the dockerfile provided\u003c/br\u003e\n    * on Linux\u003c/br\u003e\n    ```\n    sudo docker build -f Dockerfile.mate -t debian-mate:dev .\n    ```\n    * on Windows\u003c/br\u003e\n    Same as before without sudo command.\u003c/br\u003e\n        \n3) run the container (you must see the bash when it started, then read User Credentials and Access to MATE GUI sections)\u003c/br\u003e\n    * on Linux\u003c/br\u003e\n    ```\n    sudo docker run --rm -ti -p 3390:3389 --net=mydockernet --ip=\"192.168.5.5\" --cap-add=NET_ADMIN --cap-add=NET_RAW --cap-add=SYS_ADMIN --cap-add=CAP_DAC_READ_SEARCH -h debian debian-mate:dev\n    ```\n    * on Windows\u003c/br\u003e\n    Same as before without sudo command.\u003c/br\u003e\n\n\n## Command \"docker run\" options reference:\n--rm\u003c/br\u003e\n_Automatically removes the container when it stops or exits. Useful for temporary testing where persistence isn’t needed._\n\n-ti Combines two options:\u003c/br\u003e\n-t: _Assigns a pseudo-TTY for an interactive interface._\u003c/br\u003e\n-i: _Keeps the standard input open for container interaction._\u003c/br\u003e\n\n-p 3390:3389\u003c/br\u003e\n_Maps port 3389 inside the container to port 3390 on the host, enabling external access to services running in the container._\n\n--net=mydockernet\u003c/br\u003e\n_Connects the container to a custom Docker network named mydockernet, allowing communication with other containers on the same network._\n\n--ip=\"192.168.5.5\"\u003c/br\u003e\n_Assigns a static IP address (192.168.5.5) within the specified network (mydockernet). Requires a network driver that supports static IPs (e.g., bridge)._\n\n--cap-add\u003c/br\u003e\n_Adds Linux capabilities to the container:_\u003c/br\u003e\na» NET_ADMIN: Allows modifying network interfaces.\u003c/br\u003e\nb» NET_RAW: Enables advanced network operations (e.g., raw sockets).\u003c/br\u003e\nc» SYS_ADMIN: Grants system-level access (e.g., mounting devices).\u003c/br\u003e\nd» CAP_DAC_READ_SEARCH: Permits reading files/directories even if not explicitly permitted.\u003c/br\u003e\n\na/b _are needed for wireshark, tcpdump, etc_\u003c/br\u003e\nc/d _are needed for mounting volumen \u0026 using samba_\u003c/br\u003e\n\n-h debian\u003c/br\u003e\n_Sets the container’s hostname to debian, visible in commands like hostname._\n\n## User Credentials\n1)\n    \u003eUSER = root\u003c/br\u003e\n    \u003ePASS = root9455\u003c/br\u003e\n2)\n    \u003eUSER = test\u003c/br\u003e\n    \u003ePASS = test9455\u003c/br\u003e\n\nIMPORTANT: To modify passwords, edit the Dockerfile and regenerate hashed credentials using Cryptool's OpenSSL tool on https://www.cryptool.org/en/cto/openssl (use the command _\"openssl passwd -6\"_ and follow the steps\")\n\n## Access to MATE GUI\nSince you will not use a Linux system in a traditional way, you can only access the MATE GUI via RDP (remote desktop protocol) by connecting to localhost:3390 and using the provided user credentials. We recommend using the 'test' user with sudo for privileged operations.\n\nOnce you're inside the GUI, open a terminal and ...\n\n   1) If you want to run \"conda\" cmd to activate virtual envs (there is one already created called \"py39env\") ...\n   ```\n   source /opt/miniconda3/etc/profile.d/conda.sh\n   ```\n   \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;... and then ...\u003c/br\u003e\n   ```\n   conda activate py39env\n   ```\n\n   2) If you want to make available a network shared directory ...\n   ```\n   sudo mkdir /mnt/\u003cyour mounting point\u003e\n   ```\n   \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;... and then ...\u003c/br\u003e\n   ```\n   sudo mount -t cifs //\u003cyour server IP address\u003e/\u003cyour shared directory\u003e /mnt/\u003cyour mounting point\u003e -o username='\u003cyour network user\u003e',password='\u003cyour network pass\u003e',domain='\u003cyour domain name\u003e',uid=1000,gid=1000,nofail\n   ```\n\n   \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;... fill it with your correct data and execute them !!!\u003c/br\u003e\n\n## Post-Deployment Workflow\na) Temporary Use: No further action required.\u003c/br\u003e\nb) Persistent Work: For development/debugging, preserve data by: Creating a derived image with critical files, using Docker volumes for persistent storage or implementing regular backups.\n\n## Contributing\n- Fork the repository\n- Create a feature branch\n- Submit a pull request\n\n## Licenses\nPlease refer to ...\n* https://www.debian.org\n* https://mate-desktop.org\n* https://github.com/moby/moby/blob/master/LICENSE\n* https://docs.docker.com/subscription/desktop-license/\n* For other software, please visit their respective website.\n\n## Contact\nMariano J. Lenkiewicz\u003c/br\u003e\ne-mail: [mariano.javier.lenkiewicz@gmail.com](mailto:mariano.javier.lenkiewicz@gmail.com)  \nProject Link: [https://github.com/mjlenkiewicz/debian-mate](https://github.com/mjlenkiewicz/debian-mate)\n\n## References\nYou can see some related cool stuff on ...\u003c/br\u003e\nhttps://www.youtube.com/@NetworkChuck\u003c/br\u003e\nhttps://www.youtube.com/@agiledevart\u003c/br\u003e\nhttps://www.youtube.com/@TechnoTim\u003c/br\u003e\nhttps://www.youtube.com/@Fireship\u003c/br\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjlenkiewicz%2Fdebian-mate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmjlenkiewicz%2Fdebian-mate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmjlenkiewicz%2Fdebian-mate/lists"}