{"id":24803950,"url":"https://github.com/raonigabriel/coder-server","last_synced_at":"2025-04-11T09:57:02.361Z","repository":{"id":63187728,"uuid":"534773950","full_name":"raonigabriel/coder-server","owner":"raonigabriel","description":"A lightweight Alpine docker image that runs openvscode-server (vscode accessible by web)","archived":false,"fork":false,"pushed_at":"2024-06-17T10:40:14.000Z","size":58,"stargazers_count":19,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T06:45:29.688Z","etag":null,"topics":["alpine","cloudflared","gitpod","remote-development","vscode","web"],"latest_commit_sha":null,"homepage":"","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raonigabriel.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}},"created_at":"2022-09-09T19:10:20.000Z","updated_at":"2025-02-01T18:59:19.000Z","dependencies_parsed_at":"2024-01-18T19:09:22.638Z","dependency_job_id":null,"html_url":"https://github.com/raonigabriel/coder-server","commit_stats":null,"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raonigabriel%2Fcoder-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raonigabriel","download_url":"https://codeload.github.com/raonigabriel/coder-server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248371677,"owners_count":21093056,"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":["alpine","cloudflared","gitpod","remote-development","vscode","web"],"created_at":"2025-01-30T06:14:07.869Z","updated_at":"2025-04-11T09:57:02.344Z","avatar_url":"https://github.com/raonigabriel.png","language":"Dockerfile","readme":"# coder-server\nThis is my opinionated attempt to build a lightweight docker image to run [openvscode-server](https://github.com/gitpod-io/openvscode-server). Think vscode, on the browser.\n\nEnough talking, show me some numbers:\n\n| REPOSITORY | SIZE¹ |\n| --- | --- |\n| [codercom/code-server:latest](https://github.com/coder/code-server) | 697MB |\n| [linuxserver/code-server:latest](https://docs.linuxserver.io/images/docker-code-server) | 563MB |\n| [gitpod/openvscode-server:latest](https://github.com/gitpod-io/openvscode-server)| 523MB |\n| [ghcr.io/raonigabriel/coder-server:latest](https://github.com/raonigabriel/coder-core)| 208MB |\n\n* (1) Uncompressed sizes, on amd64. Those values are even smaller on aarch64!!\n\n# Features\n1. Based on my [coder-core](https://github.com/raonigabriel/coder-core) instead of Ubuntu. This translates to [musl being used instead of glib](https://wiki.musl-libc.org/functional-differences-from-glibc.html), but compatibility libraries are also preinstalled.\n2. Its is Alpine, but using **bash** instead of **ash**.\n3. By using **tini**, we ensure that child processes are correctly reaped.\n4. Default user **coder** and group **coder** using UID and GID = 1000, to ease volume-mapping permissions issues.\n5. Passwordless, **sudo** support: easily install extra packages with apk (e.g, ```sudo apk add docker-cli jq```)\n6. Preinstalled [cloudflare tunnel client](https://github.com/cloudflare/cloudflared), like ngrok but free!! This allows you to create reverse tunnels (when your are behind nat). See their docs [here](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps)\n7. Preinstalled tooling (node, npm, git, curl, socat, openssh-client, nano, unzip, brotli, zstd, xz) !!!\n8. Image is hosted on [GitHub Container Registry](https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry), hence no Dockerhub caps.\n\n# Guidelines that I follow\n- Whenever possible, install software directly from the Alpine repositories, i.e. use apk instead of downloading / manually installing them.\n- Keep it small: do not cross the 250MB image size boundary.\n- Multi arch (amd64 \u0026\u0026 arm64)\n\n# Security notice\n1. By default this image is **not with running with HTTPS** but HTTP instead. Its your responsibility to add a reverse-proxy to do that. If you dont, keep in mind that some issues may arise, regarding service workers on the browser. This is because they [need HTTPS](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers#setting_up_to_play_with_service_workers) to work properly.\n\n2. By default this image has **no security enforced** (user / password). Its your responsibility to add a reverse-proxy to do that.\n\n# Usage\n```\ndocker run -d -p 8000:8000 ghcr.io/raonigabriel/coder-server:latest\n```\nThen, point your browser to [http://localhost:8000](http://localhost:8000)\n \n# Setting up reverse tunnels\n[Official Guide](https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/)\n\n[Tutorial](https://omar2cloud.github.io/cloudflare/cloudflared/cloudflare/)\n\n[Video](https://www.youtube.com/watch?v=VrV0udRUi8A)\n\n  \n# Creating your own derived image (Java example)\n```Dockerfile\nFROM ghcr.io/raonigabriel/coder-server:latest\n\n# Setup env variables\nENV JAVA_HOME=/usr/lib/jvm/default-jvm \\\n    MAVEN_HOME=/usr/share/java/maven-3 \\\n    GRADLE_HOME=/usr/share/java/gradle\n\n# Installing Java and tools\nRUN sudo apk --no-cache add maven gradle \u0026\u0026 \\\n# Installing Java extensions\n    openvscode-server --install-extension vscjava.vscode-java-pack \\\n    vscjava.vscode-gradle vscjava.vscode-spring-initializr\n```\n\n## Licenses\n[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)\n\n## Disclaimer\n\n* I am **not** sponsored neither work for cloudflare. I just happen to use their services, because they are cool!\n* This code comes with no warranty. Use it at your own risk.\n* I don't like Apple. Fuck off, fan-boys.\n* I don't like left-winged snowflakes. Fuck off, code-covenant.\n* I will call my branches the old way. Long live **master**, fuck-off renaming.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraonigabriel%2Fcoder-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraonigabriel%2Fcoder-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraonigabriel%2Fcoder-server/lists"}