Inspiration
One of the problem I think this project is gonna come in handy is the difference between dev environment and the environment that they want to build their code for.
What it does
This project is created to demolish those kind of barriers. Utilizing this project, developers can choose to use Windows as their development environment and run code on linux, or vice versa. It will be an isolated environment, offering user an option of reset everything to the starting point when finish with their program, not having to worry about extra library or module, framework, or environment, that are not really important for their code
How we built it
The first version of our project is mainly for Windows user. It's based on powershell, with the support of python. I utilize the use of yaml file for the user to write config that they want, and docker container to run as an isolated environment
Challenges we ran into
We have run into some difficulties of deploy docker machine, and sometimes, windows just refuse to build the image so we have to troubleshoot. We plan to also develop this project for linux user, but we still struggle with building the package for linux distro, cause there are many of them - the two main one is .rpm and .deb, but beside, there are many more like aur for arch, so we think we'll figure out a plan to come through these challenges in future version
Accomplishments that we're proud of
We're proud of our teamwork experience, and the success of what we plan to do. The code run smoothly after several bugs fix, and minor errors, but in the end, that's still something we're proud of as first year student
What we learned
The main things that we've got out from this experience are working in a team, managing projects, coming up with ideas, solutions, as a team. We work like a small company with a GitHub repo where each one of us can work on their assigned tasks and then push them to the repo. It was a fun experience, a chance that we can for the first time work professionally. Some of us have no ideas about git and markdown but in the end, they become more proficient with them.
What's next for remotenv
The next step for remotenv is the ability to work on Linux distros. We want to turn a powershell based program into a Linux package that can cover most of the Linux distros, so that the purpose of the project, and our goal can be fully satisfied.
remotenv v1.0
This project is designed to help developers deploy and test their code on a remote environment of their choice, whether is docker, virtual machine, remote machine, or cloud machine. One of the problem I think this project is gonna come in handy is the difference between dev environment and the environment that they want to build their code for. Utilizing this project, developers can choose to use Windows as their development environment and run code on linux, or vice versa. It will be an isolated environment, offering user an option of reset everything to the starting point when finish with their program, not having to worry about extra library or module, framework, or environment, that are not really important for their code.
Table of Content
1) Installation 2) Usage 3) Requirement 4) Yaml Guide 5) Contributing Policy 6) Constraints 7) License
Installation
run pip install -r requirements.txt
Use git to install:
git clone https://github.com/mdphuc/remotenv.git
run ./setup.ps1 as administrator to set up the program as powershell cmdlets
Usage
remotenv
build: set up remote dev environment
docker: build docker container
remote machine: use remote machine as remote dev environment
cmdlets: build powershell cmdlets
- For
remote machinefunction- Copy ssh public key located in
<your project name>/.ssh/id_rsa.pub - Create a file called authorized_keys in
~/.ssh/, which contain the public key that you copy previously - Run
remotenv sshto set up first ssh connection - For more information, please visit this link
- Copy ssh public key located in
Yaml
Write your yaml file follow this order: environment, framework, ip, username and save the file as Envfile.yml in your project directory
Example
environment:
powershell (or bash)
framework:
python (or nodejs or other framework)
ip:
192.168.0.1
username:
phuc
- For more information, please visit this link
Requirement
- Python 3.5+
- Powershell 6+
- Windows 10+
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you think should be changed.
Constraints
- This project depends heavily on the connection between docker container and docker container or remote machine. So for the best use, make sure they are configured so that they can be accessed from each other on the Internet
Log in or sign up for Devpost to join the conversation.