Skip to content
This repository was archived by the owner on Mar 2, 2025. It is now read-only.

Administrative tools for the FreeCAD project's web services

License

Notifications You must be signed in to change notification settings

FreeCAD/FreeCAD-WebServices

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

NOTE: This information is preserved for historical reasons, and no longer represents the current state of FreeCAD's infrastructure. This repository is now archived. 1 March 2025

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

About

Administrative tools for the FreeCAD project's web services

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages