https://github.com/hocus-dev/hocus Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code + Explore + All features + Documentation + GitHub Skills + Blog * Solutions + For + Enterprise + Teams + Startups + Education + By Solution + CI/CD & Automation + DevOps + DevSecOps + Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles + Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} hocus-dev / hocus Public * Notifications * Fork 5 * Star 569 Spin up ready-to-code, disposable dev environments on your own servers. Self-hosted alternative to Gitpod and Github Codespaces. hocus.dev License View license 569 stars 5 forks Star Notifications * Code * Issues 3 * Pull requests 0 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights hocus-dev/hocus This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 3 branches 1 tag Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/h] Use Git or checkout with SVN using the web URL. [gh repo clone hocus-] Work fast with our official CLI. Learn more. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @gorbak25 gorbak25 Revert "Propagate host DNS to workspaces" ... 11c4e14 Apr 3, 2023 Revert "Propagate host DNS to workspaces" This reverts commit 4778145. 11c4e14 Git stats * 630 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/ISSUE_TEMPLATE language April 1, 2023 13:21 .vscode refactored environment tab April 1, 2023 11:34 app Revert "Propagate host DNS to workspaces" April 3, 2023 17:45 deps/firecracker-client use typescript-fetch to generate the fc client October 24, 2022 19:06 docs update agent networking diagram March 29, 2023 13:38 entrypoints add a way to generate the hocus yml json schema March 30, 2023 12:23 extensions UseKeychain yes April 3, 2023 15:30 hocus-workspace Revert "Propagate host DNS to workspaces" April 3, 2023 17:45 ops Revert "Propagate host DNS to workspaces" April 3, 2023 17:45 prisma make workspace and prebuild drive sizes configurable through db March 31, 2023 13:06 public finish new project form, prevent flash of unstyled content January 18, 2023 13:56 resources Revert "Propagate host DNS to workspaces" April 3, 2023 17:45 styles prebuild list February 16, 2023 14:15 .dockerignore WIP fighting with the entire world March 17, 2023 21:59 .env Nuked graphile worker andd google analytics March 19, 2023 03:04 .eslintrc.js error handling, wip project page January 31, 2023 15:45 .gitattributes add gitattributes August 29, 2022 21:05 .gitignore configure worker to run on remote host October 24, 2022 12:28 .gitpod.yml git lfs pull in .gitpod.yml March 21, 2023 15:44 .prettierrc setting up db tests July 16, 2022 16:37 LICENSE.md add license and notice March 23, 2023 15:45 README.dev.md change init and command in hocus.yml to prebuild and workspace March 29, 2023 18:44 README.md add newsletter to README.md April 3, 2023 16:27 hocus.Dockerfile fix tailscale installation March 31, 2023 15:50 hocus.yml Update hocus.yml 2 March 30, 2023 10:21 jest.config.js begin testing workflow December 28, 2022 20:56 package.json upgrade flowbite-react, stop using the Flowbite component because it ... March 30, 2023 22:14 prisma.d.ts setting up db tests July 16, 2022 16:37 remix.config.js Fix gitpod env March 18, 2023 21:39 remix.env.d.ts use remix instead of nextjs July 20, 2022 21:01 tailwind.config.js environment wip March 4, 2023 17:47 tsconfig.json Hocus workspace image March 22, 2023 15:25 yarn.lock upgrade flowbite-react, stop using the Flowbite component because it ... March 30, 2023 22:14 View code [ ] Features Get Started Requirements Current State of Hocus Project Goals Roadmap Versioning License Newsletter README.md hocus-gh-bg Website Language GitHub commit activity Docs - Bug report Hocus is a self-hosted application that spins up ready-to-code, disposable development environments on your own servers in seconds. You define your dev environments as code and launch them instantly from your browser. It's a self-hosted alternative to Gitpod and Github Codespaces. Hocus is integrated with any Git provider that supports the SSH protocol, like GitHub, GitLab, BitBucket, or Gitea. It prebuilds dev environments on every commit for all branches like a CI system, enabling your team members to start coding with fresh, fully-configured dev environments right away. Whether you're fixing a bug, building a new feature, or conducting a code review, Hocus has you covered. Features hocus-demo-3 * Workspaces - disposable, fully-configured development environments powered by Firecracker micro VMs, defined as code. * [?] Prebuilds - Hocus continuously builds your project like a CI system, so you can spin up a fresh dev environment in seconds and focus on coding rather than waiting. * Project Environment Variables - Declare shared environment variables for your entire team, making collaboration easier. * VSCode Integration - Connect to workspaces over SSH automatically with your local VSCode editor. * [?] Full Root Access - Unlike Docker containers, Hocus workspaces are full-fledged VMs, giving you full control over your environment. You can use Docker and nested KVM, run LocalStack, or even deploy Kubernetes; * Support for any Git provider that uses the SSH protocol - Connect Hocus to Github, Gitlab, Bitbucket, Gitea, Gerrit, and others. * Monorepo support - Create multiple development environments for different projects in a single repository. Get Started Requirements * x86_64 Linux * KVM support on the host * Git and Git LFS * Docker, Docker Compose, and Buildx That's it! Hocus is fully containerized and won't install anything directly on your host system. The following script will check if your system meets the requirements, prompt you to install any missing dependencies, and set up Hocus with docker-compose. git clone https://github.com/hocus-dev/hocus.git cd hocus HOCUS_HOSTNAME="localhost" ops/bin/local-up.sh It will bring up: * the Hocus control plane, a Remix application; * Temporal, which is a workflow engine; * the Hocus agent, which is a Temporal worker; * Postgres; * Keycloak, for authentication. You can run ops/bin/local-cleanup.sh to remove Hocus from your system completely. Check out our quickstart for next steps and more information about managing your deployment. Current State of Hocus * Hocus is currently in alpha, but it's already useful for personal use. We are using Hocus to develop Hocus, but we don't recommend you deploy it for your team at work yet. * Hocus currently supports single node deployment only. However, it is designed to be deployed on a fleet of servers in the future. * While Hocus works well for most scenarios, there are known bugs and rough edges. For example, stopping a workspace may sometimes leave it in the stopping state indefinitely. * Despite its imperfections, we're releasing Hocus now to get feedback and learn if others find it useful. Project Goals * Ease of deployment and management are central goals of Hocus, with minimal assumptions made about the underlying OS and hardware. * Hocus should provide a native development experience with performance on par with bare-metal development. * Hocus should be scalable to accommodate large teams, with support for thousands of users and heavyweight repositories. We're not there yet. Roadmap * [*] Add basic single node support * [ ] Optimize single node storage usage, performance, and reliability * [ ] Add permissioning for teams, admins, and regular users * [ ] Add multi-node support * [ ] Add support for more IDEs, particularly JetBrains Versioning While in alpha, every version change should be assumed to be breaking . There are no upgrade paths. License This repository's code is licensed under the Elastic License v2.0, unless stated otherwise. The extensions directory and its subdirectories are licensed under MIT. Newsletter You can get occasional updates about Hocus development by signing up to our newsletter. About Spin up ready-to-code, disposable dev environments on your own servers. Self-hosted alternative to Gitpod and Github Codespaces. hocus.dev Resources Readme License View license Stars 569 stars Watchers 4 watching Forks 5 forks Releases 1 Hocus 0.1 Alpha Latest Apr 3, 2023 Contributors 3 * @hugodutka hugodutka Hugo Dutka * @gorbak25 gorbak25 Grzegorz Uriasz * @stared stared Piotr Migdal Languages * TypeScript 90.0% * Shell 6.6% * Dockerfile 2.5% * Other 0.9% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.