This project provides a collection of advanced development environment templates for Coder, demonstrating proficiency in containerization, infrastructure as code, and modern development practices across multiple programming languages and frameworks. These templates offer customizable, reproducible workspaces tailored for Python, Ruby on Rails, and JavaScript development.
- Advanced Python Development Environment
- Advanced Ruby on Rails Development Environment
- Advanced JavaScript Development Environment
All templates share the following features:
- Containerized Workspaces: Utilize Docker to create isolated, consistent development environments.
- Persistent Home Directory: Implement Docker volumes to maintain user data and project files across workspace restarts.
- Customizable Environment: Offer options for installing custom Zsh environments and Nerd Fonts.
- VS Code Integration: Seamlessly integrate with VS Code, including automatic installation of language-specific extensions.
- Resource Monitoring: Implement custom scripts for monitoring CPU, RAM, and disk usage within the workspace.
- A running Coder server (see Coder's documentation for installation instructions)
- Docker installed and configured on the Coder server
- Import the desired template into your Coder deployment
- Create a new workspace using the chosen template
- Configure workspace options as prompted
- Customizable Python version
- Multiple development environments (General, Flask, Django, Data Science, Machine Learning)
- Virtual environment integration
- Customizable Ruby version
- Rails application setup options
- Database integration (PostgreSQL or SQLite)
- Node.js with NVM for version management
- Global installation of common packages (TypeScript, Nodemon)
- Infrastructure as Code: Utilizes Terraform for provisioning and managing development environments.
- Docker Configuration: Custom Dockerfiles that set up robust language-specific development environments.
- Workspace Customization: Offers parameters for installing VS Code extensions, custom Zsh environments, and Nerd Fonts.
- VS Code Integration: Automatically installs and configures language-specific VS Code extensions.
- Implements proper user permissions and sudo access within containers.
- Manages sensitive information through Coder's secret management.
- Avoids hardcoding sensitive data in templates.
-
Edit the
main.tf
file to change the Terraform configuration -
Modify the
Dockerfile
in the respectivebuild
directory to adjust the container setup -
Update the template in your Coder deployment:
coder template push <template-name>
Replace
<template-name>
with the actual name of your template -
Create a new workspace or update an existing one to use the new template version
Contributions to improve these templates are welcome. Please submit a pull request or open an issue to discuss proposed changes.
For more information on using Coder, visit the official documentation.