Giter Site home page Giter Site logo

basalt's Introduction

basalt

basalt allows you to build parameterized packages for Linux (and even OSX or FreeBSD). This is very handy, if you want to build several packages of one project for different customers, or if you need to build packages with small differences for several hosts.

To build packages you basically need a YAML config and a build file. In this example, the package is generated with invoke build_deb --config configs/go.dajool.com.yaml and packages a go application with all the configes needed. Even the webserver config is generated with the information from the YAML file and a post-install-script takes care of the server reload.

A dwarf - standing on the shoulders of giants

basalt makes heavy usage of invoke and fpm for the package generation.

The history of basalt

basalt came to being with this tree blog posts:

  1. Cup-Recipe For (Django) Python Deployment - Or How To Make Your Admin Happy
  2. Cup-Recipe For (Django) Python Deployment Part 2 - Detailed Overview
  3. Cup-Recipe For (Django) Python Deployment Part 3 - Deployment

Using Docker to build packages

Take a look at the docker_images repository.

Installation

Packages for Ubuntu 14.04

There are packages available for Ubuntu 14.04 from my personal repository. The packages are signed, so that apt won't complain and you can be sure that they are from me. I'm trying to keep this repository stable, but you shouldn't bet all you money on it.

Just download and install this package. It will add an entry to /etc/apt/sources.d/ and import the key. After that you can install basalt via apt:

apt update && apt install basalt

From source

Since I tried to avoid the chicken and egg problem, you won't need basalt to generate packages for basalt. But you'll have to install fpm. Usually it should be enough to just install ruby and then execute gem install fpm. I'm not sure, but you might also need to install build-essential for some of the packages.

Packaging the dependencies

git clone https://github.com/basalt/dependencies.git
cd dependencies/ubuntu/14.04/
cd fpm && make package_deb
cd ../python-invoke && make package_deb
cd ../python-sh && make package_deb

Install all generated packages.

Packaging the python core of basalt

git clone https://github.com/basalt/python-basalt.git
cd python-basalt && make package_deb

Install the generated package.

Packaging of basalt

git clone https://github.com/basalt/basalt.git
cd basalt && make package_deb

Install the generated package.

You are done! :)

basalt's People

Contributors

brejoc avatar

Stargazers

 avatar

Watchers

 avatar  avatar

basalt's Issues

basalt needs a deployment strategy for OS X

I think the most convenient way to install basalt on OS X would be brew. But brew is not packaging stuff from the cheese shop and rubygems. Perhaps brew-pip und brew-gem are the way to go.

If it is possible, the user would just tap our homebrew repo and also the python and ruby dependencies would be installed. Not sure if this is possible with brew-pip and brew-gem.

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.