mirror of
https://github.com/discourse/discourse.git
synced 2025-02-07 20:08:26 +00:00
Updated Vagrantfile to support Vagrant 1.1.2 - you will probably need to download
Vagrant again! http://downloads.vagrantup.com/
This commit is contained in:
parent
73b2d6f076
commit
ddff23cc27
5
Vagrantfile
vendored
5
Vagrantfile
vendored
@ -3,8 +3,8 @@
|
||||
# See https://github.com/discourse/discourse/blob/master/docs/VAGRANT.md
|
||||
#
|
||||
Vagrant.configure("2") do |config|
|
||||
config.vm.box = 'discourse-pre'
|
||||
config.vm.box_url = 'http://www.discourse.org/vms/discourse-pre.box'
|
||||
config.vm.box = 'discourse-0.8.4'
|
||||
config.vm.box_url = 'http://www.discourse.org/vms/discourse-0.8.4.box'
|
||||
|
||||
# Make this VM reachable on the host network as well, so that other
|
||||
# VM's running other browsers can access our dev server.
|
||||
@ -49,7 +49,6 @@ Vagrant.configure("2") do |config|
|
||||
chef.cookbooks_path = chef_cookbooks_path
|
||||
chef.add_recipe "recipe[apt]"
|
||||
chef.add_recipe "recipe[build-essential]"
|
||||
chef.add_recipe "recipe[phantomjs]"
|
||||
chef.add_recipe "recipe[vim]"
|
||||
end
|
||||
end
|
||||
|
@ -5,6 +5,5 @@ site 'http://community.opscode.com/api/v1'
|
||||
|
||||
cookbook 'apt'
|
||||
cookbook 'vim'
|
||||
cookbook 'phantomjs'
|
||||
cookbook 'build-essential'
|
||||
cookbook 'omnibus_updater'
|
||||
|
@ -4,13 +4,11 @@ SITE
|
||||
apt (1.8.4)
|
||||
build-essential (1.3.4)
|
||||
omnibus_updater (0.1.2)
|
||||
phantomjs (0.0.10)
|
||||
vim (1.0.2)
|
||||
|
||||
DEPENDENCIES
|
||||
apt (>= 0)
|
||||
build-essential (>= 0)
|
||||
omnibus_updater (>= 0)
|
||||
phantomjs (>= 0)
|
||||
vim (>= 0)
|
||||
|
||||
|
@ -1,6 +0,0 @@
|
||||
phantomjs CHANGELOG
|
||||
===================
|
||||
|
||||
v.0.0.6
|
||||
-------
|
||||
- Initial CHANGELOG created
|
@ -1,27 +0,0 @@
|
||||
phantomjs Cookbook
|
||||
==================
|
||||
[![Build Status](https://secure.travis-ci.org/customink-webops/phantomjs.png?branch=master)](http://travis-ci.org/customink-webops/phantomjs)
|
||||
|
||||
Installs the phantomjs cookbook and necessary packages. This repository also features a full test suite!
|
||||
|
||||
Attributes
|
||||
----------
|
||||
- `default['phantomjs']['version']` - the version number to install
|
||||
|
||||
Contributing
|
||||
------------
|
||||
1. Fork the project
|
||||
2. Create a feature branch (i.e. `add_feature_x`)
|
||||
3. Make your changes
|
||||
4. Write or change specs as necessary
|
||||
5. Ensure the specs pass:
|
||||
|
||||
$ bundle exec rspec
|
||||
|
||||
6. Submit a pull request on github
|
||||
|
||||
License and Authors
|
||||
-------------------
|
||||
Author: [Seth Vargo](https://github.com/sethvargo)
|
||||
|
||||
Copyright 2012, CustomInk, LLC
|
@ -1,3 +0,0 @@
|
||||
default['phantomjs'] = {
|
||||
'version' => '1.7.0'
|
||||
}
|
@ -1,52 +0,0 @@
|
||||
{
|
||||
"name": "phantomjs",
|
||||
"description": "Installs/Configures phantomjs",
|
||||
"long_description": "phantomjs Cookbook\n==================\n[![Build Status](https://secure.travis-ci.org/customink-webops/phantomjs.png?branch=master)](http://travis-ci.org/customink-webops/phantomjs)\n\nInstalls the phantomjs cookbook and necessary packages. This repository also features a full test suite!\n\nAttributes\n----------\n- `default['phantomjs']['version']` - the version number to install\n\nContributing\n------------\n1. Fork the project\n2. Create a feature branch (i.e. `add_feature_x`)\n3. Make your changes\n4. Write or change specs as necessary\n5. Ensure the specs pass:\n\n $ bundle exec rspec\n\n6. Submit a pull request on github\n\nLicense and Authors\n-------------------\nAuthor: [Seth Vargo](https://github.com/sethvargo)\n\nCopyright 2012, CustomInk, LLC\n",
|
||||
"maintainer": "CustomInk",
|
||||
"maintainer_email": "webops@customink.com",
|
||||
"license": "Apache 2.0",
|
||||
"platforms": {
|
||||
"amazon": ">= 0.0.0",
|
||||
"centos": ">= 0.0.0",
|
||||
"debian": ">= 0.0.0",
|
||||
"fedora": ">= 0.0.0",
|
||||
"oracle": ">= 0.0.0",
|
||||
"rhel": ">= 0.0.0",
|
||||
"scientific": ">= 0.0.0",
|
||||
"ubuntu": ">= 0.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
},
|
||||
"recommendations": {
|
||||
},
|
||||
"suggestions": {
|
||||
},
|
||||
"conflicting": {
|
||||
},
|
||||
"providing": {
|
||||
},
|
||||
"replacing": {
|
||||
},
|
||||
"attributes": {
|
||||
"version": {
|
||||
"display_name": "Version",
|
||||
"description": "The Version of phantomjs to install",
|
||||
"default": "1.7.0",
|
||||
"choice": [
|
||||
|
||||
],
|
||||
"calculated": false,
|
||||
"type": "string",
|
||||
"required": "optional",
|
||||
"recipes": [
|
||||
|
||||
]
|
||||
}
|
||||
},
|
||||
"groupings": {
|
||||
},
|
||||
"recipes": {
|
||||
"phantomjs::default": "Install phantomjs binary"
|
||||
},
|
||||
"version": "0.0.10"
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
name 'phantomjs'
|
||||
maintainer 'CustomInk'
|
||||
maintainer_email 'webops@customink.com'
|
||||
license 'Apache 2.0'
|
||||
description 'Installs/Configures phantomjs'
|
||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||
version '0.0.10'
|
||||
|
||||
recipe 'phantomjs::default', 'Install phantomjs binary'
|
||||
|
||||
%w(amazon centos debian fedora oracle rhel scientific ubuntu).each do |os|
|
||||
supports os
|
||||
end
|
||||
|
||||
attribute 'version',
|
||||
:display_name => 'Version',
|
||||
:description => 'The Version of phantomjs to install',
|
||||
:default => '1.7.0'
|
@ -1,52 +0,0 @@
|
||||
#
|
||||
# Cookbook Name:: phantomjs
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright 2012, CustomInk
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
# Packages
|
||||
case node['platform_family']
|
||||
when 'debian'
|
||||
%w(fontconfig libfreetype6).each do |package|
|
||||
package package
|
||||
end
|
||||
when 'fedora','rhel'
|
||||
%w(fontconfig freetype).each do |package|
|
||||
package package
|
||||
end
|
||||
end
|
||||
|
||||
basename = "phantomjs-#{node['phantomjs']['version']}-linux-#{node['kernel']['machine']}"
|
||||
|
||||
# Download the tarball
|
||||
remote_file "/usr/local/src/#{basename}.tar.bz2" do
|
||||
action :create_if_missing
|
||||
backup false
|
||||
mode '0644'
|
||||
checksum node['phantomjs']['checksum'] if node['phantomjs']['checksum']
|
||||
source "https://phantomjs.googlecode.com/files/#{basename}.tar.bz2"
|
||||
end
|
||||
|
||||
# Install phantomjs
|
||||
execute 'Install phantomjs' do
|
||||
command "tar -xvjf /usr/local/src/#{basename}.tar.bz2 -C /usr/local/"
|
||||
not_if "test -d /usr/local/#{basename}"
|
||||
end
|
||||
|
||||
# Set up the symbolic link
|
||||
link '/usr/local/bin/phantomjs' do
|
||||
to "/usr/local/#{basename}/bin/phantomjs"
|
||||
end
|
@ -11,18 +11,17 @@ to rails, you are likely much better off with our **[Discourse Vagrant Developer
|
||||
3. Clone the project.
|
||||
4. Create development and test databases in postgres.
|
||||
5. Copy `config/database.yml.sample` and `config/redis.yml.sample` to `config/database.yml` and `config/redis.yml` and input the correct values to point to your postgres and redis instances.
|
||||
6. We recommend starting with seed data to play around in your development environment. [Download Seed SQL Data](http://www.discourse.org/vms/dev-discourse-seed.sql). Install it into postgres using a command like this: `psql -d discourse_development < dev-discourse-seed.sql`.
|
||||
6. Install the seed data to set up an admin account and meta topic: `psql DATABASE_NAME < pg_dumps/production-image.sql`
|
||||
|
||||
|
||||
## Before you start Rails
|
||||
|
||||
1. `bundle install`
|
||||
2. `rake db:create`
|
||||
3. `rake db:migrate`
|
||||
4. `rake db:test:prepare`
|
||||
5. `rake db:seed_fu`
|
||||
6. Try running the specs: `bundle exec rspec`
|
||||
7. `bundle exec rails server`
|
||||
2. `rake db:migrate`
|
||||
3. `rake db:test:prepare`
|
||||
4. `rake db:seed_fu`
|
||||
5. Try running the specs: `bundle exec rspec`
|
||||
6. `bundle exec rails server`
|
||||
|
||||
You should now be able to connect to rails on http://localhost:3000 - try it out! The seed data includes a pinned topic that explains how to get an admin account, so start there! Happy hacking!
|
||||
|
||||
@ -34,7 +33,7 @@ Here are the steps we used to create the **[Vagrant Virtual Machine](https://git
|
||||
|
||||
## Base box
|
||||
|
||||
Vagrant version 1.0.5. With this Vagrantfile:
|
||||
Vagrant version 1.1.2. With this Vagrantfile:
|
||||
|
||||
Vagrant::Config.run do |config|
|
||||
config.vm.box = 'precise32'
|
||||
@ -77,8 +76,8 @@ Vagrant version 1.0.5. With this Vagrantfile:
|
||||
adduser vagrant rvm
|
||||
source /etc/profile.d/rvm.sh
|
||||
su - vagrant -c "rvm pkg install libyaml"
|
||||
su - vagrant -c "rvm install 1.9.3-p374"
|
||||
su - vagrant -c "rvm use 1.9.3-p374 --default"
|
||||
su - vagrant -c "rvm install 2.0.0-turbo"
|
||||
su - vagrant -c "rvm use 2.0.0-turbo --default"
|
||||
|
||||
echo "gem: --no-rdoc --no-ri" >> /etc/gemrc
|
||||
su - vagrant -c "echo 'gem: --no-rdoc --no-ri' >> ~/.gemrc"
|
||||
@ -93,6 +92,7 @@ Configure so that the vagrant user doesn't need to provide username and password
|
||||
psql -c "ALTER USER vagrant WITH PASSWORD 'password';"
|
||||
createdb vagrant
|
||||
psql -c "CREATE EXTENSION hstore;"
|
||||
psql -c "CREATE EXTENSION pg_trgm;"
|
||||
psql -c "ALTER USER vagrant CREATEDB"
|
||||
psql -c "create database discourse_development owner vagrant encoding 'UTF8' TEMPLATE template0;"
|
||||
psql -c "create database discourse_test owner vagrant encoding 'UTF8' TEMPLATE template0;"
|
||||
@ -109,11 +109,11 @@ Edit /etc/postgresql/9.1/main/pg_hba.conf to have this:
|
||||
host all all ::1/128 trust
|
||||
host all all 0.0.0.0/0 trust # wide-open
|
||||
|
||||
Download a database image from [http://discourse.org/vms/dev-discourse-seed.sql][seed_download].
|
||||
Load the seed data (as vagrant user):
|
||||
|
||||
Load it (as vagrant user):
|
||||
psql -d discourse_development < pg_dump/development-image.sql
|
||||
|
||||
psql -d discourse_development < dev-discourse-seed.sql
|
||||
(You may wish to try the `production-image.sql` file for a good seed for a production database.)
|
||||
|
||||
## Redis
|
||||
|
||||
@ -129,4 +129,3 @@ Load it (as vagrant user):
|
||||
# Press enter to accept all the defaults
|
||||
/etc/init.d/redis_6379 start
|
||||
|
||||
[seed_download]: (http://discourse.org/vms/dev-discourse-seed.sql)
|
||||
|
@ -1,5 +1,8 @@
|
||||
# Discourse Developer Install Guide (Vagrant)
|
||||
|
||||
**We require Vagrant 1.1.2+ for our Vagrant image to work. You may have to upgrade if you are running
|
||||
an earlier release.**
|
||||
|
||||
If you'd like to set up a development environment for Discourse, the easiest way is by using a virtual machine.
|
||||
If you have experience setting up Rails projects, you might want to take a look at our **[Discourse Advanced Developer Guide](https://github.com/discourse/discourse/blob/master/docs/DEVELOPER-ADVANCED.md)**.
|
||||
It also contains instructions on building your own Vagrant VM.
|
||||
@ -26,9 +29,9 @@ Vagrant will prompt you for your admin password. This is so it can mount your lo
|
||||
|
||||
(The first time you do this, it will take a while as it downloads the VM image and installs it. Go grab a coffee.)
|
||||
|
||||
If you are having **trouble** downloading the VM:
|
||||
- Download this file: http://www.discourse.org/vms/discourse-pre.box using your favorite web browser/download tool.
|
||||
- Add it to vagrant: `vagrant box add discourse-pre /path/to/the/downloaded/discourse-pre.box`.
|
||||
If you are having **trouble** downloading the VM:
|
||||
- Download this file: http://www.discourse.org/vms/discourse-0.8.4.box using your favorite web browser/download tool.
|
||||
- Add it to vagrant: `vagrant box add discourse-0.8.4 /path/to/the/downloaded/discourse-0.8.4.box virtualbox`.
|
||||
|
||||
**Note to OSX/Linux users**: Vagrant will mount your local files via an NFS share. Therefore, make sure that NFS is installed or else you'll receive the error message:
|
||||
|
||||
@ -50,7 +53,7 @@ vagrant ssh
|
||||
|
||||
```
|
||||
`vagrant ssh` isn't available on the Windows platform. You are still able
|
||||
to SSH into the virtual machine if you get a Windows SSH client (such as
|
||||
to SSH into the virtual machine if you get a Windows SSH client (such as
|
||||
PuTTY). The authentication information is shown below:
|
||||
|
||||
Host: 127.0.0.1
|
||||
@ -71,7 +74,7 @@ PuTTYGen to import the insecure_private_key file](http://jason.sharonandjason.co
|
||||
### Keeping your VM up to date
|
||||
|
||||
Now you're in a virtual machine is almost ready to start developing. It's a good idea to perform the following instructions
|
||||
*every time* you pull from master to ensure your environment is still up to date.
|
||||
*every time* you pull from master to ensure your environment is still up to date.
|
||||
|
||||
```
|
||||
bundle install
|
||||
@ -91,6 +94,22 @@ In a few seconds, rails will start serving pages. To access them, open a web bro
|
||||
|
||||
You can now edit files on your local file system, using your favorite text editor or IDE. When you reload your web browser, it should have the latest changes.
|
||||
|
||||
### Changing the Seed Data
|
||||
|
||||
By default, the Vagrant virtual machine comes seeded with test data. You'll have a few topics to play around with
|
||||
and some user accounts. If you'd like to use the default production seed data instead you can execute the following
|
||||
commands:
|
||||
|
||||
```
|
||||
vagrant ssh
|
||||
cd /vagrant
|
||||
psql discourse_development < pg_dumps/production-image.sql
|
||||
rake db:migrate
|
||||
rake db:test:prepare
|
||||
```
|
||||
|
||||
If you change your mind and want to use the test data again, just execute the above but using `pg_dumps/development-image.sql` instead.
|
||||
|
||||
### Guard + Rspec
|
||||
|
||||
If you're actively working on Discourse, we recommend that you run Guard. It'll automatically run our unit tests over and over, and includes support
|
||||
@ -131,7 +150,7 @@ Sent emails will be received by mailcatcher and shown in its web ui.
|
||||
|
||||
When you're done working on Discourse, you can shut down Vagrant like so:
|
||||
|
||||
```
|
||||
```
|
||||
vagrant halt
|
||||
```
|
||||
|
||||
|
7279
pg_dumps/development-image.sql
Normal file
7279
pg_dumps/development-image.sql
Normal file
File diff suppressed because one or more lines are too long
6335
pg_dumps/production-image.sql
Normal file
6335
pg_dumps/production-image.sql
Normal file
File diff suppressed because one or more lines are too long
Loading…
x
Reference in New Issue
Block a user