Coder Social home page Coder Social logo

freecad-webservices's Introduction

Introduction

This repository contains an infrastructure-as-code representation of FreeCAD's web services. Using Vagrant as a provisioning frontend to LXD containers and Libvirt VMs configured by Ansible playbooks, one can* stand up any or all of the services for a production or development deployment. Eventually, sample DBs may be included for development, such as a phpBB backup with the correct FreeCAD forums but no posts or user data. While the repo and instructions target recent Debian/Ubuntu systems, pull requests are welcome to expand that, as well as support for Docker, Vagrant + VirtualBox or the like.

The goal of this repo is to make maintenance & development of our web service infrastructure easier.

The web services currently in use are:

with a backing MySQL database.

Future experimental web services may be included. Vagrant also supports cloud deployment targets such as Digital Ocean or Linode, so in the future it may be possible to use this repo to directly deploy and manage our infrastructure.

* eventually

Requirements & Installation

For a Debian/Ubuntu system:

$ wget https://releases.hashicorp.com/vagrant/2.2.6/vagrant_2.2.6_x86_64.deb
$ sudo apt install ./vagrant_2.2.6_x86_64.deb
$ sudo apt install ansible libvirt-daemon-system libvirt-dev ruby-dev snapd btrfs-progs
$ sudo snap install lxd
$ sudo /snap/bin/lxd init --auto
$ vagrant plugin install vagrant-libvirt
$ vagrant plugin install vagrant-lxd
$ sudo usermod -aG libvirt,lxd $(whoami)

Then reboot.

If you are not using LXD, installation becomes much simpler. This is because Vagrant in the Debian/Ubuntu repositories is patched in order to work with apt-packaged plugins , which breaks vagrant plugin install ing from the Internet, which is needed for vagrant-lxd, which in turn requires we download vagrant directly from upstream. So, instead you can do:

$ sudo apt install vagrant vagrant-libvirt libvirt-daemon-system
$ sudo usermod -aG libvirt $(whoami)
$ newgrp libvirt

without restarting.

See additional provider-specific documentation: lxd/README.rst.

Usage

Clone the repository:

$ git clone https://github.com/freecad/freecad-webservices
$ cd freecad-webservices   

Stand up a single service or all at once:

$ cd lxd  # or cd libvirt
$ vagrant up forum
$ vagrant up  # stands up forum, tracker, wiki, homepage

Test Ansible provisioning or get shell access for development:

$ vagrant provision wiki
$ vagrant ssh wiki

Clean up afterward:

$ vagrant halt forum  # free up resources but don't erase
$ vagrant destroy -f wiki  # destroys without confirmation

freecad-webservices's People

Contributors

kkremitzki avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freecad-webservices's Issues

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.