Go to file
joshua stein 9ece6666bf add stupid temporary hack to strip out utf8mb4 chars that are screwing up mysql
4-byte utf8 chars like emoji are passed around in ruby fine, but
when they are put into mysql queries, strings get truncated at the
first mb4 character.  to prevent truncation, strip out mb4
characters in most user-controlled fields like comments, story
descriptions and titles, and messages.

to properly support utf8mb4, mysql server 5.5 is needed, the table
encodings need to be changed to utf8mb4, and the mysql2 gem needs to
be upgraded once it supports utf8mb4:

https://github.com/brianmario/mysql2/issues/249
2012-11-07 21:58:10 -06:00
app add stupid temporary hack to strip out utf8mb4 chars that are screwing up mysql 2012-11-07 21:58:10 -06:00
config move monkey patches to a separate file 2012-10-24 14:55:14 -05:00
db More descriptive method and attribute names 2012-09-19 20:28:09 -04:00
extras allow embedded images in story text, but still not in comments 2012-09-17 13:24:29 -05:00
lib add stupid temporary hack to strip out utf8mb4 chars that are screwing up mysql 2012-11-07 21:58:10 -06:00
log initial work on conversion from php tree 2012-06-16 20:15:46 -05:00
public block archivers 2012-10-24 11:53:43 -05:00
script add readme, do some cleanup before open sourcing 2012-08-24 11:42:23 -05:00
spec << strikes again 2012-08-24 11:41:37 -05:00
vendor initial work on conversion from php tree 2012-06-16 20:15:46 -05:00
.gitignore add readme, do some cleanup before open sourcing 2012-08-24 11:42:23 -05:00
.rbenv-version add readme, do some cleanup before open sourcing 2012-08-24 11:42:23 -05:00
.rspec initial work on conversion from php tree 2012-06-16 20:15:46 -05:00
config.ru initial work on conversion from php tree 2012-06-16 20:15:46 -05:00
CONTRIBUTING.md add contributing file 2012-09-18 10:15:43 -05:00
Gemfile search engine! 2012-08-24 11:41:36 -05:00
Gemfile.lock search engine! 2012-08-24 11:41:36 -05:00
LICENSE add 3-clause bsd license 2012-08-30 02:56:32 -05:00
Rakefile initial work on conversion from php tree 2012-06-16 20:15:46 -05:00
README.md Should have 64-byte secret_token, not 128-bit 2012-10-20 12:02:44 -05:00

###Lobsters Rails Project

This is the source code to the site operating at https://lobste.rs. It is a Rails 3 codebase and uses a SQL (MySQL in production) backend for the database and Sphinx for the search engine.

####Initial setup

  • Install Ruby 1.9.3.

  • Checkout the lobsters git tree from Github

       $ git clone git://github.com/jcs/lobsters.git
       $ cd lobsters
       lobsters$ 
    
  • Run Bundler to install/bundle gems needed by the project:

       lobsters$ bundle
    
  • Create a MySQL (other DBs supported by ActiveRecord may work, only MySQL has been tested) database, username, and password and put them in a config/database.yml file:

        development:
          adapter: mysql2
          encoding: utf8
          reconnect: false
          database: lobsters_dev
          socket: /tmp/mysql.sock
          username: *username*
          password: *password*
    
        test:
          adapter: sqlite3
          database: db/test.sqlite3
          pool: 5
          timeout: 5000
    
  • Load the schema into the new database:

        lobsters$ rake db:schema:load
    
  • Create a config/initializers/secret_token.rb file:

        Lobsters::Application.config.secret_token = 'some 64-byte hexadecimal secret here'
    
  • (Optional, only needed for search engine) Install Sphinx. Build Sphinx config and start server:

        lobsters$ rake thinking_sphinx:rebuild
    
  • Create an initial administrator user and at least one tag:

        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
        irb(main):002:0> u.is_moderator = true
        irb(main):003:0> u.save
    
        irb(main):004:0> t = Tag.new
        irb(main):005:0> t.tag = "test"
        irb(main):006:0> t.save
    
  • The default development hostname is defined as lobsters.localhost:3000. You should define this in /etc/hosts (or through DNS) to point to 127.0.0.1.

  • Run the Rails server in development mode. You should be able to login to http://lobsters.localhost:3000 with your test user:

        lobsters$ rails server
    

####Contributing bugfixes and new features

Please see the CONTRIBUTING file.