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 machine function
    • 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 ssh to set up first ssh connection
    • For more information, please visit this link

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

License

MIT

Built With

Share this project:

Updates