9ece6666bf
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 |
||
---|---|---|
app | ||
config | ||
db | ||
extras | ||
lib | ||
log | ||
public | ||
script | ||
spec | ||
vendor | ||
.gitignore | ||
.rbenv-version | ||
.rspec | ||
config.ru | ||
CONTRIBUTING.md | ||
Gemfile | ||
Gemfile.lock | ||
LICENSE | ||
Rakefile | ||
README.md |
###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 to127.0.0.1
. -
Run the Rails server in development mode. You should be able to login to
http://lobsters.localhost:3000
with yourtest
user:lobsters$ rails server
####Contributing bugfixes and new features
Please see the CONTRIBUTING file.