{"id":27772306,"url":"https://github.com/davidebianchi03/codebox","last_synced_at":"2026-04-18T17:02:43.525Z","repository":{"id":290246053,"uuid":"973794208","full_name":"davidebianchi03/codebox","owner":"davidebianchi03","description":"Provisioner of remote development workspaces, mirror of the gitlab repo","archived":false,"fork":false,"pushed_at":"2025-04-27T19:14:31.000Z","size":1269,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-29T23:58:24.731Z","etag":null,"topics":["dev-tools","devcontainer","docker","docker-compose","golang","remote-development","workspaces"],"latest_commit_sha":null,"homepage":"https://gitlab.com/codebox4073715/codebox","language":"TypeScript","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/davidebianchi03.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2025-04-27T18:47:07.000Z","updated_at":"2025-04-27T19:12:00.000Z","dependencies_parsed_at":"2025-04-27T20:34:12.913Z","dependency_job_id":null,"html_url":"https://github.com/davidebianchi03/codebox","commit_stats":null,"previous_names":["davidebianchi03/codebox"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidebianchi03%2Fcodebox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidebianchi03%2Fcodebox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidebianchi03%2Fcodebox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidebianchi03%2Fcodebox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/davidebianchi03","download_url":"https://codeload.github.com/davidebianchi03/codebox/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251602817,"owners_count":21615963,"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":["dev-tools","devcontainer","docker","docker-compose","golang","remote-development","workspaces"],"created_at":"2025-04-29T23:58:29.165Z","updated_at":"2026-04-18T17:02:43.517Z","avatar_url":"https://github.com/davidebianchi03.png","language":"TypeScript","readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./docs/codebox-logo.png\" width=\"200\"\u003e\n  \u003ch3\u003e\n    Remote Development Environments\n  \u003c/h3\u003e\n    \u003ca href=\"https://hub.docker.com/r/dadebia/codebox\" style=\"text-decoration: none\"\u003e\n      \u003cimg alt=\"Docker image size\" src=\"https://badgen.net/docker/size/dadebia/codebox?icon=docker\u0026label=image%20size\" \u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://hub.docker.com/r/dadebia/codebox\" style=\"text-decoration: none\"\u003e\n      \u003cimg alt=\"Docker image size\" src=\"https://badgen.net/docker/pulls/dadebia/codebox?icon=docker\u0026label=pulls\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"./LICENSE.txt\" style=\"text-decoration: none\"\u003e\n      \u003cimg alt=\"License\" src=\"https://img.shields.io/github/license/davidebianchi03/codebox\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://marketplace.visualstudio.com/items?itemName=davidebianchi.codebox-remote\" style=\"text-decoration: none\"\u003e\n      \u003cimg alt=\"License\" src=\"https://vsmarketplacebadges.dev/version/davidebianchi.codebox-remote.svg\"\u003e\n    \u003c/a\u003e\n  \u003cbr\u003e\n\u003c/div\u003e\n\n\u003e [!WARNING]  \n\u003e This software is in beta version, some important changes can be made.\n\nCodebox is a self-hosted distributed provider of remote development environments.\n\n**What does that mean?** With Codebox you can define the resources and the structure of a workspace using standard formats like Docker Compose or Devcontainers. Moreover it provides connection to the workspaces through an SSH connection and the possibility to expose to everyone or with restrictions HTTP services running inside the containers.\n\n\u003c!-- \u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"./docs/preview.png\" style=\"max-width: 550px\"\u003e\n  \u003cbr\u003e\n\u003c/div\u003e --\u003e\n\n\n## Quickstart\n\nThe easiest way to deploy your Codebox instance is using the [docker compose](./docker-compose.yml) provided in this repository.\n\n```bash\ncurl --output docker-compose.yml \"https://gitlab.com/api/v4/projects/68940432/repository/files/docker-compose.yml/raw?ref=master\"\n```\n\nYou have to export some environment variables before starting docker containers:\n- `CODEBOX_EXTERNAL_URL`: the url of the codebox instance\n- `CODEBOX_WILDCARD_DOMAIN`: codebox allows you to expose ports running HTTP-based services either public or with password authentication. The ports will be exposed through subdomains of this domain. You will need to define a DNS record with a name such as *.codebox.my-domain.com. If you don't want do use this feature you can disable it using `CODEBOX_USE_SUBDOMAINS` environment variable.\n\nA list of all the settings is available [here](https://codebox4073715.gitlab.io/codebox/guide/server/configuration.html).\n\nNow you can start the docker stack with command:\n```bash\ndocker compose up\n```\n\n## How does codebox work?\n\nWith Codebox you can define the resources and the structure of a workspace using standard formats like Docker Compose or Devcontainers. Moreover it provides connection to the workspaces through an SSH connection and the possibility to expose to everyone or with restrictions HTTP services running inside the containers.\n\nCodebox consists in four main parts:\n\n### 1. A central server with web UI\nThis is where you can view, create and manage workspaces. The UI provides also an editor for workspace templates and admin tools to manage the server and the connected services. The source code is available [here](https://gitlab.com/codebox4073715/codebox), it's also mirrored on github [here](https://github.com/davidebianchi03/codebox).\n\n### 2. Runners that host and manage the workspaces\nHere’s where Codebox’s architecture becomes flexible. Workspaces are not managed directly from the server. Instead, you register runners, each capable of running different type of running one or more workspace types. This leads to several benefits including the fact that the workload can be divided between multiple machines.\n\nRunners must be able to reach the main server, but not the vice versa. In this way you can register runners from multiple locations without opening ports on routers. The source code is available [here](https://gitlab.com/codebox4073715/codebox-docker-runner)\n\n### 3. Agents running inside containers\nAgents are running inside workspaces, they provide the connections to the containers. They have an integrated SSH server. The SSH connection is tunneled over Web Sockets, in this way you don’t need to open other ports on your router. The source code is available [here](https://gitlab.com/codebox4073715/codebox-agent)\n\n### 4. A CLI for connecting via SSH\nThe CLI is a component to install on users’ PCs. It provides an SSH proxy to connect via an SSH connection to the workspaces. The source code is available [here](https://gitlab.com/codebox4073715/codebox-cli).\n\nYou can also use the official VS Code extension that wraps the CLI and provides an easy way to connect to workspaces. The source code of the extension is available [here](https://gitlab.com/codebox4073715/codebox-vscode-extension)\n\n## Support\nFeel free to open an issue if you have any question, find a bug or have a feature request.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidebianchi03%2Fcodebox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidebianchi03%2Fcodebox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidebianchi03%2Fcodebox/lists"}