2012-08-24 17:39:05 +02:00
|
|
|
###Lobsters Rails Project
|
|
|
|
|
2012-09-18 17:13:25 +02:00
|
|
|
This is the source code to the site operating at
|
|
|
|
[https://lobste.rs](https://lobste.rs). It is a Rails 3 codebase and uses a
|
2013-05-26 19:56:31 +02:00
|
|
|
SQL (MariaDB in production) backend for the database and Sphinx for the search
|
2012-09-18 17:13:25 +02:00
|
|
|
engine.
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2013-02-25 02:52:09 +01:00
|
|
|
While you are free to fork this code and modify it (according to the [license](https://github.com/jcs/lobsters/blob/master/LICENSE))
|
|
|
|
to run your own link aggregation website, this source code repository and bug
|
|
|
|
tracker are only for the site operating at [lobste.rs](https://lobste.rs/).
|
|
|
|
Please do not use the bug tracker for support related to operating your own
|
|
|
|
site unless you are contributing code that will also benefit [lobste.rs](https://lobste.rs/).
|
|
|
|
|
|
|
|
####Contributing bugfixes and new features
|
|
|
|
|
|
|
|
Please see the [CONTRIBUTING](https://github.com/jcs/lobsters/blob/master/CONTRIBUTING.md)
|
|
|
|
file.
|
|
|
|
|
2012-08-24 17:39:05 +02:00
|
|
|
####Initial setup
|
|
|
|
|
2012-09-18 17:13:25 +02:00
|
|
|
* Install Ruby 1.9.3.
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-18 17:13:25 +02:00
|
|
|
* Checkout the lobsters git tree from Github
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-02 16:34:39 +02:00
|
|
|
$ git clone git://github.com/jcs/lobsters.git
|
|
|
|
$ cd lobsters
|
|
|
|
lobsters$
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-18 17:13:25 +02:00
|
|
|
* Run Bundler to install/bundle gems needed by the project:
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-02 16:34:39 +02:00
|
|
|
lobsters$ bundle
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2013-05-26 19:56:31 +02:00
|
|
|
* Create a MySQL (other DBs supported by ActiveRecord may work, only MySQL and
|
|
|
|
MariaDB have been tested) database, username, and password and put them in a
|
2012-09-18 17:13:25 +02:00
|
|
|
`config/database.yml` file:
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-08-24 18:52:21 +02:00
|
|
|
development:
|
|
|
|
adapter: mysql2
|
2013-05-26 19:39:52 +02:00
|
|
|
encoding: utf8mb4
|
2012-08-24 18:52:21 +02:00
|
|
|
reconnect: false
|
|
|
|
database: lobsters_dev
|
|
|
|
socket: /tmp/mysql.sock
|
|
|
|
username: *username*
|
|
|
|
password: *password*
|
|
|
|
|
|
|
|
test:
|
|
|
|
adapter: sqlite3
|
|
|
|
database: db/test.sqlite3
|
|
|
|
pool: 5
|
|
|
|
timeout: 5000
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-18 17:13:25 +02:00
|
|
|
* Load the schema into the new database:
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-02 16:34:39 +02:00
|
|
|
lobsters$ rake db:schema:load
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2013-06-30 08:29:51 +02:00
|
|
|
* Create a `config/initializers/secret_token.rb` file, using a randomly
|
|
|
|
generated key from the output of `rake secret`:
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2013-01-22 22:35:09 +01:00
|
|
|
Lobsters::Application.config.secret_token = 'your random secret here'
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2013-06-30 08:29:51 +02:00
|
|
|
* (Optional, only needed for the search engine) Install Sphinx. Build Sphinx
|
|
|
|
config and start server:
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-02 16:34:39 +02:00
|
|
|
lobsters$ rake thinking_sphinx:rebuild
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2013-06-30 08:29:51 +02:00
|
|
|
* Define your site's name and default domain, which are used in various places,
|
|
|
|
in a `config/initializers/production.rb` or similar file:
|
|
|
|
|
|
|
|
class << Rails.application
|
|
|
|
def domain
|
|
|
|
"example.com"
|
|
|
|
end
|
|
|
|
|
|
|
|
def name
|
|
|
|
"Example News"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
Rails.application.routes.default_url_options[:host] = Rails.application.domain
|
|
|
|
|
2012-09-18 17:13:25 +02:00
|
|
|
* Create an initial administrator user and at least one tag:
|
2012-08-24 17:39:05 +02:00
|
|
|
|
2012-09-02 16:34:39 +02:00
|
|
|
lobsters$ rails console
|
|
|
|
Loading development environment (Rails 3.2.6)
|
|
|
|
irb(main):001:0> u = User.new(:username => "test", :email => "test@example.com", :password => "test")
|
|
|
|
irb(main):002:0> u.is_admin = true
|
2013-01-22 22:35:09 +01:00
|
|
|
irb(main):003:0> u.is_moderator = true
|
|
|
|
irb(main):004:0> u.save
|
2012-09-02 16:34:39 +02:00
|
|
|
|
2013-01-22 22:35:09 +01:00
|
|
|
irb(main):005:0> t = Tag.new
|
|
|
|
irb(main):006:0> t.tag = "test"
|
|
|
|
irb(main):007:0> t.save
|
2012-09-02 16:34:39 +02:00
|
|
|
|
2012-09-18 17:13:25 +02:00
|
|
|
* Run the Rails server in development mode. You should be able to login to
|
2013-06-30 08:29:51 +02:00
|
|
|
`http://localhost:3000` with your new `test` user:
|
2012-09-02 16:34:39 +02:00
|
|
|
|
|
|
|
lobsters$ rails server
|