This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
ficloud
======

ficloud alows to deploy your fig infrastructure to remote servers . Also it
provides all the services needed for hosting production apps.

Features:

- define your app config through Dockerfile and fig.yml
- easy deploy through git push
- pushing several versions of app (dev, staging, production ... etc)
- haproxy based balancer tcp
- easy switch balancer endpoint between app versions (ex swap prod and dev)
- persistent storage for containers
- easy copying persistence storage between containers (prod -> staging, etc)
- push and pull persistent volumes from your production server

Installation
-------------

Install docker: http://docs.docker.io/en/latest/installation/

Make sure you can run docker containers::

sudo docker run -i -t ubuntu echo -e "OK";

Install packages::

sudo apt-get install python-pip python-dev
sudo pip install ficloud

Test that ficloud is working::

$ ficloud-server app-list

+-----+---------+-------+
| App | Version | State |
+-----+---------+-------+
+-----+---------+-------+

Create ficloud user (you can pick any username)::

sudo useradd -s /bin/bash -d /home/ficloud -m ficloud
sudo su ficloud
cd /home/ficloud
mkdir ~/.ssh
vim ~/.authorized_keys # insert your ssh key and ssh key of your root user into this file
chmod -R go-rwx ~/.ssh

Test you can ssh into your server using ficloud account::

ssh ficloud@yourserver.com

Make sure your root user can also access your server::

sudo ssh ficloud@yourserver.com

Add ficloud user to docker group::

sudo usermod -a -G docker ficloud

Check ficloud can run docker now::

sudo su ficloud
docker run -i -t ubuntu echo -e "\033[0;32mFicloud can run Docker - OK\033[0m";
exit

Install haproxy::
sudo apt-get install haproxy
sudo echo "ENABLED=1" | sudo tee /etc/default/haproxy
sudo service haproxy start
sudo curl https://raw.github.com/pywizard/ficloud/master/examples/haproxy.cfg.tpl | sudo tee /etc/haproxy/haproxy.cfg.tpl

Now install incron to reconfigure haproxy, when you deploy new apps::

sudo apt-get install incron
sudo echo "root" | sudo tee /etc/incron.allow

Edit incrontab file and insert lines generated by inotify-dump in incrontab file::

ficloud-server inotify-dump

/home/ficloud/apps-conf IN_MODIFY,IN_CREATE,IN_DELETE,IN_NO_LOOP /usr/local/bin/ficloud-server balancer-dump /home/ficloud/apps-conf
/etc/haproxy/haproxy.cfg.tpl IN_MODIFY,IN_CREATE,IN_DELETE,IN_NO_LOOP /usr/local/bin/ficloud-server balancer-dump /home/ficloud/apps-conf

$ sudo incrontab -e

And the last thing. Allow ficloud to read-write any docker container volume:

ficloud ALL= NOPASSWD:/usr/bin/rsync


Install git:

sudo apt-get install git


Deployement
-------------

Start by creating application that is working locally using fig.yml

Set working ssh account::

$ ficloud use ficloud@myserver.com

Create an application:

$ ficloud remote app-create foo

Deploy code:

$ git push ficloud@myserver.com:apps/foo master:prod

Check port number:

$ ficloud remote app-list

Configure balancer:

$ ficloud remote balancer set mydomain.com web:80@foo#prod

Push volume to deployment:

$ filcoud volume-push web/code@foo#master

Push volume from deployment:

$ filcoud volume-pull web/code@foo#master

Remote volume copy:

$ ficloud remote volume-copy web/code@foo#master foo#v1

Your app is deployed!

Data migration
----------------
Release History

Release History

0.1.13

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.12

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.11

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.10

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
ficloud-0.1.13.tar.gz (26.3 kB) Copy SHA256 Checksum SHA256 Source Mar 17, 2014

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting