GithubHelp home page GithubHelp logo

ericpaulbishop / yourchili Goto Github PK

View Code? Open in Web Editor NEW
131.0 13.0 23.0 469 KB

Bash script library for configuring Debian/Ubuntu VPS hosting, with emphasis on ChiliProject deployment

License: Other

Shell 100.00%

yourchili's Introduction

YourChili (formerly Redcloud) is a bash script library for deploying ChiliProject (www.chiliproject.org) in a Cloud / VPS hosting environment with Nginx and Passenger.  It has been tested with Ubuntu 10.10.




NOTE: What follows is the old documentation, from about a year ago.  It is no longer compatible with the latest version, and will be re-written in the near future.





One of the primary problems of deploying Redmine is integrating repository hosting with Redmine.  There are many ways of hosting a SVN or Git repository so that they work with Redmine, and this variability can make deployment less than straightforward.  Redcloud provides a very specific structure for repository hosting and Redmine integration, so that it is easy to deploy multiple or single repository Redmine configurations.  Additionally, multiple Redmine installations can be configured for different virtual hosts.  Both Git and SVN are supported, but other version control systems are not.

It is strongly suggested that you install PHP-fpm along with Nginx (it's just an extra variable to the nginx install function), unless you are sure you won't ever want to host a PHP site from this machine.  However, be aware that installing this may take a significant amount of extra time (20-30 minutes) to compile.

The library also includes functions for upgrading the system, setting an improved colored bash prompt, adding system users, setting up a mail server, configuring periodic backups, restoring from backups and configuring a simple firewall (ufw).  

A significant portion of this library was derived from Linode Stack Script libraries.  In particular code from the official StackScript Bash Library and the LEMP_lib library by rnolen was used.  Redcloud is licensed under GPL v2, users but must also observe the BSD license on this code carried by the Linode script.  For full license text see LICENSE.txt file.

Redcloud sets up a directory structure under /srv as follows:
/srv/www					The root directory for the web server
/srv/www/[virtual_host_name]/public_html/	This is the root directory for each virtual host
/srv/projects/redmine				This directory contains redmine installations
/srv/projects/git				This directory is the git user home directory (for gitosis). 
/srv/projects/git/repositories			This is where the actual git repositories are located
/srv/projects/git/grack				Grack is a rails app that provides "Smart Http" access for Git
/srv/projects/svn				This directory contains Subversion repositories
/srv/mail/					Root location of virtual mailboxes if you configure a mail server

Nginx configuration files can be found at:
/etc/nginx

Subversion support requires apache installation for DAV support, while Git can be hosted with Nginx only.  In the case of SVN Nginx acts as a reverse proxy.

When rails apps are activated a symlink is created from the relevant directory to somewhere under the virtual host directory.

For every virtual host https access for version control and Redmine is configured, via a self-signed certificate located in:
/etc/nginx/ssl

Be warned this is a self-signed certificate, which means browsers/svn/git will initially complain about authenticity.  However, it allows access to Redmine/Git/Svn without sending a password in clear-text.

The install.sh script installs the Redcloud library to /usr/local/lib/redcloud by default.  Then, to use redcloud, you can just source /usr/local/lib/redcloud/redmine.sh

For an example script for configuring a Redmine setup see the init.sh script.  This is a heavily-commented script which can be run to configure a system.

The restore.sh script is another heavily commented example script that illustrates how to restore a system from a backup performed by Redcloud.


yourchili's People

Contributors

ericpaulbishop avatar omclub avatar

Stargazers

Tom Lee avatar JayChung avatar libz avatar  avatar mention88 avatar alphabeter avatar kwin avatar Mr.pan avatar Thomas Don avatar yzhou avatar leo avatar chenxushao avatar 彭涛 avatar soso avatar loopioinc avatar Vedat Kamer avatar  avatar xcrossed avatar  avatar  avatar incidunt avatar zqhong avatar 碎ping子 avatar Andrew Wang avatar linarnan avatar RenYIYIYIYIYI avatar Hopsken avatar  avatar  avatar Zhang Zhishan avatar Cedar avatar Jacky avatar zhixing.zhou avatar Pantelis Koukousoulas avatar bobwenx avatar wwc avatar 漢矦 avatar qiwihui avatar Ning-Yi SHAO avatar Kelvin avatar Lu Qiuwen avatar louise avatar Delweng avatar 顼亮 avatar xiaocong avatar walterzhang avatar  avatar John Rodriguez avatar Jonathan Barratt avatar Nazeeruddin Ikram avatar Shaun Janssens avatar Yurii Ishchenko avatar zhoudd avatar HuaHero avatar romejiang avatar Li Bin avatar  avatar Kevin Ridgway avatar Bryan D. avatar QGW avatar adamsxu avatar ethan.fu avatar 周勇 avatar Sunlei avatar Cheng Yao avatar  avatar Tim Hyde avatar Li Shuai avatar Joshz avatar Coagent Zeng avatar hedehung avatar Pedro Perez avatar  avatar github101 avatar Dearshor Xue avatar ibraheem4 avatar asnidea avatar David Bainbridge avatar Leeway avatar Theorian avatar Thomas Yang avatar Too White Star avatar xxd avatar Denys Kyselov avatar Indra A avatar 悬非 avatar losingle avatar ruohan.chen avatar  avatar Zhiping Yang avatar zach zhao avatar Michael Hill avatar hite avatar Haoliang Gao avatar Jarod Watkins avatar wong2 avatar Rod Norfor avatar Keith Yao avatar  avatar Skyblue avatar

Watchers

Matt Hulse avatar Rolands avatar 阿大 avatar  avatar adamsxu avatar Dennis Green-lieber avatar Wentao Liu avatar James Cloos avatar omusico avatar Wasabi avatar Li Shuai avatar zhixing.zhou avatar  avatar

yourchili's Issues

ready for use and/or docs?

Hey Eric - We're making move to Chili from Redmine and I was excited to try YourChill on our new server. Is it generally ready to go for a piss-poor sysadmin like me? You mention the README that the docs need updating. Wondering if you could provide even a short outline of the steps to run the script, options, etc?

Thanks!

NGIX not starting: Address already in use

When running the init_ngix_stack.sh the install fails with the following error:

Restarting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()
nginx.

I see that Apache is installed and running (for SVN support?)
How can this be fixed?

Mysql issues

I just tested out your 2012 branch with ubuntu 10.10 and had some mysql issues. I tested it using a "filled out" chili_test.sh.

I had this error: no such file to load -- mysql (MissingSourceFile)

To get it to connect I had to do: sudo gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

BUT, I didn't have database or user so it still didnt work.

Why does the script COMPILE everything?

Can you clue us in as to why the script compiles common elements like openssl and curses from scratch? Half of the power of a Debian/Ubuntu based system is that package management simplifies updates and system checks... not to mention that using a package manager is MUCH faster.

I'm sure you have a good reason for compiling these from scratch, can you clue us in?

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.