{"id":27160360,"url":"https://github.com/btreemap/dockerfiles","last_synced_at":"2025-08-12T13:43:47.116Z","repository":{"id":264414298,"uuid":"874833305","full_name":"BTreeMap/Dockerfiles","owner":"BTreeMap","description":"A collection of Dockerfiles and GitHub Actions workflows for building Docker images of various projects, including remote desktop environments, Tailscale VPN configurations, Apache Guacamole, Macless Haystack (a custom FindMy network without a Mac), SSH utilities, and TP-Link proxy.","archived":false,"fork":false,"pushed_at":"2025-04-08T03:12:47.000Z","size":489,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-08T04:23:15.217Z","etag":null,"topics":["apache-guacamole","containerization","devops","docker","dockerfile","github-actions","guacamole","networking","openhaystack","remote-access","ssh","tailscale","vpn","wireguard"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","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/BTreeMap.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-18T14:43:21.000Z","updated_at":"2025-04-08T03:12:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"5672486f-03bf-49b6-87d9-1135a4557491","html_url":"https://github.com/BTreeMap/Dockerfiles","commit_stats":null,"previous_names":["btreemap/dockerfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTreeMap%2FDockerfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTreeMap%2FDockerfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTreeMap%2FDockerfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BTreeMap%2FDockerfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BTreeMap","download_url":"https://codeload.github.com/BTreeMap/Dockerfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247947821,"owners_count":21023058,"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":["apache-guacamole","containerization","devops","docker","dockerfile","github-actions","guacamole","networking","openhaystack","remote-access","ssh","tailscale","vpn","wireguard"],"created_at":"2025-04-08T23:44:59.411Z","updated_at":"2025-04-08T23:45:00.059Z","avatar_url":"https://github.com/BTreeMap.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Docker Images for Side Projects\n\nThis repository contains Dockerfiles and GitHub Actions workflows for building Docker images for various side projects. **All images are automatically built and uploaded to the GitHub Container Registry (GHCR) with tags like `ghcr.io/btreemap/dockerfiles:guacamole-client-1.5.5`**. Users are encouraged to run these pre-built images instead of building them locally, as they are updated at least twice a day to provide the latest environment, features, and dependencies.\n\nThe projects include:\n\n- **Remote Desktop Environments**: Docker images providing remote desktop access with different desktop environments:\n  - `rdesktop-debian-xfce`: Debian with XFCE desktop.\n  - `rdesktop-ubuntu-kde`: Ubuntu with KDE desktop.\n  \u003e **Java Development Support**: Integration of Microsoft Build of OpenJDK version 21 for Java applications.\n- **Apache Guacamole**: Docker images for Guacamole client and server version 1.5.5, providing a clientless remote desktop gateway.\n- **Macless Haystack**: An all-in-one solution to set up a custom FindMy network without needing a Mac or installing additional plugins:\n  - `macless-haystack-anisette`: Anisette server for Apple authentication.\n  - `macless-haystack-backend`: Backend services for Macless Haystack.\n  - `macless-haystack-frontend`: Frontend interface for Macless Haystack.\n- **Tailscale VPN Utilities**: Docker images for various Tailscale VPN configurations:\n  - `tailscale-latest`: Latest Tailscale version.\n  - `tailscale-over-cloudflare-warp`: Tailscale over Cloudflare WARP.\n  - `tailscale-over-adguard-home`: Tailscale over AdGuard Home.\n  - `tailscale-over-gluetun`: Tailscale over Gluetun VPN.\n  - `tailscale-dns-monitor`: DNS monitor for Tailscale networks.\n- **SSH Keepalive**: A utility to maintain persistent SSH sessions.\n- **TP-Link Proxy**: A proxy service for TP-Link devices.\n\n## Purpose\n\nThe main objective of this repository is to provide Docker images for various personal side projects and to explore using GitHub Actions to build, test, and deploy Docker images automatically.\n\n## Getting Started\n\n### Prerequisites\n\n- Docker installed on your machine.\n- Basic knowledge of Docker and containerization.\n\n### Using the Pre-built Images\n\n**All Docker images are built and uploaded to the GitHub Container Registry (GHCR) with tags like `ghcr.io/btreemap/dockerfiles:\u003cimage-name\u003e`**.\n\nYou can pull and run the images directly:\n\n```bash\ndocker run ghcr.io/btreemap/dockerfiles:\u003cimage-name\u003e\n```\n\nFor example, to run the Apache Guacamole client version 1.5.5:\n\n```bash\ndocker run ghcr.io/btreemap/dockerfiles:guacamole-client-1.5.5\n```\n\n**These images are updated at least twice a day**, ensuring you have access to the latest environment, features, and dependencies.\n\n### Using Docker Compose\n\nYou can also use the images in your `docker-compose.yml` file by specifying the image:\n\n```yaml\nservices:\n  guacamole-client:\n    image: ghcr.io/btreemap/dockerfiles:guacamole-client-1.5.5\n    ports:\n      - \"8080:8080\"\n```\n\n## Projects Overview\n\n### Remote Desktop Environments\n\n- **rdesktop-debian-xfce**: Provides a Debian-based remote desktop environment with XFCE desktop.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:rdesktop-debian-xfce`\n- **rdesktop-ubuntu-kde**: Offers an Ubuntu-based remote desktop environment with KDE desktop.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:rdesktop-ubuntu-kde`\n\n### Apache Guacamole\n\n- **guacamole-client-1.5.5** and **guacamole-server-1.5.5**: Build and deploy Apache Guacamole for remote desktop access through a web browser.\n  - **Client Image**: `ghcr.io/btreemap/dockerfiles:guacamole-client-1.5.5`\n  - **Server Image**: `ghcr.io/btreemap/dockerfiles:guacamole-server-1.5.5`\n\n### Macless Haystack\n\nAn easy-to-use and easy-to-setup custom FindMy network without the need for a Mac or installing additional plugins. This unified solution allows you to run a FindMy network seamlessly.\n\n- **macless-haystack-anisette**: An Anisette server for Apple authentication, essential for FindMy network operations.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:macless-haystack-anisette`\n- **macless-haystack-backend**: Backend services handling the core functionality of the custom FindMy network.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:macless-haystack-backend`\n- **macless-haystack-frontend**: User-friendly frontend interface for interacting with the FindMy network.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:macless-haystack-frontend`\n\n#### Features\n\n- **No Mac Required**: Operate a custom FindMy network without owning a Mac or using virtual machines.\n- **Unified Projects**: Combines multiple projects to streamline setup and usage.\n- **Optimized Firmware**: Includes firmware optimizations for devices to improve battery life and performance.\n- **Ease of Use**: Simplifies the process by removing the need to install mail plugins or OpenHaystack itself.\n\n#### Included Projects and Changes\n\n- **OpenHaystack**: Stripped down to the mobile application (Android) and ESP32 firmware, combined with the FindYou project and optimized for power usage.\n- **Biemster's FindMy**: Customizations in the keypair generator and a standalone Python webserver for fetching FindMy reports.\n- **Positive Security's FindYou**: ESP32 firmware customized for battery optimization.\n- **acalatrava's OpenHaystack Firmware Alternative**: NRF5x firmware customized for battery optimization.\n\n#### Disclaimer\n\nThis project is for research purposes only. The use of this code is your responsibility. The authors take no responsibility and/or liability for how you choose to use any of the source code available here.\n\n### Tailscale VPN Utilities\n\n- **tailscale-latest**: The latest version of Tailscale VPN.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:tailscale-latest`\n- **tailscale-over-cloudflare-warp**: Runs Tailscale over Cloudflare WARP to combine VPN and proxy services.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:tailscale-over-cloudflare-warp`\n- **tailscale-over-adguard-home**: Integrates Tailscale with AdGuard Home for network-wide ad blocking.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:tailscale-over-adguard-home`\n- **tailscale-over-gluetun**: Uses Tailscale over Gluetun VPN for additional privacy.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:tailscale-over-gluetun`\n- **tailscale-dns-monitor**: Monitors DNS within a Tailscale network.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:tailscale-dns-monitor`\n\n### SSH Keepalive\n\n- **ssh-keepalive**: Keeps SSH sessions alive to prevent disconnects due to inactivity.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:ssh-keepalive`\n\n### TP-Link Proxy\n\n- **tplink-proxy**: A proxy service for managing TP-Link devices remotely.\n  - **Image**: `ghcr.io/btreemap/dockerfiles:tplink-proxy`\n\n## Contributing\n\nContributions are welcome; however, they will only be considered for merging in very rare circumstances, such as security-related updates. You are encouraged to fork the repository and use it as part of your workflow to build Docker images via GitHub.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n## Acknowledgments\n\n- Thanks to the authors of the [linuxserver/rdesktop](https://docs.linuxserver.io/images/docker-rdesktop/) for the base image used in the remote desktop offerings.\n- Appreciation to the Tailscale team for their VPN solutions.\n- Recognition to the Apache Guacamole project for enabling clientless remote desktop access.\n- Credits to the contributors of Macless Haystack and the included projects:\n  - OpenHaystack\n  - Biemster's FindMy\n  - Positive Security's FindYou\n  - acalatrava's OpenHaystack Firmware Alternative\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtreemap%2Fdockerfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbtreemap%2Fdockerfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbtreemap%2Fdockerfiles/lists"}