Coder Social home page Coder Social logo

gantsign / development-environment Goto Github PK

View Code? Open in Web Editor NEW
54.0 4.0 31.0 5.94 MB

A development environment for Java, Python and Node.js built using Vagrant

Home Page: https://gantsign.github.io/development-environment

License: MIT License

Ruby 2.13% Shell 64.93% Jinja 32.94%
vagrant ansible java intellij nodejs molecule vscode maven virtualbox oh-my-zsh

development-environment's Introduction

GantSign EnV

Build License

A development environment for Java, Python and Node.js built using Vagrant.

About

Getting your development environment setup correctly can be a time consuming and error prone process; getting everyone on a team to setup their environment correctly is even more challenging.

The goal of this project is to make setting up a development environment reliable and reproducible. This project provides a generic development environment that you can fork to add your project specific configuration.

View the Website

View the project website

Project News

View the latest project news

Requirements

  • Vagrant
  • VirtualBox

Learn more about the requirements

Feature Highlights

  • Dynamically allocated swap space
  • Compressed swap
  • File backup & restore between rebuilds
  • Terminator
  • Oh My Zsh
  • Docker
  • Kubernetes
  • Minikube
  • Helm
  • Visual Studio Code
  • Git-GUI and Gitk
  • Postman
  • Open JDK
  • Maven
  • IntelliJ IDEA IDE
  • SDKMAN!
  • Node.js
  • Pyenv
  • Pipenv

Learn more about the features

Installation

Follow the getting started guide

License

MIT

Author Information

John Freeman

GantSign Ltd. Company No. 06109112 (registered in England) Analytics

development-environment's People

Contributors

dependabot[bot] avatar freemanjp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

development-environment's Issues

Add configuration for timezone

The timezone should be configurable using Nugrant configuration. This will be particularly useful to users in the US.

Improve and document proxy support

While you can currently get the development environment to work behind a proxy using the vagrant-proxyconf plugin, this isn't covered in the documentation for the development environment; also, you still need to manually configure the proxy settings for Gnome so the Google Chrome browser will also be able to use the proxy.

Document the process for using the development behind a proxy, auto install the vagrant-proxyconf plugin, and add support for configuring the Gnome proxy as part of the provisioning.

Make Ubuntu Unity the default desktop

While the Xfce4+DockbarX desktop may be more familiar to some, particularly those with little Linux experience, the Ubuntu Unity is the default desktop for Ubuntu.

As the default desktop Unity is a bit more robust, particularly when it comes to integration with third part apps.

Support for Xfce4 should be maintained but Unity should be the default for the development environment.

Implement mandatory license check

To install Oracle Java you must have accepted the "Oracle Binary Code License Agreement
for the Java SE Platform Products and JavaFX".

Fix version of Ansible dependencies

Needed to make the VM build more reproducible.

All versions should be fixed apart from the following that should always use the latest:

  • gantsign.gitkraken
  • gantsign.intellij
  • gantsign.visual-studio-code

undefined method `mac?

When I install vagrant plugins,I got errors:
`There was an error loading a Vagrantfile. The file being loaded
and the error message are shown below. This is usually caused by
an invalid or undefined variable.

Path: /Users/tomyli/github/tools/development-environment/Vagrantfile
Line number: 46
Message: undefined method mac?'

What should i do?

Add tags to Ansible playbook

Ansible tags are a great way of customising the VM by allowing you to turn off the features you don't wan't / need.

Add Ansible tags for "java,maven,nodejs,gui".

Upgrade bento/ubuntu-18.04 to 20.04

Hi Guys,

First of all amazing project! I use it myself. I was wondering if you are planning to switch to 20.04? It has been around for a while now so I guess it would be safe to upgrade?

Thanks

Add Postman HTTP tool

Postman recently released an app for Linux; since it's such a useful tool for REST API testing it should be installed by default.

Add Molecule for testing Ansible roles

Given this development environment uses so many Ansible roles it'd be nice if it gave a little back by making Ansible roles a little easier to develop.

Upgrade to Ubuntu 16.04

Ubuntu 15.10 support ended on July 28 2016.

Changing to 14.04 LTS would be problematic because it's using old versions of several packages including Python; the Python version is a particular problem as it's pre-SNI support, which breaks many of the Ansible roles. The hardware support for 14.04 LTS is also ending soon which could cause issues with VirtualBox support.

The 16.04 is the latest LTS release, released on July 21, 2016, it will be supported until late 2018. While there have been a number of hurdles for supporting 16.04 it's a good long term solution.

Ansible fails when you skip tags java or maven

TASK [franklinkim.environment : Remove previous values] ************************
[DEPRECATION WARNING]: Skipping task due to undefined Error, in the future this
will be a fatal error.: {u'IDEA_JDK': u'{{
ansible_local.java.general.java_home }}', u'M2_HOME': u'{{
ansible_local.maven.general.maven_home }}', u'JAVA_HOME': u'{{
ansible_local.java.general.java_home }}', u'LS_COLORS': u'di=1;36;40:ln=35;40:s
o=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:',
u'CDPATH': u'.:/home/vagrant/workspace'}: 'ansible_local' is undefined.
This
feature will be removed in a future release. Deprecation warnings can be
disabled by setting deprecation_warnings=False in ansible.cfg.
fatal: [default]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'item' is undefined\n\nThe error appears to have been in '/vagrant/provisioning/roles/franklinkim.environment/tasks/config.yml': line 10, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Remove previous values\n ^ here\n"}

chmod: cannot access '/etc/systemd/system/docker.service.d/http-proxy.conf': No such file or directory

The machine is booting and everything seems to work just fine, there is just this error message after vagrant up:

...
==> default: Machine booted and ready!
==> default: Configuring proxy for Apt...
==> default: Configuring proxy for Docker...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

chmod 0644 /etc/systemd/system/docker.service.d/http-proxy.conf

Stdout from the command:



Stderr from the command:

chmod: cannot access '/etc/systemd/system/docker.service.d/http-proxy.conf': No such file or directory

Vagrant 2.2.2, Virtualbox 5.2.4

I have proxy.enabled set to false (as by default)

I see /etc/systemd/system/docker.service.d/proxy.conf referenced in the angstwad.docker_ubuntu role, not http-proxy.conf. Can't find anything related in the main config though, can use some help there

Move file mirror to persistent storage

Move the home directory file mirror from vagrant shared folder to persistent storage (i.e. a persistent disk mounted using the vagrant-persistent-storage plugin).

The vagrant shared folders are flaky at best:

  • they lack support for file permissions
  • they lack support for users and groups
  • they are sometimes unmounted when the host machine goes to sleep
  • vagrant mounts them during startup so they don't play well with services
  • the mod-dates don't always match the Linux values causing issues with synchronisation
  • they lack inotify support

Switching to persistent storage will provide a more reliable experience.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.