Self-Hosted Remote Dev Environment

Related tags

Command-line lapdev
Overview

Lapdev

Self-hosted remote development enviroment management with ease


Lapdev is a self hosted application that spins up remote development environments on your own servers or clouds. It scales from a single machine in the corner to a global fleet of servers. It uses Devcontainer open specification for defining your development environment as code. If you’re interested in a deep dive into how Lapdev works, you can read about its architecture here.

Cloud

If you don't want to self host, we also have cloud offering of Lapdev using high end Gaming CPU: https://ws.lap.dev/

Read More to know how a Gaming CPU can boost the performance.



Features

  • Self hosted with ease: Lapdev is designed to be self hosted with minimum efforts for installation and maintenance. The application is designed to just work, sparing you from digging too deep into the internals for troubleshooting.

  • Horizontal scalability: With a simple yet powerful architecture, Lapdev can scale from a single machine to a fleet of servers, so that you can have a development environment management system that can grow with your developer teams.

  • Development Environment as Code: Using the Devcontainer open specification, Lapdev allows you to define your development environment as code. This empowers you to standardize development environments that can be replicated across different developers, avoiding environment related issues and ensuring a consistent setup for everyone.

  • Save Onboarding Time: Onboarding developers to new projects don't need hours or days to prepare the environment on their machines. They can start to code instantly.

Planned Features

  • More workspace types: Currently Lapdev only supports container based workspaces, which has its own limitations for example when you want to run a k8s cluster in your development flow. It's planned to have support for more than containers. VMs and bare metal machine support are on the roadmap. And more OS support is planned as well, e.g. when you are developing a cross platform desktop application for Windows, Linux and macOS, Lapdev can spin up development environments on all of them and you can develop and debug from the same local machine without the need to switch machines.

Installation

You can see the installation steps here.

Build from source

Contributing

You might also like...
Cross-platform binary shims with optional remote fetching.

chim Cross-platform binary shims with optional remote fetching. Quickstart (make an automatic fetching node.js wrapper) Install chim: (see docs for al

A bit like tee, a bit like script, but all with a fake tty. Lets you remote control and watch a process

teetty teetty is a wrapper binary to execute a command in a pty while providing remote control facilities. This allows logging the stdout of a process

Mirroring remote repositories to s3 storage, with atomic updates and periodic garbage collection.

rsync-sjtug WIP: This project is still under development, and is not ready for production use. rsync-sjtug is an open-source project designed to provi

Fast turbo remote cache server written in Rust

Fast turbo remote cache server written in Rust. if you are using turbo and you want to have a self hosted remote cache server this is for you.

Self-contained template system with Handlebars and inline shell scripts

Handlematters Self-contained template system with Handlebars and inline shell scripts Introduction Handlematters is a template system that combines Ha

Work-in-progress Rust application that converts C++ header-only libraries to single self-contained headers.

unosolo Work-in-progress Rust application that converts C++ header-only libraries to single self-contained headers. Disclaimer This is my first Rust p

Guardian Self Assessment CLI tool
Guardian Self Assessment CLI tool

Guardian Self Assessment CLI tool What? self-assessment is a tool that generates a list of PRs authored and reviewed by you. Why? Assessing oneself is

CLI for self-bootstrapped Python applications

PyApp PyApp is a CLI wrapper for Python applications that bootstrap themselves at runtime. Each application is configured with environment variables a

A self-contained, unopinionated, fast and lightweight executable launcher.

Kickoff 🥾 A self-contained, unopinionated, fast and lightweight executable launcher. Supported Platforms Platform Host Target aarch64-apple-macos-non

Comments
  • Enable Link-Time Optimization (LTO)

    Enable Link-Time Optimization (LTO)

    Hi!

    I noticed that in the Cargo.toml file Link-Time Optimization (LTO) for the project is not enabled. I suggest switching it on since it will reduce the binary size (always a good thing to have) and will likely improve the application's performance a bit.

    I suggest enabling LTO only for the Release builds so as not to sacrifice the developers' experience while working on the project since LTO consumes an additional amount of time to finish the compilation routine. If you think that a regular Release build should not be affected by such a change as well, then I suggest adding an additional dist or release-lto profile where additionally to regular release optimizations LTO will also be added. Such a change simplifies life for maintainers and others interested in the project persons who want to build the most performant version of the application. Using ThinLTO should also help to reduce the build-time overhead with LTO. If we enable it on the Cargo profile level, users, who install the application with cargo install, will get the LTO-optimized version "automatically". E.g., check cargo-outdated Release profile.

    Basically, it can be enabled with the following lines:

    [profile.release]
    lto = true
    

    I have made quick tests (Fedora 40) by adding lto = true to the Release profile. The binary size reduction is the following:

    • lapdev: from 41 Mib to 33 Mib
    • lapdev-db: from 16 Mib to 12 Mib
    • lapdev-ws: from 20 Mib to 17 Mib
    • lapdev-guest-agent: from 592 Kib to 532 Kib

    Thank you.

    opened by zamazan4ik 0
  • Crypto

    Crypto

    Not an issue, but there's no discussion section.

    Codespaces, gitpod, etc, are too big to allow crypto.

    Many developers want to have something like this, but don't like their bank being drained each month, or simply want privacy.

    I suspect there is a strong void to fill here which would set lapdev apart. This would entice me (and a few other devs I know) to pay for it.

    opened by gitizenss 2
  • Add options for port forwarding

    Add options for port forwarding

    The current approach to port forwarding used by lapdev hash.domain/proxy/port can cause issues when serving elements that expect access to the root of a given hostname (i.e. where the base url is "/").

    It would be useful if alternative options - such as port-hash.domain - were available

    opened by lee-orr 12
Remote-Archive is a utility for exploring remote archive files without downloading the entire contents of the archive.

[WIP] REMOTE-ARCHIVE Remote-Archive is a utility for exploring remote archive files without downloading the entire contents of the archive. The idea b

null 4 Nov 7, 2022
Code examples for https://www.poor.dev/blog/terminal-anatomy/

This repository contains examples from the Anatomy of a Terminal Emulator blog post. Each folder contains a separate example and can be run separately

Aram Drevekenin 28 Dec 7, 2022
Rust translation of biryani-cli by Dev Ashar

Veg Biryani This is a cheap remake of the awesome project by Dev Ashar in Rust. The original project's description: Biryani is a tool created to manag

Suryansh 2 Dec 10, 2022
Los retos de codember.dev, escritos en rust

__ __ /\ \ /\ \ ___ ___ \_\ \ __ ___ ___ \ \ \____ __ _ __ /

David Huertas 8 Dec 9, 2022
Cargo subcommand for running cargo without dev-dependencies.

cargo-no-dev-deps Cargo subcommand for running cargo without dev-dependencies. This is an extraction of the --no-dev-deps flag of cargo-hack to be use

Taiki Endo 5 Jan 12, 2023
Dreamer is an extensible tool manager and shell for creating small, lightweight, dev environments instantly.

Dreamer ?? Does what you want, not what you say. Dreamer is a universal tool management system for any language, any build system, and any framework.

Luke Davis 4 Oct 23, 2023
Simple template to use csr and ssr leptos with tauri for ios/android/windows/macos/linux and web dev

Tailwind-Leptos-Tauri Template Simple template to use csr and ssr leptos with tauri for ios/android/windows/macos/linux and web dev Just clone the rep

Victor Batarse 11 Mar 10, 2024
Incredible.dev is an AI Coding Co-worker which can code, fix, document, deploy, test your APIs. One agent to rule everything API.

Incredible.dev Early Github preview, documentation and instruction to run coming soon in a week! Here are some highlights: AI agents that can code, fi

Incredible 27 Jun 27, 2024
Punic is a remote caching CLI built for Apple's .xcframework

Punic is a remote caching CLI built for Carthage that exclusively supports Apple's .xcframeworks.

Shred Labs 26 Nov 22, 2022
Call is an easy-to-use command tools for remote development.

Call is an easy-to-use command tools for remote development. It helps you to build remote development easily and elegant. It can work with makefile and justfile.

null 21 Dec 14, 2022